Skip to main content
Version: 0.9.14

Custom deals

Custom deals let platform superusers create contract-specific subscription terms for a team without exposing generated plans in public registration or standard plan selection. Use them when a customer needs negotiated usage limits, overage pricing, commitment terms, or channel access that does not match the self-service catalogue.

Path: /admin-settingsCustom Deals tab

Deal model

A custom deal is versioned. Each version records the commercial terms that become active for a team:

FieldPurpose
Display nameCustomer-facing label shown on subscription screens.
Included usageIncluded call minutes, LLM tokens, SMS messages, users, and admins.
Overage pricingPer-unit rates and optional spending cap.
ChannelsWhether the team can use TEL, WebRTC, and API/SDK access.
TermFixed commitment in months, or indefinite when no term is configured.
Notification thresholdsUsage percentages that trigger billing notifications.
Internal notesOperator-only context for sales, support, or renewal tracking.

Generated plans are linked to the deal version. They are hidden from public self-service plan pickers unless explicitly made selectable.

Create a custom deal

  1. Open Admin Settings → Custom Deals.
  2. Select the target team.
  3. Create or edit a deal version.
  4. Fill in the commercial terms, usage allowances, overage prices, channel selection, and commitment term.
  5. Generate the Stripe checkout link.
  6. Share the link with the customer or use the activation controls for an existing subscription.

After activation, the team sees the custom-deal terms under Settings → My Subscription. The standard plan catalogue still exists, but self-service cancellation and downgrade actions are blocked while the team is inside an active commitment window.

Channel entitlements

Channel selection controls which platform surfaces the team may use:

ChannelWhat it gates
TELPhone-number and telephony access.
WebRTCBrowser voice system keys and WebRTC calling.
API/SDKTeam API keys and TelAPI session access. Requests fail when API/SDK is not enabled for a team.

Use channel entitlements to keep contract scope aligned with the customer's purchased access. If a team reports that API keys, WebRTC sessions, or phone-number actions are blocked, check the active deal version before troubleshooting platform health.

Existing subscriptions

Custom deals can be applied to existing teams. When you move a team onto a deal:

  • Confirm the team's current billing state and pending plan changes.
  • Verify that generated Stripe products/prices exist for the deal version.
  • Confirm the channel selection before activation, especially API/SDK access for integrations.
  • Tell the team admin that My Subscription will show contract-managed terms and may restrict self-service downgrade or cancellation during the commitment period.

See also