Calls: recordings and speech analytics
The phone brings orders, bookings and complaints, yet after the conversation usually nothing is left of it. The Calls section is where a conversation turns into data: the recording is stored, the speech is transcribed, AI extracts whatever you asked it for, and from there it is filtered, tagged and fed into rules.
Open: Admin panel → Calls (admin.cenaly.com/calls). The section is switched on by the Calls card in the app store — it is hidden by default.
What the Calls section is#
It is one page with tabs rather than a dozen screens: Recordings · PBX log · Call back · Operator · Queue · Tags · Knowledge base · Automations · Settings. The open tab and the open recording card live in the address (?tab=…&rec=…&set=…) — you can send the link to a colleague, and F5 does not lose it.
Telephony and Calls are different things and do not replace each other: your own PBX receives and distributes calls, while this section works with what has already been said. Recordings do not have to come from our PBX — someone else's telephony, a mailbox or a plain file from disk will do.
What you need to start#
| What | Why |
|---|---|
| The Calls card in the app store | without it there is no menu item |
| At least one source of recordings | your own PBX, a webhook, a mailbox, a folder on a PC via the bridge, a vendor connector or a manual upload |
| Owner rights | settings, per-source intake options and access to recordings are edited by the owner only; an employee gets the section through a role |
| An AI balance | transcription and AI analysis are paid runs; the balance is shown in your subscription |
The section works on brands whose admin API domain is up: cenaly.com and cenaly.com on AWS, cenaly.ru in Yandex Cloud.
Step 1. Where recordings come from#
Settings → Data sources (?tab=settings&set=sources). Sources add up — you may have as many as you like, all at once.
| Source | How it is connected | What matters |
|---|---|---|
| Your own PBX | the "Own PBX" connector: the card appears by itself on the first call | what arrives is what the station recorded: the recording scope and retention are set in telephony |
| File upload | a button in the list, up to 2 GB per file | both audio and video are accepted (a screen recording of a meeting, a clip from a camera, a mov from a phone) |
| Webhook | an address with a token for any third-party PBX or CRM | the format is canonical, so home-grown integrations fit too |
| Mailbox | a service mailbox (calls, calls2, …): an e-mail with an audio attachment becomes a call |
the mailbox can extract metrics from the letter: you describe in words what to pull out, the model writes the parsing algorithm once — after that it runs on every letter for free |
| Folder on a PC | a folder on a computer through the Cenaly bridge | handy where a local program does the recording — see the bridge |
| Vendor connectors | OAuth or a signature, with a "test" button | telephony brings the calls in, the CRM receives the analysis |
Every card has Intake options: who can see a recording that arrived through this channel and who can hear its audio, whether to store the audio file at all (you may keep only metadata and the transcript), which tags to put on every call of the channel and which rules to run for it — all, only the selected ones, or none. A per-source list of people replaces the section-wide list, so a single channel can be configured more strictly than the default.
Step 2. The recordings list and saved views#
The Recordings tab is not just a list but a table builder:
- filters are written in the ⋮ menu of a column header, and the condition is offered by data type (text — "contains", "regex"; number — comparisons and "between"; date — a calendar; an AI metric — also "filled / empty"). A filtered column is marked with a funnel, and the same funnel clears it;
- multi-sorting, column order, width, alignment and number format; AI metrics from the catalogue can be columns too;
- infinite scrolling instead of pages: the list fetches the next window itself, the "Show more" button stays as a fallback, and the footer honestly says "showing N of M";
- views — saved snapshots of the table state (filters, sorting, columns), including a default one.
The counter in the toolbar answers "how many calls do I have", not "how many rows have loaded": "recordings: 327,974 · 7,489 in the table". One visit shows a hot window of up to 5,000 recent recordings; anything deeper is fetched by the archive panel with a date range.
Step 3. The recording card#
A click on a row opens a card with the tabs Overview · Metrics · Transcript · Data · Access; the open tab is remembered, so listening to a dozen calls in a row does not send you back to "Transcript" every time.
- Overview — a player with a waveform, playback speed, per-channel muting and seeking. Video shows a picture instead of a waveform and is scrubbed along the time bar.
- Transcript — start recognition, pick the language, replies with timings and speaker labels ("Speaker 1", "Speaker 2"); clicking a reply seeks the player. Fine settings: normalising numbers and dates, profanity masking, "literary style", your own vocabulary.
- Metrics — first comes the call passport: direction, the calling and called numbers, the outcome (talked, missed, busy, hung up, rejected) and the employee on our side. Whatever the source did not send is spelled out in words. Then come AI metric values with the model's confidence, the restaurant analysis, automatic quality scoring and speech analytics (talk and silence ratios, the longest monologue and pause, pace, interruptions, response delay).
- Data — text artefacts attached to the recording: a translation, a summary, background, notes and your own types from the "Datasets" catalogue.
- Access — who sees the recording and its parts, the access log, bans.
From an analysed call you can create drafts in one click: make a booking, assemble an order (the order builder opens as a modal over the card, the contents come from the analysis, the address is pulled from previous orders of this phone number), add a task to the shift board, open the guest card. An order or booking placed from this number within −5…+30 minutes is linked to the call automatically — this link is what makes "revenue from calls" countable.
Step 4. AI analysis and metrics#
Settings, the Processing group. The order is: transcription first, analysis second.
| Setting | What it decides |
|---|---|
| Speech recognition | which engine and which language; also the scope of automatic transcription: all recordings / inbound only / outbound only |
| Processing automation | what runs by itself on a new call: transcribe, analyse with AI |
| 🧩 Ready-made analyses | a showcase of industry analyses: clinic, car service, real estate, hotel, online-shop support, parcel point, B2B sales, tech support, training centre, retail. "Connect" writes 8–12 metric definitions and a prompt instruction — the values immediately become columns and filters |
| AI analysis: your rules and knowledge base | your own instructions per operation and Analysis quality: "economical", "reliable" and "maximum accuracy" (the last one has a "think harder" checkbox) |
| Datasets | which text artefacts the analysis fills in besides metrics |
Connecting a pack does not start paid runs by itself — a single toggle, "Analyse with AI after transcription", does. You can disconnect a pack at any time: the definitions and the instruction go away, but the values already extracted on calls stay.
If none of the ready-made analyses fits, there is your own analysis — a seven-step wizard: the goal in words → a sample of real transcribed calls → a draft of metrics from the model → a trial run → your own correction of the disputed cells → the same sample on a cheap model → a verdict with the price per call. Before every paid step the server shows an estimate, and the charge appears as a separate line in your bills.
Step 5. Tags and automations#
Tags are a hierarchical catalogue up to five levels deep, with colours, emoji and counters; orphans "outside the catalogue" can be returned or cleaned up, tags can be merged and deleted cascading. Auto-tagging is created right in the tag editor: a rule "conditions → apply tag", with ready-made vocabulary sets and a backtest over past recordings.
Automations are "If → Then" cards with AND/OR groups over any column or metric. Actions: apply a tag, "AI tags" (the model itself picks from a candidate list), extract metrics, start transcription, fill a dataset, push to the CRM, notify the team, rescue a missed call, grant or ban access for employees.
Two buttons worth telling apart:
- "Check" runs the rule's conditions over existing recordings. Free, no model involved, nothing is tagged: it reports "checked X, matched Y" and opens the list of matches.
- "Apply to existing recordings" is the real backfill over the archive. It runs in batches and keeps its place, and before starting it warns about money separately: "AI tags", metric extraction, datasets and transcription are billed on every run.
Missed calls and the operator's work#
"Call back" is the rescue queue: every missed call becomes a single task (repeat calls from the same number do not create duplicates), with "called back" / "no answer" marks and automatic closing if the guest came back with an order or a booking on their own. An automatic message to the guest over SMS or WhatsApp is set up from a template, and the tasks are mirrored as a card in Needs attention and as an e-mail to the owner.
"Operator" is the call centre: an incoming call card pops up over the whole admin panel and shows who is calling (guest, number of orders, lifetime value, active order, nearest booking, an open call-back task). From there — "take the call", "create an order", "booking"; the tab itself shows active calls, the shift history and the outcome you record. All of that can be rehearsed with a test call in mock mode, without a real PBX.
PBX log: every call, not only the recorded ones#
The PBX log tab (?tab=log&set=pbx) shows the history of every call on your own PBX, including those with no recording: answered, missed, busy, abandoned, answered by a robot. A row shows the time, who called, which line they reached, whose phone rang (extension chips), who picked up, the status in words and the duration.
A click opens the "how the call went" modal: the routing rule that matched, every dialling attempt with the fate of each target ("picked up after 5 s", "rang 29 s, no answer", "busy", "rejected"), the fallback and the final phrase. A transfer to a colleague is an event of the same call, not a new one: the trace gets a "transfer" step and the conversation is split into segments ("guest ↔ ext. 101 Anna — 0:16", "guest ↔ ext. 102 Boris — 0:20"). Audio and AI analysis stay on the "Recordings" tab.
Access, privacy and storage#
A conversation is sensitive data, so the default here is closed: an incoming call that arrives is visible to the owner only, until they open it by hand or by a rule. The default can be switched to "all employees" or to "the owner and selected employees".
| Mechanism | What it does |
|---|---|
| Grant | manually from the card or by an access rule; with separate toggles for audio, transcript, datasets and metrics, plus "no downloads" |
| Ban | "do not show this recording to this person" — entirely or in parts. A ban beats any grant regardless of rule order; removing the ban restores exactly what had been granted |
| Access log | who opened the recording and when |
| Privacy | automatic deletion of audio and transcripts after N days (off by default — recordings are kept indefinitely), masking of digit sequences of 7 or more, a ban on external AI models |
Storage usage is shown to the owner on the subscription page — the "Storage used" card next to the plan: total volume, number of files, how much sits in cold storage. The recordings themselves live in a separate cold bucket of the brand: they are listened to rarely but kept for years — playback speed is not affected.
Limitations#
- Recognition engines depend on the cloud. In the AWS circuit (
cenaly.com,cenaly.com) you get Amazon Transcribe, Google and Microsoft Azure; oncenaly.ruthere is only Yandex SpeechKit — but in two tariffs: deferred (cheaper, result within a day, offered by default) and fast. - Video transcription is not available everywhere. Only Amazon Transcribe pulls audio out of a video container (mp4 and webm), so on
cenaly.ruvideo is not transcribed at all: "Transcribe" refuses immediately and says why. The workaround is to upload the audio track as a separate file. - The waveform is not built for every file: video has none, and for opus, m4a, webm and amr containers the analytics are computed from transcript timings — the card states which method was used. On a mono track interruptions and simultaneous speech are not shown: overlapping sides in one track are simply not observable.
- Your own analysis is young (in the product since September 2026): no more than 5 custom analyses with up to 12 metrics each; the cheap-model evaluation needs at least 15 recordings and 60 comparable cells, otherwise the verdict is "not enough data" rather than a percentage. On
cenaly.ruthe cheap model is YandexGPT Lite and external models are not offered at all. The level applies to new calls: already analysed ones are not recomputed, re-analysis is a separate paid action. - The quality score (QA) is visible to the space owner only; the evidence timecode exists only for transcripts with segments, and a human dispute is applied immediately — there is no appeal workflow.
- The PBX log requires your own dedicated station with an event collector and keeps the last 400 calls for 90 days, without audio. Holding the guest during a consultation is not shown there: the station does not log such events, and passing off the consultation's duration as "on hold" would be guesswork.
- The "Telnyx number" card (a number rented from us for the phone AI consultant) is not shown in the Russian circuit — it cannot be bought from there. On
cenaly.ruthe consultant works through your own PBX instead. - Georgian is recognised poorly — ka transcripts are noticeably worse than Russian or English ones.
- The section does not open on brands whose admin API domain is not set up yet (
.tr,.al).
Troubleshooting#
| Symptom | Check |
|---|---|
| A recording never appeared | the source card in "Data sources" (a mailbox shows how many letters with recordings arrived in 24 hours / 7 / 30 days and the parsing queue); in the channel's "Intake options", whether audio storage is off or "rules: none" is set |
| "Transcribe" refuses immediately | this is video in a circuit where video containers are not supported, or an unsuitable format — the message names the reason. Upload the audio track separately |
| The card is stuck on "transcribing" | the "Queue" tab: a stalled job is flagged separately and is removed by cancelling it, a failed one can be retried |
| Metrics are empty | whether "Analyse with AI after transcription" is on and a pack or a custom analysis is connected; for older calls you need the "Apply to existing recordings" backfill |
| An employee cannot see a recording | the access default (an incoming call is closed by default), the per-source list of people, and above all whether the person has a ban: a ban beats a grant |
| The "service is being deployed" notice | the section's backend is updating at that moment; nothing is lost, try again in a few minutes |
Symptom-by-symptom triage lives in troubleshooting; if that does not help, write to us — how to get help.
FAQ#
Do I need my own PBX to use this section?#
No. Recordings can arrive through a webhook, by e-mail, from a folder on a PC via the bridge, or simply by uploading a file. Your own PBX is convenient because the call it records arrives by itself, together with the numbers and the outcome.
How long are recordings kept?#
By default — indefinitely: you name the retention period yourself in the privacy settings, and there is no ceiling from our side. Automatic deletion of transcripts is switched on in the same place.
What costs money and what does not?#
Paid: speech recognition and everything the model does — AI analysis, "AI tags", filling datasets. Each run is billed as an AI task, and the archive backfill warns about it before starting. Filters, manual tagging, saved views and the "Check" button on rules are free.
Can employees see every recording?#
No. An incoming call is visible to the owner only by default. Access is opened by the section default, by a specific source's options, by hand from the card or by a rule — and at any moment it can be overridden by a personal ban.
Can I upload video?#
Yes: the section accepts both audio and video — storage, retention and permissions are identical. The differences are that video has no waveform and that transcription is not available in every circuit (see "Limitations").
Why does the table hold fewer recordings than the counter shows?#
The left number is the size of the section, the second one is how many rows the table holds after filters. One visit keeps up to 5,000 recent recordings; everything older is fetched by the archive panel with a date range.
What changes if I switch "Analysis quality"?#
New calls will be analysed by a different model, and already analysed ones will be re-analysed on the next run and charged again. The warning sits right under the switch; leave the setting alone and nothing changes.
Related articles#
- Telephony: your own PBX — numbers, extensions, routing and call recording
- AI receptionist — the robot that answers inbound calls instead of a person
- Agent assist — hints for the employee during the conversation
- Knowledge base — the source of answers for analysis, agent assist and the receptionist
- Staff and shifts — roles, access to the section and who recordings are granted to
- Subscription and billing — the AI balance and the "Storage used" card
- Cenaly bridge — a folder of recordings on a PC as a source
- Needs attention — missed calls in the common to-do list