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 use the SaaS Configurator to sell the platform: connect Stripe, publish plans, add-ons, and coupons, and let clients subscribe and pay you directly — with metered overage billed back automatically each month and your margin on every client shown on the agency billing dashboard. 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.
- Agency sidebar — agency owners get a dedicated sidebar grouped into Overview, Billing & Usage, SaaS & Revenue, and Resources.
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.
Sub-account drill-down & plan changes
Open any client to see what they have, what they spend, and change their plan.
Open any sub-account to see its effective features and limits, turn individual features on or off, and review a 30-day credit spend chart with recent transactions. Per-sub-account overrides adjust features and limits for one client, and you can bulk-apply them across several sub-accounts at once.
You can change a client's plan from Agency → Accounts: upgrades apply now and downgrades take effect at the end of the billing period. If a client has a pending cancellation, you can resume their subscription from the same place.
- Effective features & limits — see exactly what a sub-account can use, after its plan and any overrides.
- Feature toggles — turn features on or off for one client, or bulk-apply overrides to many.
- 30-day spend — a credit spend chart with recent transactions for each sub-account.
- Plan changes — upgrade now, downgrade at period end, or resume a pending cancellation.
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 & the SaaS Configurator
A guided setup takes you from connecting Stripe to switching SaaS Mode on.
SaaS Mode turns sub-accounts into paying subscribers. The SaaS Configurator is a step-by-step wizard with steps for connecting Stripe, plans, add-ons, coupons, rebilling, and wallet, followed by a final review where you switch SaaS Mode on. You can jump to any step at any time.
The configurator also surfaces an overview of active subscriptions, overage billed month-to-date, and the last rebill run. 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.
- Guided wizard — Stripe, plans, add-ons, coupons, rebilling, and wallet steps, then a final review that switches SaaS Mode on.
- Jump anywhere — move to any step at any time instead of working through them in order.
- 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 build each plan from the full feature and limit list, capped at what your own plan allows, and set flags for active, public, and featured. Add-ons are the à-la-carte extras clients can buy on top of a package.
Each limit uses a plain-language picker — Not included, Limited to a number, Unlimited, or Same as plan for overrides — instead of typing special numbers. To get started quickly, begin from the Mass default packages: editable draft copies of the Free, Starter, and Growth plans. Activate the ones you want to sell, and restore the defaults at any time. Course & Community AI is one of the features you can turn on for sub-accounts in your packages.
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 — capped at your own plan.
- Plain-language limits — Not included, Limited to a number, Unlimited, or Same as plan.
- Default packages — start from editable drafts of the Free, Starter, and Growth plans, and restore defaults any time.
- 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.
Agency coupons
Create promo codes for your plans and share checkout links with the code already applied.
Create promo codes for the plans you sell, then copy a checkout link with the code prefilled so a client lands on checkout with the discount already applied. You can also apply or remove a coupon on a live subscription.
- Promo codes — create coupons for your own plans.
- Prefilled checkout links — share a link that opens checkout with the code already applied.
- Live subscriptions — apply or remove a coupon on a client's existing subscription.
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.
Clients get their own billing page where they see their wallet balance, upgrade or downgrade on their own, and open the billing portal for invoices, cards, and cancellation. Plan limits are enforced: sub-accounts only see the menu items their package includes, plan features and limits are checked when they create items, a past-due sub-account is limited to its billing page after a 7-day grace period, and a canceled sub-account is limited to its billing page right away.
- 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.
- Client billing page — clients see their wallet balance, change plans themselves, and open the billing portal.
- Limits enforced — menus follow the package, creation checks plan limits, past-due accounts are limited to billing after 7 days, and canceled accounts right away.
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.
Agency billing dashboard & margins
See what each client uses, what it costs you, and what you earn.
The agency billing dashboard has a left-hand menu for usage, wallet and payments, and controls. Its By Sub-Account view shows, for each client, their usage, your cost, the amount rebilled, and your margin — so you can see which sub-accounts earn you the most.
- One menu — usage, wallet and payments, and controls in one place.
- By Sub-Account — usage, your cost, amount rebilled, and margin for every client.
Agency wallet settlement
White-label sub-account usage settles against the agency wallet automatically.
When a white-label sub-account uses the platform, the agency wallet is charged at the platform price and the sub-account is charged at your price — or the agency absorbs the cost. Your margin is recorded on every charge. A Fund sub-accounts from agency wallet switch in Agency Settings → Billing controls whether white-label sub-account usage is paid from the agency wallet; platform admins decide whether agencies can change it.
Email, SMS, and voice usage is turned into credits every 15 minutes, with fractions carried over so a single email is not rounded up to a full credit. If the paying wallet cannot cover the messaging owed, SMS, WhatsApp, voice calls, and email sends pause.
- Two prices per charge — the agency pays the platform price; the sub-account pays your price, or the agency absorbs it.
- Margin recorded — your margin is stored on every charge.
- Wallet funding switch — Agency Settings → Billing → Fund sub-accounts from agency wallet.
- Messaging in credits — email, SMS, and voice usage converts to credits every 15 minutes, carrying fractions over.
- Empty-wallet protection — messaging and calls pause when the paying wallet cannot cover what is owed.
Reseller terms
Accept the current reseller addendum from the agency dashboard.
Agency owners and admins see a banner on the agency dashboard prompting them to read and accept the current White-Label & Reseller Addendum. When the addendum is updated, the banner returns so you can accept the latest version.