M cenaly.com
☎️ Telephony: Your Own PBX

🤖 AI receptionist

A robot on incoming calls: persona and voice, questionnaires, routing rules, allowed actions, anti-spam, limits and a text simulator

Documentation

AI receptionist

A call to a venue usually arrives when everyone is busy: the kitchen is loud, there is a queue at the till, and the person on the line listens to the ringing tone. The AI receptionist is a robot that picks up on your behalf: it answers common questions from your own knowledge base, collects a booking or a message field by field, and transfers the call to an employee as soon as the conversation stops being simple.

Open: Admin panel → Secretary (admin.cenaly.com/secretary). The section is switched on by the Secretary card in the app store — it is hidden by default.


What the AI receptionist does#

The receptionist is speech and decisions, not a phone line: the line, the numbers and the "who picks up" rules belong to your own PBX. Everything else is configured here, on tabs: Persona and compliance · Questionnaires · Routing · Actions · Bots · Knowledge pack · Limits · Simulator · Live calls · Improvements. The open tab lives in the address (?tab=…), the settings are one document per location, and the master switch is called "Secretary enabled".

The robot does not answer "in its own words": the answers are pre-compiled from your knowledge base into a pack — which is why a reply takes less than a second, and a language model is not called in an ordinary call at all.


What you need to start#

What Why
The Secretary card in the app store without it there is no section in the menu
Your brand's own PBX, up and running the voice part runs on the station's machine: without it you can prepare the settings, but calls will not reach the robot
A knowledge base with documents the answer pack is built from it; an empty base means a receptionist that can only transfer
Access to the location both reading and writing the settings require location access — this is the robot's speech, not something a line employee needs
A decision on "who picks up" in telephony: Routing → default answer (/telephony?tab=routing) or a dedicated rule pointing at the receptionist

Step 1. Persona, languages and disclosure#

The Persona and compliance tab:

  • name and tone — neutral, formal or warm;
  • languages: a main one plus the languages it speaks, automatic detection from the guest's first phrase and a language switch mid-call;
  • working hours per weekday in the location's time zone, with out-of-hours behaviour: take a message, promise to call back after opening (the promise becomes a task in the call-back queue), take a pre-order, transfer to whoever is on duty, or politely end the call;
  • Disclosure — the "you are speaking to an AI" and "this call is recorded" announcements. These are template phrases the model does not paraphrase, with a preview per language; next to them is the legal basis for the location's country (in a number of jurisdictions the announcement is mandatory and cannot be switched off);
  • knowledge base scope — the whole library, a specific collection ("receptionist for products") or selected areas and tags with exclusions.

The receptionist talks to outsiders, so its document boundary is strict: only materials marked "may be shared externally" get into the pack, and restricted-internal documents are never compiled into it. That is a property of the channel, not a setting — it cannot be turned off.


Step 2. Knowledge base and the answer pack#

The Knowledge pack tab shows what the robot answers from and what state it is in: version, scope, staleness signals and a rebuild button. What is worth knowing:

What How it works
Ready answers "guest question → answer" pairs with pre-computed embeddings: the answer is found by search in the pack, not by the model reasoning
Voice cache frequent and legal phrases are synthesised in advance — the first reply does not wait for speech synthesis
Confidence thresholds answer · ask back ("did you mean …?") · do not answer at all; after a miss the threshold tightens
Fallback (L3) a language model as the last step. By default it is enabled in the simulator only — in a live call the robot would rather transfer than invent
Phrase check type a question and see the matched intent, the confidence and the source fragment
Staleness tells the reasons apart: "documents changed" and "articles changed", so you know what to rebuild

If a knowledge base build fails the quality gate, the pack can still be assembled — with a red warning and a "Build anyway" button.


Step 3. Questionnaires#

A questionnaire collects structured data instead of a free conversation: a booking, a message, a request. Fields come in types "name", "phone", "free text", "choice" (with touch-tone digits and synonyms) and "date and time"; each one has a required flag and a limit on clarifying attempts.

The robot always confirms a phone number and a date by reading them back — digits are the thing recognition gets wrong most often, and "call you on 220" instead of "229" costs more than an extra second. A questionnaire has an opening and a closing phrase and an action on completion: create a booking, leave a message, hand over to a human.


