B Blengi docs

Platform admin

Managed plans & Calendly CTA

A Managed plan is a high-touch tier where the Pitchbar / Blengi team handles setup, AI training, knowledge-base configuration, and ongoing maintenance for the customer. The visitor doesn't pay online โ€” they book a call with a sales rep who closes the deal and bills them off-platform.

Under the hood, Managed plans piggyback on the regular Plan model with one extra knob: cta_type. Set it to calendly and the pricing card swaps the self-serve Stripe checkout button for a Book a call link that opens your Calendly event in a new tab.

Creating a Managed plan

  1. Open /admin/plans/create.
  2. Fill in the basics: name (e.g. Managed), monthly conversation cap (use 0 for unlimited), monthly price.
  3. Scroll to the Checkout behaviour card.
  4. Set CTA type = Book a call (Calendly).
  5. Paste your Calendly event URL โ€” for example https://calendly.com/your-handle/discovery. Use a specific event link, not your profile root, so the visitor lands on a bookable slot directly.
  6. (Optional) Enter a one-time setup fee in your plan currency. When both a setup fee and a monthly price are set, the pricing card renders the dual line "โ‚ฌ999.00 setup + โ‚ฌ199.00/month" under the headline price.
  7. Marketing bullets โ€” list what the plan includes (Full setup, AI training, Knowledge base setup, Lead capture configuration, Ongoing maintenance, Priority support). Max 8 entries ร— 80 characters each.
  8. Save.

What changes vs. a self-serve plan

  • Stripe sync is skipped. Calendly plans never get a Stripe Product or Price provisioned โ€” even if you set a monthly price. The sales rep mints the Stripe Price (or sends a one-off invoice link) manually after the call.
  • The PayPal and Razorpay syncs are also skipped for the same reason. The per-row Sync button on /admin/plans returns a friendly "Calendly plans bypass gateway sync" message instead of an error.
  • The pricing card button is an <a> with target="_blank" rel="noopener noreferrer". It does NOT carry the self-serve interval=year query-string hint โ€” Calendly would ignore it anyway.
  • Default for new signups should not be set on a Managed plan. New workspaces auto-attached to a Managed plan would have no Stripe customer or subscription, breaking the billing UI.

Switching an existing plan to / from Calendly

The cta_type column defaults to stripe_checkout for every existing row, so the migration is a no-op for self-serve plans. Switching a plan TO Calendly mid-life is supported: existing subscriptions stay on the Stripe Price they were minted at, and the public pricing card immediately swaps to the Book-a-call CTA.

Switching FROM Calendly back to Stripe re-enables the gateway sync. Hit the per-row Sync button on /admin/plans to mint a fresh Stripe Product + Price.

Field reference

ColumnTypeMeaning
cta_type string(32) stripe_checkout (default) | calendly.
calendly_url string(512), nullable External Calendly event URL. Required when cta_type=calendly.
setup_fee_cents integer, nullable One-time setup fee in minor units. Combined with the recurring price for the dual-line display.

See also: Plans & Stripe sync for the broader plan CRUD surface.