# Plans & Packages

## Overview

Packages (a.k.a. plans) are the products you sell. Each package bundles a price, a set of numeric limits, and a set of feature toggles. When a workspace subscribes to a package, those limits and toggles govern what the workspace can do. You'll find the Packages area under Admin → Packages.

This is the heart of your SaaS monetisation: build a tier ladder (for example Starter → Growth → Pro → Enterprise), price each rung, and decide exactly which features and quotas each rung unlocks.

## The Package List

The index shows every package as a card, ordered by sort order then price, with a count of how many workspaces are on each. A KPI strip summarises active plans, trial (free) plans, archived plans, total subscribed workspaces, and total MRR (sum of each paid, active plan's price × its workspace count).

From the list you can create a new package, edit or view an existing one, toggle it active/inactive, or delete it.

> Caution: A package cannot be deleted while any workspace is on it — the delete is blocked and tells you how many workspaces are using it. Migrate those workspaces to another plan first, or simply deactivate the package (toggle it off) so it disappears from the pricing page without affecting existing subscribers.

## Creating a Package: the Four-Step Stepper

Creating or editing a package uses a guided four-step form — the same form handles both. A progress bar at the top tracks which step you're on, and you can jump between steps by clicking them.

Step | Purpose
--- | ---
1. Basics | Name, pricing, currency, billing period, description, and the headline toggles.
2. Limits | The numeric quotas (devices, messages, contacts, and dozens more).
3. Features | The on/off feature gates that decide what the plan can access.
4. Display & review | Call-to-action label/URL, sort order, and a live summary before you save.

## Step 1 — Basics & Pricing

Set the commercial terms of the plan.

Field | What it does
--- | ---
Package name | Required. The plan's display name (Starter / Growth / Pro / Enterprise).
Subtitle | A short tagline shown under the name on the pricing page.
Price | Required. The recurring amount. `0` = free (also turn on the Free toggle).
Offer price | Optional discounted price shown struck-through against the regular price.
Currency | Required. Drawn from your active currencies.
Billing period | A number plus a unit (days / weeks / months / years). 1 month = monthly recurring; 1 year = annual.
Description | Selling text shown to customers under the plan name.

Six headline toggles sit at the bottom of this step:

Toggle | Effect
--- | ---
Free plan | No charge, no recurring billing.
Lifetime | One-time payment, never renews.
Active | Visible on the public pricing page. (On by default.)
Default for signups | New workspaces are placed on this plan automatically.
Highlight as popular | Adds a "Most popular" badge on the pricing page.
Custom quote | Hides the price and shows "Contact sales" instead.

## Step 2 — Numeric Limits

This step sets the quotas. There are dozens of limit columns, organised into logical groups so the form is navigable. Leave a field blank to mean unlimited — the placeholder shows the infinity symbol as a reminder.

Group | Example limits
--- | ---
Messaging caps | Messages / month, broadcasts, broadcast size, campaign messages, automation messages, scheduled campaigns, total & active campaigns, daily media MB.
Workspace caps | Devices, team seats, contacts, groups, workspaces per owner, tags.
Content caps | Templates, flows, steps per flow, keyword auto-replies, chatbots, quick replies.
AI & voice caps | WABA calling minutes / mo, AI voice minutes / mo, AI chat messages / mo, AI agents, AI training sources, AI tokens / mo.
Commerce & SLA | WA storefronts, chatbot website widgets, SLA policies, translation chars / mo, drip campaigns, appointments / mo.
Other caps | Outbound webhooks, routing rules.

> Note: The AI tokens / month cap applies when a workspace falls back to your global admin AI keys — it stops a cheap plan from running up your AI bill.

## Step 3 — Feature Toggles

This step is the set of roughly thirty on/off feature gates. A toggle that's on grants the feature to workspaces on this plan; off blocks it (the app hides or gates the feature for that workspace). New packages default these on so you don't accidentally ship a plan with everything disabled. Like limits, they're grouped:

Group | Representative toggles
--- | ---
Messaging | Auto-reply system, bulk messaging, scheduled messages, campaigns, flow builder, broadcasts, templates, carousel templates, drip campaigns, keyword auto-replies, edit sent messages, message reactions.
Inbox & team | Internal notes, routing rules, business hours, team performance, Kanban view, appointment booking, SLA policies, role-based permissions.
AI & calling | WhatsApp Cloud-API voice calling, call recording, AI voice agent, AI chat assistant, AI training sources, inline "Generate with AI" buttons, AI agents, Bring your own AI keys, AI reply suggestions.
Commerce | WhatsApp Storefront / catalog, commerce-aware flows, chatbot website widgets, Shopify integration, WooCommerce integration.
Integrations | HubSpot, Google Calendar, Google Sheets, outbound webhooks.
Advanced | Meta Ads integration, Click-to-WhatsApp ads, analytics dashboard, multi-device sending, file-type upload restrictions, multilingual auto-translation, data residency drivers, remove branding.

> Two toggles worth understanding: Bring your own AI keys — when on, the workspace's own AI provider keys take precedence over your global keys (off by default so cheap plans don't bypass your billing). Remove branding — white-labels the app for that plan by stripping the platform name from the UI and message footers.

## Step 4 — Display, CTA & Review

The final step controls how the plan appears on the pricing page and shows a live review before saving.

Field | What it does
--- | ---
CTA label | The button text on the pricing card (default "Get started").
CTA URL | Where the button goes. Blank routes to the normal checkout.
Sort order | Lower numbers appear first on the pricing page. Use this to order your tier ladder.

The Review panel summarises the plan from the current form state so you can sanity-check pricing, limits, and feature gates before committing. Hit Create package (or Save changes when editing) to persist.

## How Limits & Gates Are Enforced

When the form saves, an empty limit is stored as unlimited and an unchecked toggle is stored as blocked. At runtime the app reads these values to decide what a workspace can do — a limit check stops a workspace exceeding its quota, and a feature gate hides or disables features the plan doesn't include.

Individual workspaces can be granted exceptions to any numeric limit via per-workspace overrides on the workspace detail page, so you don't have to clone a whole plan for a single special-case customer.

## Plan Analytics

The packages area includes an analytics view covering a 30/90/365-day window. It shows total MRR, average revenue per account, a lifetime-value estimate, churn, trial-to-paid conversion, a per-plan leaderboard, a plan-share donut chart, the weekly MRR trend for your top plans, upgrade/downgrade paths between tiers, and feature adoption across paying workspaces. Use it to see which rung of your ladder is pulling the weight and where customers are upgrading.