Skip to main content

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

  1. Open Admin → Plans to see the list.
  2. Click a plan (e.g. pro) to open its detail page.
  3. Review pricing, numeric limits, and the Feature Grid at the bottom.
  4. Toggle individual features ON/OFF for this plan via the This Plan ON/OFF column.
  5. 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:

  1. Slug / Description — plan identity.
  2. Price (Monthly) / Price (Yearly) — Stripe-linked prices.
  3. Plan Limits — numeric fields: Max Overlays, Max Storage, Max Upload Size, Max Integrations, Chat Retention (days).
  4. 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, change max_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 ON on the Enterprise plan's This Plan ON/OFF column, leave it OFF for 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

ActionPermission
View plan list / detailplans:read
Create a planplans:create
Edit plan fields / feature assignmentsplans:edit
Delete a planplans:delete
Edit feature-flag detail rowsfeature-flags:edit

Dashboard entry requires admin:access. System admins implicitly hold all of the above.

API

UI actionGraphQLREST
List plansPart of public schema (plans query)GET /v1/plans and GET /v1/admin/plans
Get plan detail
Update plan featuresadminSetPlanFeaturePUT /v1/admin/plans/\{id\}/features
Feature-flag detail listadminFeatureFlagsDetailGET /v1/admin/feature-flags/detail
Feature-flag detail updateadminUpdateFeatureFlagDetailPUT /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. 0 means "keep forever" — confirm with the data-retention policy before setting that.
  • Hidden plans still appear in Subscriptions and Accounts.