Step 4. Routing and transfers to people#

The Routing tab holds "if → then" rules with priorities: the first match wins, and a default action is mandatory.

Condition axis Options
What the call is about the recognised intent and the confidence of the analysis
When working mode (open / closed / break / holiday) and time
Which number was dialled the DID
Who is calling the guest's language and the trust level: unknown number · known · verified
Is there anyone to hand over to staff presence

Actions: answer from the knowledge base, run a questionnaire, transfer, ring a cascade, take a message, promise a call back, hand over to a human, say goodbye.

The robot can only transfer to targets from an explicit list — an employee, a ring group, an extension: it will never dial a raw number heard in speech. External numbers are a separate list where each entry is approved individually, with "external transfers" and "international" toggles; premium and satellite ranges are blocked outright. A "dead targets" validator shows in advance which rules the engine would refuse to execute, and why.

How the transfer looks from the employee's side: the robot can ask them before connecting ("1 — I'll take it, 2 — pass"), wait no longer than the set time, hear "busy, I'll call back in N minutes" (that becomes a task), skip anyone whose phone is offline or set to "do not disturb", and take the call back with *2, keeping the answers the guest has already given. When there is nobody to transfer to — a queue with position and an offer to call back.


Step 5. Actions, verification and anti-spam#

The Actions tab is the robot's power of attorney. Each item is enabled separately, so "talking about" and "creating" are different rights:

  • book a table (offering up to two nearest slots, with a cap on party size), take orders, cancel and reschedule a booking, add to the waiting list;
  • tell the status of an order or a booking — only after verification: caller ID is forged easily, and a number on the display is not proof of identity;
  • before creating anything the robot reads the details back and waits for a "yes"; a repeated confirmation does not create a duplicate;
  • follow-ups after the call (SMS, WhatsApp, e-mail) — only with the guest's consent given out loud.

Anti-spam: a per-number daily call limit, a repeat-call window, "press 1" for suspicious callers, VIP numbers and a blocklist — the latter gets a polite goodbye before any recognition happens. Identification: address a known guest by name, a maximum trust level without verification and a ban on disclosing personal data based on caller ID alone.


Step 6. Several bots#

The Bots tab holds up to ten extra voice bots per location, each with its own logic on top of the main receptionist: name, its own first phrase, a role instruction, its own set of documents, its own allowed actions, questionnaires and rules. Anything left blank is inherited from the main one.

A bot is created from a template (front desk, orders, bookings, FAQ, survey, support) or from an AI draft written from a description in plain words — "a table booking bot: ask for the date, the number of guests…". The draft is normalised by the server, invented transfer targets are stripped out, and nothing applies until you press Save.

Every bot has an internal extension: an employee moves the guest to a bot by dialling that number from their phone. Bots hand calls to each other by rules, on the same line and without calling back; loops and over-long chains are blocked, and the legal disclosure is said once per call. The "free-form" toggle on a bot card sends each reply straight to the model, bypassing the pack — that is for bots whose answer is computed rather than looked up (a calculator, a translator); operator keywords, touch tones, questionnaires and routing rules are still handled before the model.


Step 7. Conversation limits#

The Limits tab sets the boundaries the robot will not cross: the maximum dialogue duration, the number of turns, how many misses and silences to tolerate before handing over to a human, how many transfers are allowed per call, a daily minute cap and a daily AI budget. It protects the guest from an endless conversation with a robot and your bill from surprises at the same time.


The simulator and live calls#

The simulator runs the same engine as live calls and uses the current draft — including unsaved edits. It supports events (a reply, touch tones, silence, a recognition failure, the guest hanging up), a "staff" panel (busy, back, queue) and overrides for the trust level and the calling number. The important part is the "why it went this way" trace: which rule fired, which policy checks passed, where the answer came from and at which confidence step. Business actions are rehearsed: nothing is actually created.

Live calls is a feed of the receptionist's current conversations: who is calling, the replies, the outcome. The recordings themselves land in the Calls section and follow its access rules. The same conversations are readable as text in the team chat, in a dedicated "AI receptionist" section — that is a reading room: you cannot answer by voice from there.


Improvements from real calls#

The Improvements tab is a slow loop that reads finished calls and proposes edits: a card answering a question that went unanswered, a rule for a transfer that went to the wrong place, a branch of a questionnaire.

