Agency: sub-accounts & SaaS Mode
The agency stack turns Mass into a platform you can run as your own business. Spin up a sub-account per client, brand and bound each one, and switch between them from the sidebar. Then turn on SaaS Mode to sell the platform: publish packages and add-ons, connect Stripe, and let clients subscribe and pay you directly — with metered overage billed back automatically each month. This guide covers the whole agency motion.
18 min read · The complete agency guide
The agency model
One agency tenant on top, a sub-account per client underneath.
An agency runs a parent tenant that owns a set of sub-accounts — one per client. Each sub-account is a real, isolated workspace with its own funnels, contacts, and assets, but it inherits the agency's branding and lives under the agency's plan and limits. The agency manages them all from one place and moves between them without logging out.
Sub-accounts are an agency capability: how many you can create is governed by your plan's sub-account limit, and creating one is blocked with an upgrade prompt when you hit the cap. The Agency and Black Label tiers unlock the feature; lower tiers don't have sub-accounts at all.
- Parent + children — an agency tenant owns a sub-account per client, each an isolated workspace.
- Brand inheritance — sub-accounts inherit the agency's white-label branding by default.
- Plan-gated count — the sub-account limit comes from your plan; hitting it prompts an upgrade rather than failing silently.
- Managed centrally — create, configure, and switch between every sub-account from the agency dashboard.
Creating & configuring sub-accounts
Each client gets a bounded workspace you control down to features, limits, and credits.
Creating a sub-account takes a name (and optional display name, slug, and description), an optional admin email to invite the client, and a choice to inherit the agency's branding. If you provide an admin email, an invitation is sent; otherwise the sub-account is ready to use immediately. Optionally, a SaaS package can be attached at creation so the sub-account starts on a plan you sell.
Once created, each sub-account is independently configurable: you set which features are enabled, custom numeric limits, and a credit allocation specific to that client, plus permission settings. That means a small client and a large client can live under the same agency with very different capabilities and budgets, all managed from the agency side.
- Quick create — name, optional display name/slug/description, optional admin-email invite, and inherit-branding toggle.
- Invite or instant — supply an admin email to invite the client, or skip it and the sub-account is ready right away.
- Per-account controls — enable specific features, set custom limits, and assign a credit allocation per sub-account.
- Package on create — optionally attach a SaaS package at creation so the client starts on a plan you sell.
Switching between accounts
Move between the agency view and any client workspace from the sidebar.
A sub-account selector in the sidebar lets you jump between the agency view and any client workspace. Switching is context-aware: moving from the agency view into a sub-account drops you on that client's regular dashboard, switching from a sub-account back up takes you to the agency dashboard, and moving sideways (sub→sub or agency→agency) keeps you on the equivalent page by swapping the tenant in the path.
Because each workspace is a real tenant, switching genuinely changes context — the funnels, contacts, and settings you see are that account's, not a filtered view. The selector just makes hopping between them a one-click move instead of a re-login.
- Sidebar selector — switch between the agency and any sub-account without logging out.
- Context-aware landing — agency→sub lands on the client dashboard; sub→agency lands on the agency dashboard.
- Sideways keeps your page — sub→sub and agency→agency swap the tenant in the current path so you stay on the same screen.
- Real isolation — each switch changes to that tenant's actual data and settings, not a filter.
SaaS Mode: resell the platform
Flip a master switch and the platform becomes a product you sell, gated on Stripe Connect.
SaaS Mode is the agency configurator that turns sub-accounts into paying subscribers. A single master switch turns it on — but only once Stripe Connect is live, because that's what lets clients pay you directly. The configurator surfaces an overview of active subscriptions, overage billed month-to-date, and the last rebill run, and organizes the rest into a catalog of what clients can buy and the billing rules that govern it.
With SaaS Mode on, you're no longer just managing client workspaces — you're running a subscription business on top of the platform, with packages as your plans, add-ons as your upsells, and automated rebilling as your metered revenue.
- Master switch — one toggle turns SaaS Mode on, gated on a live Stripe Connect connection.
- Overview strip — active subscriptions, overage billed MTD, and the last rebill run at a glance.
- Catalog + rules — packages and add-ons clients can buy, plus the billing rules that price overage.
- A real SaaS — sub-accounts become subscribers paying you on plans you define.
Packages & add-ons
Define the plans and upsells your clients subscribe to, with included credits and markups.
Packages are the plans you sell. Each carries a name, description, and badge; monthly and annual prices with a currency and trial days; included credits; and per-channel markups and per-unit prices for AI, SMS, email, and WhatsApp — so usage beyond what's included is priced at your rates. You also set limits and feature flags per package, and flags for active, public, and featured. Add-ons are the à-la-carte extras clients can buy on top of a package.
Packages sync to Stripe automatically: saving a package creates or updates the matching Stripe product and prices, recording the Stripe ids back on the package (and surfacing a clear sync error if Stripe rejects something). That keeps your catalog and Stripe in lockstep without manual product creation.
- Plan definition — name, badge, monthly/annual price, currency, trial days, included credits, limits, and features.
- Per-channel pricing — AI, SMS, email, and WhatsApp markups and per-unit prices set how overage is charged.
- Add-ons — à-la-carte extras clients can purchase alongside a package.
- Stripe-synced — saving a package creates/updates the Stripe product and prices and records the ids, with sync errors surfaced.
Subscriptions, Stripe Connect & sub-account billing
Clients check out on your packages and pay you through your connected Stripe account.
Clients subscribe through a checkout against your packages, creating a subscription that the platform tracks and keeps in sync with Stripe — activating on payment, updating the billing period, and resetting failure counts when an invoice is paid. Because payment runs through Stripe Connect, the money flows to your account, with the platform orchestrating the plan, credits, and limits behind it.
This is distinct from the agency's own platform billing: SaaS Mode is about what your clients pay you, configured per package, while your platform subscription (what you pay Mass) lives in your billing settings. Sub-account billing ties each client's subscription to their workspace's credits and limits, so paying for a bigger package gives that client more room automatically.
- Package checkout — clients subscribe against your packages; the subscription is tracked and synced with Stripe.
- Stripe Connect — payments route to your connected account — you collect the revenue, the platform orchestrates the plan.
- Lifecycle handled — subscriptions activate on payment, roll the billing period, and reset failure counts on invoice.paid.
- Tied to the workspace — a client's package drives their sub-account's credits and limits, so upgrades expand their room automatically.
Metered overage & automatic rebilling
Usage beyond what's included is tallied and billed back to clients on a schedule.
Beyond the credits included in a package, client usage across channels is metered. The billing rules — your per-channel markups and per-unit rates — turn that usage into an overage amount, which a rebill run posts to Stripe so clients are charged for what they used over their allotment. The SaaS overview tracks overage billed month-to-date and the last rebill run so you can see the metered revenue accumulating.
Because rebilling is automated and posted through Stripe Connect, the agency doesn't chase usage invoices by hand: included credits cover the base, the rebill run handles the overage, and the operational views (subscriptions and rebill history) live in the sidebar for auditing each cycle.
- Metered usage — channel usage beyond a package's included credits is tracked per sub-account.
- Billing rules — your per-channel markups and per-unit rates convert usage into a billable overage amount.
- Automatic rebill — a rebill run posts overage to Stripe so clients are charged for what they used over their plan.
- Observable — overage billed MTD, the last rebill run, and a rebill history give you a per-cycle audit trail.