Skip to content
Docs

Bill your clients for chats

Client billing sells your clients chats the same way it sells minutes. Each plan can bill web chat, WhatsApp and SMS per conversation or per message, include a monthly allowance, and price the extra chats a client uses. Clients top up with chat packs, by request or by card, or turn on chat auto top-up so they never run out.

Chats never use minutes. They have their own balance, their own warnings and their own packs, so a client who runs out of minutes keeps chatting, and a client who runs out of chats keeps calling.

How chats are billed over a month
  1. Voice AI Portal

    Plan renews, chats added

    This period’s chat allowance

  2. Voice AI Portal

    Every chat counted

    Per conversation or per message

  3. Voice AI Portal

    Warning as chats run low

    At 80% of plan chats unless you change it

  4. Your client

    Tops up if needed

    Chat pack, or auto top-up by card

  5. Voice AI Portal

    Extras billed at renewal

    At the plan’s price per extra chat

You need client billing switched on (see Set up client billing) and the agency owner or an admin to make plans and packs. Step 4 needs the agency owner.

  1. Measure the client’s chats. Put the client on a plan without a chat allowance and on Track only for a few weeks. The Usage card on its Billing page then shows its chats and messages, for example “186 chats, 1,532 messages (no minutes used)”. That is the number to size the allowance from. Selling now? Start from an example bundle on Track only and resize at renewal.

  2. Choose per conversation or per message. See Per conversation or per message below.

  3. Add the chats to a plan. Go to Client billing, then Plans, and select New plan or Edit. In the Chats section, choose Bill chats by, enter the chats per month and, if you want extras billed, a price per extra chat. Select Create plan or Save plan. See Plan fields for chats.

  4. Check your chat defaults. Go to Client billing, then Settings. Under Defaults for clients, set the Chat warning (80% to start with) and check Stop text channels too is on if chats should stop at the limit on Track and enforce. Leave Chats left needed to start a new chat under Calls and payments at 1: it counts in each client’s own unit, so 10 would refuse new chats to a client billed per conversation with 9 conversations left. Select Save settings. For clients billed per message, set it to 10 per client in Client settings, under Chats (see Chat options for one client).

  5. Create matching chat packs. Go to Client billing, then Packs, choose Chats and create packs that hold the same kind of chats as your plan. See Chat packs.

  6. Give chats their own agent (ElevenLabs). Answer WhatsApp and web chat with a chat-only agent, so their conversations are billed as chats and keep going when minutes run out. See When chats run out.

  7. Give the plan to the client. Open the client, select Billing in the Agency only box, then Change plan or Assign plan. See Create client plans.

  8. Check what the client sees. The client’s Billing page now shows Chats this period, and Need more chats? with your chat packs. See What your client sees.

For a full voice plus chat package with prices, see Sell voice, WhatsApp and web chat bundles.

A chat is one conversation as the provider records it. There is no 24-hour window in billing: each conversation the provider lists is counted once, for as long as it lasts.

Provider One chat is When it ends
ElevenLabs web chat and WhatsApp One conversation When the agent ends it, at its maximum duration, or on WhatsApp after 15 minutes with no new message following the agent’s last reply. A customer who writes again later starts a new chat.
Retell AI SMS and chats One chat When Retell AI ends the chat.
Vapi chats One chat session, or one chat thread When the session completes. Later messages in the same thread add messages, not a new chat.

For plans billed per message, every message with text from the customer and the agent counts. Tool calls, tool results and empty entries never count. The portal reads each chat’s message count from the provider, and keeps reading an open chat until it ends, so messages that arrive later are counted too. Messages that arrive after a renewal count in the new period.

A WhatsApp chat where the customer sends 5 messages and the agent replies 5 times counts as:

Plan setting Counted
Conversation 1 chat conversation
Message, Customer and agent messages 10 chat messages
Message, Agent replies only 5 chat messages
Choose When
Conversation The simplest to explain: “300 chats a month”. Best when chats are short and similar, such as website questions or booking requests.
Message, Customer and agent messages Chats vary a lot in length, or you want your price to follow your cost. ElevenLabs prices text per message (ElevenLabs pricing (opens in a new tab)).
Message, Agent replies only You want to bill only for the work the agent does. Each exchange counts once, so allow about half the messages and charge about twice the price per message.

