BetterSuite's AI features run against your LLM provider, not ours — bring-your-own-key. The platform never bills you for AI usage; it meters spend per provider so you can cap it, but the only invoice you receive for those tokens is the one from OpenAI / Anthropic / Google. This is the surface most operators get right with about ten minutes of setup.
Plan gate
AI is gated to Cloud Pro and above, or any Binary / Source license (self-hosted operators are unconditionally enabled since they pay up front and run their own infrastructure). Starter tenants hit a "AI features require a paid plan" prompt with an upgrade link.
The list of plans that unlocks AI lives in backend/crates/ai/application/src/plan_gate.rs:
cloud_pro,cloud_enterprisebinary_single,binary_multi,binary_enterprise- All Source licenses (the gate is enforced for SaaS tenants only)
Supported provider kinds
| Kind | Selectable in the dropdown | Notes |
|---|---|---|
| Anthropic | Anthropic (Claude) | Native metering for claude-opus-*, claude-sonnet-*, claude-haiku-* model families. |
| OpenAI | OpenAI | Native metering for gpt-4.1*, gpt-4o*, gpt-4o-mini*, o4-mini*. Newer model IDs are accepted but count as unmetered until the price list is updated. |
Google (Gemini) | Native metering for gemini-2.5-pro* and gemini-2.5-flash*. | |
| OpenAI-compatible | OpenAI-compatible (Azure, vLLM, OpenRouter…) | Point at your own endpoint URL. Calls count as unmetered — the platform doesn't know your per-token price, so they don't decrement the budget cap. |
The form's model field has a suggestion list per provider, but it's free-text — providers ship new IDs faster than dropdowns get updated and OpenAI-compatible endpoints use arbitrary names.
Step 1: Get an API key from your provider
- Anthropic — console.anthropic.com → API Keys → Create.
- OpenAI — platform.openai.com → API Keys → Create.
- Google — Google AI Studio → API key.
- OpenAI-compatible — whatever your endpoint requires.
If your provider lets you scope the key by project or set a budget there, do it. The cap you set on the BetterSuite side is a complementary safety net, not a substitute.
Step 2: Add the provider in the dashboard
Open Owner Dashboard → AI → Providers. Click Add provider and fill in:
- Kind — one of the four supported kinds above.
- Name — your label for this provider row.
- API key — encrypted at rest, never returned to the browser after save.
- Base URL — only meaningful for
OpenAI-compatible; ignored otherwise. - Default model — the model ID this provider falls back to when a feature doesn't pin a specific one. Suggestions in the dropdown; free-text otherwise.
- Monthly budget (USD) — optional cap. See Hard limits below.
- Make default — promote this provider to the tenant default. Demotes the previous default atomically.
After save, hit Test on the provider row. The dashboard fires a tiny ping prompt against your saved key and shows a Connection OK banner with the model used, latency in milliseconds, and a short reply preview. A failure surfaces the provider's own error string.
Step 3: Enable the features you want
Open Owner Dashboard → AI → Features. Features are off by default — nothing calls the LLM until you flip a toggle. Two sections:
Per-vertical features
- Support ticket triage — AI suggestions on incoming support tickets.
- Photo-to-listing for shop vendors — vendor snaps a product photo, the AI drafts a title, description, and tags.
- Auto-classify and summarize reviews — flags abusive reviews and produces short summaries.
- Suggest dynamic question templates — when you create a new service category, the AI proposes a tailored question set.
- KYC document OCR — extract structured fields from uploaded IDs (name, DOB, document number, expiry).
- Semantic product search — replaces keyword search with meaning-based search in the customer app.
- Natural-language analytics queries — ask the analytics dashboard questions in plain English.
Generic capabilities
- Speech-to-text (Whisper) — driver voice notes, support call transcripts, audio messages.
- Text-to-speech — in-app voice assistants and accessibility readouts.
- Translate strings via the configured AI provider — chat messages, product descriptions, support replies.
Each toggle is optimistic — flip it, and the row reflects the new state immediately while the mutation lands. If the backend rejects it (typically because the tenant fell off Pro and the gate now blocks the surface), the toggle reverts and an inline plan-gate banner appears.
If you have no active provider configured, every toggle is greyed out with a "Configure a provider first" CTA — flipping a feature on with nothing to route to would just no-op at call time.
Step 4: Monitor usage
Owner Dashboard → AI → Usage is the operational view. The page header lets you pick a window — 7, 30, or 90 days — and renders four KPIs:
- Total spend — sum of metered call costs, USD.
- Total calls — all calls in the window.
- Success rate — succeeded calls / total calls.
- Unmetered calls — calls where the model has no price entry (custom endpoints, voice, embeddings). These don't decrement your cap.
Below that you get a spend breakdown chart and a paginated call log filterable by provider, feature, and success state.
The usage figures update in near real time after each AI call; no separate refresh is needed.
Hard limits
The Monthly budget (USD) field on each provider row is your safety net. When metered spend hits 100%, AI features that route through that provider start refusing calls until the next calendar month or until you raise the cap. The rest of the platform continues normally.
The Providers page shows a per-row spend progress bar (only when a cap is set), and surfaces an amber banner at >= 80%, red at >= 100%. There's no separate "settings" sub-page — the cap is a field on the provider row itself.
Fees
BetterSuite does not add a platform fee or markup to AI usage — the metered cost is whatever your provider's published per-token rate computes to (see backend/crates/ai/infra/src/adapters/pricing.rs for the table). There is no AI line item on your BetterSuite invoice. The only bill you receive for these tokens is the one your LLM provider sends you directly.
Data flow
Calls flow from BetterSuite's backend directly to the provider you configured. The platform stores the prompt, response, and token counts in its own call log (which is what powers the Usage page). The provider's retention policy governs anything they hold.
For sensitive workloads, prefer providers with zero-retention enterprise tiers — Anthropic and OpenAI both offer this.
What's next
- Plans & Billing — confirm you're on a plan that unlocks AI.
- Branding — AI-generated marketing copy pairs well with consistent visuals.
- Stripe Payments — the other half of operator integrations, configured in the Ops Console.