SyntrixOne is in closed beta. Live platform status: syntrixone.com/status
SyntrixOne
Admin Guide

Platform owner manual

Operational runbooks for SyntrixOne platform owners and workspace admins.

Billing & Trials

Billing & Trials

Trial state, expiry and the closed-beta billing policy.

Trial state

The 14-day free trial.

Every newly-approved workspace gets a 14-day free trial. No credit card required, no auto-charge at the end.

The trial clock starts at the moment of approval. Trial days remaining are computed from `subscriptions.trialEndsAt`.

Trial expiry

What HTTP 402 means.

When `trialEndsAt` passes and `status !== "active"`, the trial-expiry gate kicks in. All workspace-scoped write endpoints return HTTP 402 `trial_expired`.

Read endpoints continue to work — users can browse their data, manage billing and contact support.

The TrialBanner soft-redirects to /trial-expired when the user attempts to use the dashboard.

Read-only mode

What customers can still do.

In read-only mode users can: log in, browse dashboards, view CRM data, view conversation history, manage billing, contact support and read the Help Center.

They cannot: send messages, create contacts/deals/tickets, edit chatbots, edit KB articles or change team membership.

Billing status

How to check a workspace state.

GET `/api/billing/state?workspaceId=<id>` returns the consolidated state: `pending_approval`, `approved_trial`, `trial_expired`, `active_subscription`, `suspended` — plus `trialDaysRemaining`, `plan`, `subscriptionStatus`.

Platform owners can also browse the legacy `/api/billing/admin/revenue` and `/api/platform/stripe-status` endpoints from /dashboard/platform/*.

Closed-beta manual billing

No auto-charges during beta.

During the closed beta, Stripe is in MOCK mode (`MOCK_BILLING=true`). No card is captured or charged automatically.

When a beta customer is ready to upgrade, sales sends them a custom Stripe invoice or sets up a real subscription off-platform. Operationally: keep them on the trial as long as needed, then flip their workspace to a plan in Mongo or via the future live Stripe checkout.

Future: live Stripe activation

What changes when we go live.

To switch from MOCK to live Stripe: set MOCK_BILLING=false, populate the real STRIPE_SECRET_KEY / PUBLISHABLE_KEY / WEBHOOK_SECRET / TAX_ENABLED env vars, set STRIPE_LIVE_CONFIRMED=true, and update the price IDs in `lib/billing.js`.

The same checkout / portal / cancel endpoints handle both modes — only the underlying SDK changes. Webhooks (Stripe events) start working automatically once the secret is configured.

Need to escalate?

Reach the SyntrixOne platform team or browse the user-facing Help Center.