Every plan has a Chats section: “Web chat, WhatsApp and SMS. Chats never use minutes.”

  1. Go to Client billing, then Plans, and select New plan, or Edit on a plan.

  2. In the Chats section, choose Bill chats by: Conversation or Message. For Message, also choose Messages that count: Customer and agent messages or Agent replies only.

  3. Enter the chats per month, for example 2000. Left empty, chats are unlimited: counted, not billed. The fields below appear once you enter a number.

  4. Optional: enter a price per extra chat, for example 0.02 per message or 0.25 per conversation, billed at renewal. Then, if you like, the extra chats allowed per month: on Track and enforce, chats stop after that many extras, or at the allowance when it is empty.

  5. Choose what happens to unused chats (Expire at renewal or Roll over for one period, with a cap), and any trial chats for a client’s first period.

  6. Under Channels that count, tick the channels to bill: Web chat, WhatsApp, SMS and Other (API and integrations) are all ticked to start with. Chats on unticked channels still show in usage.

  7. Select Create plan or Save plan.

Each field, with its limits and exact hints, is listed in Create client plans. The labels follow the unit you choose: a plan billed per message shows Chat messages per month (optional), Price per extra message (optional) and so on. In the Plans table, the allowance shows under Included, for example “2,000 chat messages”, or “1,000 chat messages (agent replies)”.

These fictional plans are the ones used across these guides, for an agency billing in GBP with a fictional all-in cost of £0.01 a chat message (about £0.10 a chat conversation). They are explained in full in Sell voice, WhatsApp and web chat bundles.

Growth 500 + WhatsApp Practice 1000 Chat 1000
Monthly price £169 £229 £25
Included minutes per month 500 1,000 0
Bill chats by Message Conversation Message
Messages that count Customer and agent messages Customer and agent messages
Chats per month 2,000 messages 300 conversations 1,000 messages
Price per extra £0.02 per message £0.25 per conversation £0.02 per message
Extra allowed per month 1,000 100 500
Unused chats Expire at renewal Roll over for one period, at most 100 Expire at renewal
Channels that count WhatsApp and Web chat WhatsApp and Web chat All
What you change When clients on the plan get it
Chats per month on a plan that already has an allowance From each client’s next renewal.
Chats per month on a plan with unlimited chats Straight away. Clients on the plan get this period’s chats at once, so nobody is cut off mid-month.
Price per extra, Extra allowed per month Straight away, including the current period.
Bill chats by, Messages that count From each client’s next period.

A client’s chats are only used in the unit they were bought in, so Bill chats by can’t change while a client on the plan holds unused chat packs or added chats, has an open chat pack payment, or has a chat pack payment in progress. Create a new plan and move clients to it at renewal instead.

Open the client’s Client settings and go to Client billing. The Chats block changes chats for this client only:

Option What it does
Chat messages per month for this client (or Chat conversations per month for this client) The client’s own allowance in place of the plan’s. “Empty uses the plan’s. Applies from the next billing period, or straight away (with this period’s chats) when the plan has unlimited chats.” Select Save.
Chats left needed to start a new chat On Track and enforce, a new chat starts only while at least this many are left, in the client’s own unit, so one chat can’t run far past the limit. Set 10 for clients billed per message. Empty uses the agency default.
Unlimited extra chats “For clients you trust: chats continue past the allowance and every extra one is billed at the plan’s price.” Needs a plan with a price per extra chat.

Every grant of chats is kept separately, with its own expiry. Each chat uses them in this order:

Order Chats Notes
1 Plan chats, including chats carried over This period’s allowance.
2 Trial chats Given once, the first time a client gets a plan, if the plan offers them.
3 Chat pack Earliest expiry first.
4 Added by agency Chats you add by hand.
5 Extra chats Past every grant: billed at renewal at the plan’s price, or counted if extras are not priced.

On the client’s Billing page, Chats this period shows how the client is billed, for example “Billed per message, from the customer and the agent. Chats never use minutes.”, the included chats used with a progress bar, Left to use, From packs and added chats, Used this period and any Extra, marked Billed at renewal or Counted, not billed. A Replies paused badge shows while new chats are stopped.

