Plans
The Plans view is where operators define the subscription tiers Lumio offers — their pricing, the numeric limits they impose, and the feature grid that maps plan tier to feature availability. Every account is tied to exactly one plan; the plan's defaults cascade through the system unless an account has an override (see Accounts).
Where to find it
Admin sidebar → Plans (/plans). Detail pages live at /plans/\{id\}.
Quick start
- Open Admin → Plans to see the list.
- Click a plan (e.g.
pro) to open its detail page. - Review pricing, numeric limits, and the Feature Grid at the bottom.
- Toggle individual features ON/OFF for this plan via the This Plan ON/OFF column.
- Save — the change propagates to every account on the plan that does not have a per-account override.
Detailed walkthrough
Plans list (/plans)
Columns:
- Name — display name (e.g. "Pro").
- Slug — machine identifier (
free,pro,enterprise). - Monthly / Yearly — Stripe price display.
- Overlays — max overlays allowed.
- Integrations — max integrations allowed.
- Visibility — Public or Hidden.
- Order — sort position in public pricing pages.
Plan detail (/plans/[id])
Multiple sections:
- Slug / Description — plan identity.
- Price (Monthly) / Price (Yearly) — Stripe-linked prices.
- Plan Limits — numeric fields: Max Overlays, Max Storage, Max Upload Size, Max Integrations, Chat Retention (days).
- Feature Grid — "Manage global feature flags and plan-specific feature assignments." Rows for every feature flag with four columns:
- Feature — name.
- Global ON/OFF — the global kill-switch state (from Feature Flags).
- Default for Accounts — the global default-on flag for new accounts.
- This Plan ON/OFF — the plan-level opt-in for this specific plan.
Changes in This Plan ON/OFF write via PUT /api/plans/\{id\}/features. Changes in Global ON/OFF / Default for Accounts write via PUT /api/feature-flags/\{flagId\}/detail and also affect every other plan.
Visibility
Plans with visibility = hidden are not shown on the public pricing page but can still be assigned via the admin Accounts view. Typical uses: grandfathered legacy plans, enterprise-only tiers negotiated per-customer.
Common scenarios
- Raise the upload limit for Pro — open
pro, changemax_upload_size_bytes, save. Every Pro account without a per-account override picks up the new cap. - Ship a new beta feature to Enterprise only — set the feature to
ONon the Enterprise plan's This Plan ON/OFF column, leave itOFFfor Free and Pro, and ensure the Global ON/OFF is enabled. - Sunset a plan — set visibility to Hidden; existing accounts stay, pricing page no longer offers it.
- Apply a global kill-switch — toggle Global ON/OFF for a feature; every plan is overridden to off regardless of per-plan settings.
Permissions
| Action | Permission |
|---|---|
| View plan list / detail | plans:read |
| Create a plan | plans:create |
| Edit plan fields / feature assignments | plans:edit |
| Delete a plan | plans:delete |
| Edit feature-flag detail rows | feature-flags:edit |
Dashboard entry requires admin:access. System admins implicitly hold all of the above.
API
| UI action | GraphQL | REST |
|---|---|---|
| List plans | Part of public schema (plans query) | GET /v1/plans and GET /v1/admin/plans |
| Get plan detail | — | — |
| Update plan features | adminSetPlanFeature | PUT /v1/admin/plans/\{id\}/features |
| Feature-flag detail list | adminFeatureFlagsDetail | GET /v1/admin/feature-flags/detail |
| Feature-flag detail update | adminUpdateFeatureFlagDetail | PUT /v1/admin/feature-flags/\{id\}/detail |
Plan CRUD (create / delete) is exposed through RBAC constants but the admin UI today only supports reading and editing the seeded plans.
Tips & gotchas
- Effective feature state for an account is the AND of: Global ON × Plan ON × not-explicit-account-override-off. If any of those are off, the feature is off for the account.
- Stripe prices are maintained in Stripe; this page only references them. Creating a brand-new plan tier requires an accompanying Stripe product + price.
- Chat Retention is in days.
0means "keep forever" — confirm with the data-retention policy before setting that. - Hidden plans still appear in Subscriptions and Accounts.
Related
- Feature Flags — global kill-switches
- Accounts — per-account plan and limit overrides
- Subscriptions — which accounts are on which plan
- Coupons — discounts against these plans