Nothing switches itself on. The path is: draft → your approval → a replay check against past calls ("better or worse" on reference phrases) → shadow mode → activation with a new pack version and instant rollback. Alongside it the loop's metrics are counted: whether the guest's task was solved, the share of calls closed without a human, wrong transfers, repeat calls within 24 and 72 hours, voice cache hits.


Limitations#

  • The receptionist is a young capability (marked "beta" in our product map). It works on live calls, but "how many calls it closes without a human" has not yet been measured on enough data — plan for it as an assistant, not a replacement for a person on the line.
  • The voice part runs on the PBX machine. Until your brand's own station is up, the section can be configured but the robot will not answer; a shared line does not run it.
  • Speech synthesis depends on the cloud. On cenaly.ru the local synthesiser is used (Russian and English voices), and there is no Turkish voice there — such a phrase returns an honest error. In the AWS circuit Turkish is synthesised normally.
  • Recognition differs too: streaming recognition on the machine uses Amazon Transcribe in the AWS circuit and Yandex SpeechKit on cenaly.ru. A language the provider does not support automatically falls back to the ordinary (non-streaming) path — the answer will be slower.
  • The language model (L3) is off by default in live calls. That is deliberate: a transfer to a human beats a confidently stated untruth. Turning it on is your decision and your spend.
  • The "you are speaking to an AI" disclosure cannot be switched off in mandatory jurisdictions, and in countries where telephony is blocked calls are not served at all (the list of countries is in the telephony article).
  • Internal documents are out of reach for the robot: an external audience only gets material marked "may be shared externally", and restricted-internal documents never enter the pack.
  • No more than ten bots per location; if a bot's extension clashes with an employee's, the number stays with the human and the bot card says so.
  • The section itself has no voice control — the receptionist is configured by hand, not by voice.

Troubleshooting#

Symptom Check
The robot does not pick up the "Secretary enabled" master switch; in telephony — who picks up by default and whether a rule points at the receptionist (/telephony?tab=routing); whether your own PBX is up
It answers "I don't know" almost always whether the pack is built and not stale; whether the right set of documents is chosen in "Persona"; whether the confidence threshold is too high
A transfer never reaches the employee the dead-target validator on the "Routing" tab; whether the employee's phone is online (see SIP phone setup); whether "do not disturb" is on
The guest dictates digits and the robot gets them wrong whether read-back confirmation is enabled and synonyms are set for choice fields; touch tones are more reliable than speech
A phrase is not spoken whether the phrase's language is supported by your circuit's synthesiser (Turkish on cenaly.ru is not)
An error while saving settings the section explains the refusal in words and names the next step ("save the settings on the Persona tab first") — follow the hint instead of pressing the button again

Symptom-by-symptom triage lives in troubleshooting; if that does not help, write to us — how to get help.


FAQ#

Do I have to tell the guest that a robot is answering?#

In some countries — yes, and there the announcement cannot be switched off: the section shows the legal basis for your location's country. Where it is not mandatory the announcement is still on by default — it causes fewer conflicts and fewer hang-ups.

Can the receptionist take an order or a booking?#

Yes, if you granted that right on the "Actions" tab. Rights are granted one by one: you may allow it to talk about the menu and the opening hours without allowing it to create orders — then the robot will bring the guest to an operator or to the website.

Where do its answers come from?#

From your knowledge base: it is compiled in advance into a pack of ready answers. Whatever is not in the pack is not a licence to invent: the robot asks back, transfers to a human, or honestly says it does not know.

What happens if the robot does not understand the guest?#

That counts as a miss. After several misses or silences (you set the number under "Limits") the call is handed to a human. The same happens on a direct request — "give me a person".

Can I have different bots for different tasks?#

Yes: up to ten bots per location, each with its own documents, its own actions and its own internal number. Bots can hand a call to each other without calling back.

How do I test the settings without experimenting on real guests?#

With the simulator: it runs the same engine and the same draft settings, shows the decision trace and rehearses business actions without creating anything.

Does the receptionist work on cenaly.ru?#

Yes. The differences are the synthesiser voices (Russian and English; no Turkish) and the recognition provider. The logic, the rules and the questionnaires are identical in both clouds.


Was this article helpful?