You also see every grant, with its Source (Plan chats, Carried over, Trial chats, Chat pack or Added by agency), Granted, Used, Left and Expires, and two actions:

  • Add chats: enter the number and a Reason (up to 200 characters, saved in the audit log), then select Add chats. “Adds chat messages that don’t expire, used after the plan’s chats and chat packs.”
  • Remove: enter the number and a Reason, then select Remove chats. “Removes unused chats, newest first (added chats, then packs, then plan chats).”

Clients on a plan with unlimited chats don’t see this card. You see it as “Unlimited chats on this plan: counted, not billed.”

A chat pack is a bundle of extra chats, such as 1,000 chat messages for £15, that a client can get on top of their plan.

  1. Go to Client billing, then Packs, and choose Chats. “Extra chats clients can request or buy. Pack chats are used after the plan’s chats, earliest expiry first, in the same unit as the client’s plan (conversations or messages).”

  2. Select New chat pack and enter the Name.

  3. Choose what it Holds: Chat messages or Chat conversations, the same as the plans you sell it with. This is fixed once the pack is created.

  4. Enter the number of chats, the Price and the Currency, and choose when the Chats expire after (30 days, 90 days, 6 months, 12 months, 2 years or Never expire; 12 months to start with).

  5. Choose Only for clients with a plan and Can be used for auto top-up, then select Create pack. You see Pack created.

A chat pack is offered to clients billed the same way: a pack of chat messages to clients whose plan bills per message, and a pack of chat conversations to clients billed per conversation. Clients with unlimited chats don’t need packs, so they are not offered any. Clients without a plan are billed per conversation, so they can live on packs of chat conversations alone. To sell another kind, create a new pack.

Price a chat pack above your cost and a little below your price per extra chat, so buying a pack is the better deal for the client. For example, 1,000 chat messages for £15 is £0.015 a message, against £0.02 for an extra message.

Way Who starts it When the chats arrive
Request chats The client, under Need more chats? on their Billing page When you record the payment, or straight away with Grant chats now, collect later
Buy now by card The client, once your Stripe account is taking payments As soon as the card payment goes through
Request payment for a pack You, on the client’s Billing page When you record the payment, or straight away with Grant chats now, collect later
Chat auto top-up Automatically, once the client turns it on When each top-up payment goes through
Add chats You, on the Chats this period card Straight away

When a client on Track and enforce has run out of chats, a pack lets new chats start again within a minute.

Chat auto top-up buys a chat pack automatically when a client’s chats run low. It works like minute auto top-up, with its own pack, threshold and consent, on the same saved card. It needs your Stripe account taking payments.

  1. Turn on Can be used for auto top-up on the chat packs you offer for it.

  2. The client’s billing contact opens their Billing page. On the Chat auto top-up card, they choose the Pack to buy and When chat messages fall to (50 to start with; When chat conversations fall to for conversation packs).

  3. They read the terms, for example: “When my chats fall to 50 chat messages or fewer, buy 1,000 chat messages for £15.00 with this card, at most 5 times a calendar month, until I turn chat auto top-up off.”

  4. They select Agree, buy now and turn on and pay for the first pack in Stripe Checkout. The card is saved for top-ups.

Once it is on: “Chats are added automatically before they run out.” At most one top-up runs at a time, and never more than 5 in a calendar month. Either side can stop it with Turn off chat auto top-up. If the pack’s name or price changes, or the client moves to a plan that bills chats another way or has unlimited chats, chat auto top-up switches off before buying anything, and the client turns it on again.

Refunding a chat pack bought by card takes back the refunded share of its unused chats, as for minute packs. Refunds and credit notes on a plan’s invoice take back that share of the period’s minutes and chats. See Create minute and chat packs.

Chats past the allowance and every pack are extra chats.

  • Priced extras. With a price per extra chat, they are billed at renewal: as an Extra chats payment request for clients on manual payments, or a line on the next Stripe invoice. For example “Extra chat messages: 240, Growth 500 + WhatsApp”.
  • Unpriced extras. Counted, and shown on the client’s Billing page, but not billed.
  • A cap on extras. With Extra conversations allowed per month (optional) set, a client on Track and enforce can use that many extra chats, then new chats stop. Without a cap, new chats stop at the allowance.
  • Track only. Chats never stop. Every extra chat is counted, and billed when extras are priced.
  • Unlimited extra chats. For clients you trust, turn on Unlimited extra chats in the client’s Client settings. It needs a plan with a price per extra chat.

With Track only, chats keep going and are counted. With Track and enforce and Stop text channels too on, new chats stop once no chat may start, until chats are added or the next period begins:

