In this article9
- Guessing is not a small error
- What happens between the customer’s message and the reply
- What you train it on, and how
- Arabic: it replies in the customer’s language, not yours
- What you control
- From creation to the first real conversation
- When the bot has to stop
- Cost: what is measured and where you see it
- What it does not do — before you build a plan on it
The difference that decides everything is not how clever the model is, but where it gets its answer. A bot bound to your content can be put in front of a paying customer. A bot that guesses cannot — however clever it looked in the pitch.
Guessing is not a small error
A language model is built to complete a sentence with the most plausible continuation, not to admit ignorance. Asked about the price of a plan it does not know, it produces a number that resembles your numbers. Asked about your returns period, it produces “fourteen days” because that is the most common, not because it is your policy. The customer has no way of telling, and the promise they read in the conversation has become your promise.
Which is why the right question when assessing any bot is not “does it understand Arabic?” but “what does it do when it does not know?”. And that is what separates the two uses:
Where the answer comes from changes everything
comparison| Bound to your content | A general model | |
|---|---|---|
| The prices and policies it quotesEither taken from a file you uploaded, or invented because they sounded reasonable | Yes | No |
| What it does when asked something it does not knowIt says it does not have the information, rather than inferring it from a nearby passage | Yes | No |
| Whether any answer can be auditedYou can open the source and see the passages it was actually trained on | Yes | No |
| Correcting wrong informationYou edit the file and retrain — instead of trying to “persuade” the model with a longer prompt | Yes | Partly |
| Consistency between one customer and the nextOne source means one answer, however the question is worded | Yes | Partly |
| Details outside your sourcesIt handles a greeting and small talk, but never gives a price, a date or a number you do not have | Partly | Yes |
What happens between the customer’s message and the reply
This is not “sending the question to the AI”. Between the message arriving and the reply leaving there is a short chain, and every link in it is inspectable by you:
The cycle of a single reply
sequence- 1The message arrives on your numberAnd is checked first: is this conversation with an agent right now? Is the bot paused for this specific customer? If so, the bot does not intervene at all.
- 2The handover is checked before anything elseAn explicit request for a person, one of the handover words you defined, or a message arriving outside your working hours — in those cases the model is never called, and the conversation goes straight to your team.
- 3Your knowledge base is searchedThe meaning of the question is compared against passages from your documents, and the most relevant are selected. Those passages — not the internet — are the material the answer will be built from.
- 4The reply is written inside drawn boundariesThe model receives your own prompt, the retrieved passages, the never-invent policy, and the customer’s language. Then it writes one reply within them.
- 5The reply is checked before it is sentIf the bot had offered to hand the customer to an agent and the customer accepted, no ordinary reply is sent: a waiting message goes out in the customer’s language and the conversation moves to the inbox in a “needs an agent” state.
- 6The usage is recordedEvery reply is booked to the assistant that produced it: the number of tokens and their estimated cost in riyals. This is what appears later in the usage panel, broken down by assistant and by day.
What you train it on, and how
There is no “training” in the sense many people imagine — no waiting days, no data team. You upload what you have, it is split into searchable passages, and it is available to the assistant within minutes.
| Source type | What it accepts | When to use it |
|---|---|---|
| A file | PDF, DOCX, TXT, CSV, XLS and XLSX — up to 100 MB each | The product catalogue, the price list, the services guide, the terms booklet |
| A link | Up to ten links at a time — the page itself is read, not the whole site | Specific pages that change: the FAQs, the shipping policy, the branches page |
| A question and answer | Up to a hundred pairs, with the question and the answer written as text | What is asked daily and is written down in no file — you write it once, as your colleague would say it |
After uploading, every source passes through a stated condition: pending, then processing, then ready — or error. That last one is not the end of the road: you deal with the cause and press “retrain”.
- A preview of what it was actually trained on. Every source has a preview showing the passages extracted from it — with their page numbers if it is a file. This is the fastest way to discover that the price file was uploaded in last year’s version.
- Searching inside the knowledge. You type a real customer question and see which passages would have been retrieved for it, before you discover the answer from an angry customer.
- Separate knowledge per assistant. The sales assistant’s sources are not visible to the support assistant. The separation is deliberate: mixing knowledge bases is the fastest route to misleading answers.
- Deleting reduces the knowledge immediately. Deleting the last source leaves the assistant with nothing to answer from, and the system warns you before you do it.
Arabic: it replies in the customer’s language, not yours
The Saudi market does not write in one language. The same customer may start in Arabic and finish with an English term, and the next one writes entirely in English. Forcing everybody into one language is a bad decision, and leaving it to a machine translation after composing is a worse one.
What language does the assistant reply in?
decisionThe default
- Somebody who writes in Arabic is answered in Arabic, and somebody who writes in English is answered in English
- The matching happens on every message, so a customer changing language mid-conversation is followed
- The waiting messages on handover have an Arabic version and an English one, so the language does not break when the conversation is handed over
- No extra setup and no separate template per language
When the language is a decision
- You choose the reply language and the assistant keeps to it whatever the customer writes
- Suited to organisations whose policy obliges them to correspond formally in Arabic
- Suited too to a brand addressing one audience and wanting a completely uniform tone
- The chosen language also stays the reference when a message arrives with no linguistic signal — numbers or symbols only
What you control
Four settings only, all changeable at any time with nothing to rebuild. The brevity is deliberate: every additional setting is a setting that will be set wrong at least once.
| Setting | What it does | The practical recommendation |
|---|---|---|
| The system prompt | Defines who the assistant is, who it is talking to, in what tone, and what it does not do. Up to 8,000 characters. | Write it the way you would write instructions for a new colleague: who we are, what we sell, what we do not promise. There is no need to stuff information into it — that belongs in the knowledge base. |
| The ready templates | Seven pre-written prompts — customer service, sales, technical support, live chat, lead qualification, HR, marketing — each arriving with a creativity level set to suit it. | Start from the template closest to your business and adjust it, rather than writing from a blank page. The template sets the creativity level too, so do not change it in the same session before you have read at least one reply. |
| The creativity level | From zero to one, defaulting to 0.5. Lower values stick closer to the text, higher ones take more liberty with the wording. | For customer service and pricing, lower it. Raising it does not make the bot “warmer” so much as more inclined to rephrase freely. |
| Language | The primary reply language, with an auto-detect option to match the customer’s language. | Leave it on auto-detect unless you have a policy that obliges otherwise. |
From creation to the first real conversation
The route is four steps in the wizard, then a test, then activation. The order below is the actual order — and the fifth step is the one most people skip and then pay for in front of a customer.
The whole route, in order
sequence- 1Settings — create the assistantA name, the reply language, the creativity level, and the system prompt. You can start from a ready template and adjust it rather than writing from scratch. It is saved as a draft, and answers nobody yet.
- 2The knowledge base — upload your sourcesYour files, your links and your question/answer pairs. Wait until the state turns to “ready”, then open the preview and check that what was extracted is what you actually expect.
- 3Collecting customer data — optionalIf you want the assistant to capture the customer’s name, mobile number or city during the natural conversation, define the fields here and how it asks for them. Leave it off if your goal is answering only.
- 4Connection — choose a WhatsApp numberThe number it will reply from. One number per assistant, so two assistants never contend for the same conversation. If you do not have a connected number yet, start from connecting your existing number.
- 5Test it before you turn it onInside the assistant’s page there is a simulator where you write as your customer would, and it shows you the sources the reply was built from. Try a question at the heart of your documents, a question entirely outside them, and an explicit request for a person — all three together are the test, not the first alone. And simulator conversations do not count towards the usage shown to you.
- 6Turn it on, then read the first real conversationsThe first two days are the real training session: questions that never occurred to you, and wordings you did not expect. Every unanswered question is a missing source you learned about for nothing — add it and retrain.
When the bot has to stop
The dangerous thing about a customer-service bot is not its ignorance but its persistence. A customer complaining about a damaged order does not want a clever answer, they want a person. Which is why stopping is designed behaviour, not a failure state.
| What stops it | How it is detected | What happens next |
|---|---|---|
| An explicit request for a person | The customer asks for a human in any wording and any language — or presses the handover button | It neither apologises nor argues: it hands over immediately |
| A handover word you defined | A list of words you write yourself — “complaint”, “manager”, “refund” | A handover before the model is called at all, so not a second is wasted |
| Outside working hours | A weekly schedule in your timezone that you define | An out-of-hours message in the customer’s language, and the conversation waiting for your team |
| An offer the customer accepted | The bot cannot answer, so it offers to connect them to a person, and the customer agrees | A waiting message then a handover — and the customer is the one who decided |
- It does not send you somewhere else. Faced with a complaint or a problem it cannot solve, it is forbidden from giving a phone number or an email and ending the conversation — even if that number is in your documents. The resolution happens in the conversation itself, with a person.
- A handover is a visible state. The conversation moves to “needs an agent” in the inbox, so the team sees it, assigns it and carries on from where the bot stopped — with the whole conversation’s context.
- The human holds the key. When an agent takes a conversation over, the bot stops on it. The bot can also be paused for a specific contact, if that is a customer who always prefers dealing with a person.
- No silent escalation. The bot does not throw the customer at an agent merely because the question looked hard. It offers first, and only hands over on acceptance — so your team’s list does not fill with conversations a reply would have settled.
Cost: what is measured and where you see it
The AI assistant’s cost is entirely separate from Meta’s per-conversation fees. Meta’s fees are paid on the conversation whether an agent answered it, a bot did, or nobody did, and you work them out for your volume on the pricing calculator. AI usage, by contrast, is measured in tokens: the amount of text going in and out on every reply.
| What you see in the usage panel | Why it matters to you |
|---|---|
| The number of messages the AI answered this month | That same number measures what you saved your team |
| The tokens consumed: incoming, outgoing, and those used indexing your sources | A sudden rise in the incoming figure usually means a knowledge base that has grown without need |
| The estimated cost in riyals | A number you read during the month rather than after it |
| The breakdown per assistant and per day | It reveals which assistant or which day swallowed the usage, instead of one total that says nothing |
| The percentage bar against the monthly cap — when your workspace has one set | A warning before you reach the limit, not a notification after it |
| The number of sources and passages in your knowledge base | How much is searched on every reply — one of the reasons cost differs between one assistant and another |
How many assistants are available to you depends on your plan, and the detail is on the pricing page. The monthly usage cap is set on the workspace itself, and the count starts at the beginning of each calendar month rather than on your subscription date. And an assistant cannot be activated at all if AI is not enabled on the workspace — a clear refusal at activation, not a silence you discover from a customer.
What it does not do — before you build a plan on it
The limits are part of the description, not a caveat at the end of it. Read them before you promise the sales department anything:
- It does not read your internal systems during a conversation. It does not query an order’s status from your CRM or call an external API mid-reply. It answers from the knowledge base you uploaded, full stop.
- It does not know what you did not upload. If your returns policy is not in a file, a link or an FAQ, it does not have it — and it will say so rather than invent it. That is the correct behaviour, but it means its quality is the quality of what you gave it.
- It does not start a conversation. It replies inside an existing one. Reaching out to a customer who has not messaged you needs a Meta-approved template, which is an entirely different route.
- It does not replace a team. It clears the team of repeated questions so they can concentrate on the cases that need a person — and those cases do not disappear, they become clearer.
If you need specific replies with fixed steps — option lists, buttons and branches known in advance — that is the conversation flow’s job, not the AI assistant’s. The two run on the same platform — a point worth bringing into your criteria for choosing a providerfrom the start; what matters is that they do not contend for the same message, as in the overlap warning above.
What is the difference between this and a general AI assistant?
Where the answer comes from. A general assistant answers from everything it was trained on, so it invents a price or a returns policy that sounds reasonable and is not yours. Here your own documents are searched first, and the retrieved passages are passed to the model with an explicit instruction never to state a number, a name or a price that is not in them. If it finds nothing, it says it does not have the information.
What do I upload to train it, and how long does it take?
Three kinds: files (PDF, DOCX, TXT, CSV, XLS and XLSX, up to 100 MB each), links to pages on your site, up to ten at a time, and question/answer pairs you write yourself, up to a hundred. After uploading, a source passes through states: pending, then processing, then ready — and processing is minutes, not days. A source stuck on “error” is retrained with one button.
Does it really reply in Arabic, or is it a translation?
It replies in the language of the customer’s own message when “auto-detect” is on, which it is by default. Somebody who writes in Arabic is answered in Arabic, and somebody who writes in English is answered in English, in the same conversation and with no extra setup. And if you want one language always, whatever the customer writes, turn auto-detect off and choose the reply language.
When does the bot stop and hand the conversation to a person?
In four ready cases: the customer explicitly asks for a person in any wording, one of the handover words you defined appears, the message arrives outside your defined working hours, or the bot itself offers a handover when it cannot answer and the customer accepts. In every case a waiting message is sent in the customer’s language and the conversation moves to “needs an agent” in the inbox.
How do I know what it costs me before the bill arrives?
The usage panel in your workspace shows the number of messages, the tokens consumed and the estimated cost in riyals, broken down per assistant and per day. And when there is a monthly token cap, a usage bar appears and changes colour as the cap approaches. There is no need to wait for the end of the month to find out the number.
What if the bot gives a wrong answer in front of a customer?
The error usually comes from the source rather than the model: an out-of-date page, a file with an old price, or a piece of information that was never there and the bot inferred it from a nearby passage. Open the assistant’s conversations, read the reply, then open the source preview to see the passages it was actually trained on. Correct the source or delete it and retrain, and you can pause the assistant meanwhile without deleting it.