Channel What stops
Retell AI SMS New inbound SMS chats.
ElevenLabs WhatsApp WhatsApp messaging on the client’s WhatsApp numbers.
ElevenLabs chat-only agents New conversations, including web chat.
WhatsApp messages and template campaigns sent from the portal Each send is checked first, and refused with “This client has used all its chats.” A campaign shows Paused: chats used up and resumes by itself within a minute of chats being added or the allowance resetting.

Other chats, such as Vapi chats and Retell AI chats outside SMS, keep going and count as extra chats. Calls are never affected by chats.

Chats and minutes are judged separately on a plan with a chat allowance. A client whose minutes run out keeps chatting while it has chats left, and a client whose chats run out keeps calling while it has minutes. On a plan without a chat allowance, text stops when calls stop.

Chats left needed to start a new chat keeps a long chat from running far past the limit: with Track and enforce, a new chat starts only while at least this many are left. It counts in each client’s own unit. Keep the agency default at 1 (set by the owner under Client billing, Settings, Calls and payments), and set 10 or more per client, in Client settings under Chats, for clients billed per message.

Stopping inbound text changes settings in the client’s provider account. These provider changes are off until our team enables them for the client. Checks on WhatsApp sends from the portal work without them. See When minutes run out.

When Who hears What they get
The client reaches the Chat warning share of its plan chats Billing contacts and your team “You’ve used 80% of your chats”, with the chats used and left, and the reset date.
All plan chats are used Billing contacts and your team “You’ve used your 2,000 chat messages”, with what happens next: chats continue from packs, continue as billed extras, continue as normal, or are paused.
A chat top-up fails Billing contacts and your team The same top-up failed email as for minutes.
A chat top-up needs bank confirmation Billing contacts only The same confirmation email as for minutes.

The owner sets Chat warning under Client billing, Settings, Defaults for clients: Off, or At 50%, 70%, 75%, 80%, 85%, 90% or 95% of plan chats (80% unless changed). Once the plan chats are used, billing contacts also see a banner such as 2,000 of 2,000 chat messages used, saying whether chats continue from packs, continue as extras, or are paused.

Billing contacts see, on their Billing page:

  • Chats this period, while their chats are billed.
  • Need more chats? with your chat packs, and Request chats or Buy now on each.
  • Chat auto top-up, when you offer a chat pack for it and your Stripe account is taking payments.
  • Their chats and messages under Usage.

See Client billing for your clients.

The client’s Usage card totals billable minutes, calls, chats and messages, for example “1,240 billable minutes · 412 calls · 186 chats, 1,532 messages (no minutes used)”. Each chat in the list shows its messages, such as “12 msgs”, or “4 msgs so far” while it is open. Statement CSV adds three columns for chats: messages, chat_units (the chats billed) and chat_unit (conversation or message).

The Overview tab and the Clients list show each client’s chats used against its allowance next to its minutes, for example “320 of 1,000 chat messages”.

Chat billing keeps only IDs, times, channels, message counts and money. It never stores what was said: no messages, transcripts, names or phone numbers.

Problem What to do
A client doesn’t see Need more chats? Check the client is billed for chats (a plan with a chat allowance, or no plan), that you have an active chat pack in its currency and unit, and that Client can request packs is on for it.
This client’s plan has unlimited chats, so chat packs aren’t needed. Set chats per month on the plan, or give the client its own allowance in Client settings.
This client is billed for chat messages, and this pack holds a different kind of chat. Offer a pack that holds the same kind of chats as the client’s plan.
A plan change says the client would stop counting its chats The client holds chats in another unit. Use them up, remove them or settle the request first, or choose a plan that bills chats the same way.
A client on this plan has unused chat packs or added chats, so how chats are billed can’t change. Create a new plan with the other unit and move clients to it at renewal.
Unlimited extra chats is greyed out Give the plan a price per extra chat.
Chats stop when minutes run out Check the plan has a chat allowance, and that WhatsApp and web chat are answered by a chat-only ElevenLabs agent.
Chats keep going on Track and enforce Check Stop text channels too is on, and that provider changes are enabled for the client. Vapi chats and Retell AI chats outside SMS count as extra chats rather than stopping.
“This client has no plan, so new chats can’t start.” Assign the client a plan, or switch it to packs only.