What Alpire is
Think of Alpire as your company's reception desk, but automatic. When someone calls one of your numbers, the system answers and applies the rules you've set: who to ring, at what hours, with hold music or voicemail if no one is available. The person who answers does so from a desk phone or from the browser phone, the one that appears floating at the bottom right of the panel.
You'll see the panel organized into sections, each with its own purpose: Calls (the history), Extensions (the people who answer), Flows (what happens to each incoming call), Schedules, and inside Extensions also the groups and the queues. We go through them one by one below.
Getting started
The quickest way is the «Getting started» wizard, which takes you step by step: region, company details, carrier and numbers, extensions, first flow and team. If you'd rather do it by hand, this is the order:
- Connect your phone line in Settings → Trunk (your carrier: Twilio, Telnyx or another over SIP). Without a line no phone works — not even the in-browser phone or internal calls.
- Add your numbers in Settings → Calls → Available CallerIDs (a number that isn't there is rejected even if calls reach you) and create your team's extensions. Each person must exist first in Settings → Team before you can link them to an extension.
- Create a flow in Flows: define the call journey (menus, queues, AI agent, transfers…).
- Assign the number to the flow: in the editor, in the first block of the flow (“When a call comes in”), pick the number under “Numbers that activate”; then press «Save and publish» («Save draft» only saves the draft). The number is assigned immediately, without waiting for you to publish; the flow must also be enabled in the Flows list. Without an assigned number, the flow never runs.
- Test with «Test with voice» (real audio in the browser) or «Test walkthrough».
- If you use AI agent, set its voice, language and instructions in «⚙ Set up the agent» and try it with «Test with voice». The platform provides the AI providers: you just pick the model and voice, and usage comes out of your credits.
Numbers and carrier
Alpire is the phone system; the line and the numbers come from a carrier. Until you connect one, no phone rings — not the in-browser phone and not internal calls (chatbots do work). There are three ways, all done from «Getting started» or Settings → Trunk:
- Twilio. You connect your account (if you don't have one, we tell you how to create it) and we set up the trunk, inbound calls and your numbers. US numbers and those of other countries without paperwork are bought right here. In Spain and most of Europe Twilio first asks for your address and documents, which is done in its console and takes a few days: buy it there and then connect it here.
- Telnyx. The same: you connect your account and we set up the connection and the numbers you choose.
- Another carrier (SIP). Any carrier that offers a SIP trunk. Ask them for the server and its port, the trunk's username and password, whether it registers or works by IP (and which IPs they call from) and your numbers in international format; you enter it in Settings → Trunk and we check that it works.
Adding each number
Each number must be in Settings → Calls → Available CallerIDs, with the country code (+34, +1…). A number that isn't there is rejected even if your carrier sends you the call. The first one you add sets the organization's country (anything dialled without a prefix is read as that country; change it in Settings → Trunk). Then, in each flow's editor, you choose which numbers come in through it. Those same numbers are the ones you can show when calling out, and each extension can show a different one.
Your team: roles, permissions and seats
You invite each person by email in Settings → Team and give them a role. Each active person takes up one seat of your plan (seats are charged per person, not per extension).
- Owner. Everything, including billing. They accept the terms on the organization's behalf.
- Admin. Configures the phone system. By default they see everything; the owner can remove sections (billing, for example) in Settings → Team → Permissions.
- Supervisor. Sees the Dashboard, Real-time, Calls, Extensions, assist and chatbot conversations, but doesn't change the configuration.
- Agent. Takes calls and, by default, only sees the Dashboard and Calls; anything else (chatbot chats, assist, extensions…) only if you grant it in Permissions.
Each person can turn on two-step verification (with an authenticator app or an email code) and see or close their sessions and linked devices in My account. Signing in with Google also works. To take calls on the computer without the browser, My account has «Download the app» (Windows and Linux).
Calls
It's the history of everything that has gone through the phone system: every inbound and outbound call is logged with the number, time, duration and how it ended. It's where you check what happened, listen to a recording or pull data.
Search and filter
Calls are listed from newest to oldest. You can filter by direction (inbound or outbound), by status (answered, missed, in progress…) and search by number. The Export CSV downloads the list — with whatever filters you have set — to open it in Excel.
A call's detail
Click View to open the record: timings, how it ended, and — if you have it enabled — the recording and transcription. Right there you can give it a type (a label to classify it) and leave notes on what happened, which are saved with your name and the date.
Recordings and transcription
If your company has recording enabled, every conversation is saved and you can listen to or download it from the call record. And if transcription is also enabled, the recording is turned into text automatically: you read it like a chat between the agent and the customer, without playing the audio.
Recordings are deleted automatically after your organization's retention period: 90 days by default (change it in Settings → Usage). If a recording you expected is gone, that's probably why; the call record itself stays.
See what's happening live
The Real-time section is the pulse of the phone system right now: calls in progress, people waiting in the queue and who's connected. If you have permission, you can listen to a live call to supervise: listen only (you can't be heard) or talk just to the agent without the customer hearing. It needs the Business plan or higher, and internal calls between extensions can't be listened to. By default the agent sees on their phone when someone is listening; you can turn that off in Settings → Calls → Supervision.
Extensions
An extension is a person's internal number: 100 for reception, 201 for a salesperson. It's what «rings» inside the company. Here you create one for each seat and decide who uses it.
How each person answers
There are two ways, and you can mix them within the same team:
- With the browser phone. You link the extension to a team member and, when that person logs into the panel, their phone appears on its own, ready to make and receive calls. Nothing to install.
- With a desk phone. On the extension, tick «Physical SIP phone» and give it a password of at least 12 characters; in Settings → Trunk turn on «Expose PBX to the internet». On the phone (Yealink, Cisco…) set the extension number as the user, that password, and `<your-subdomain>.sip.alpire.ai` as the server (the subdomain you chose in «Getting started»).
Available, busy or on a break
From the in-browser phone or the desktop app, each person sets their status, and that decides whether queues and groups pass calls to them:
- Available — receives calls as normal.
- Busy — a «do not disturb» for a meeting or a break; stops receiving until they set themselves available again.
- After-call work — a short breather after hanging up to finish taking notes; it returns to available on its own.
The number shown when calling out
When you call out, the person receiving sees one of your company's numbers. Which one appears depends on how each extension is set up — so sales can show one number and support another.
Taking calls day to day
This part is for whoever picks up the phone. There are three ways to take calls, and one team can mix them:
- In the browser. The phone lives inside the panel. Nothing to install.
- With the desktop app. For Windows and Linux. It takes calls without the panel open.
- With a desk phone. You answer and transfer with the phone's own buttons. Setup is explained in Extensions.
The in-browser phone
It's the round phone button at the bottom right of the panel («Open phone»). It opens on its own when a call comes in. It stays on while you move around the panel. It hides in Settings and in the flow editor, unless you have a call.
The first time, the browser asks for permission to use the microphone. Accept it: without it you can't call or answer. You also need an extension linked to your user; if you don't have one, the phone tells you.
The colored dot on the button shows your state: green, available; red, busy; pulsing red, on a call; amber, after-call work; gray, not connected.
- Answering. «INCOMING CALL» appears with the caller's number, the company number they dialed and, if a colleague is passing it to you, who. Click «Accept» or «Reject». Next to it, «Contact history» opens: the contact's note, their earlier calls, any note left by whoever passed you the call and, if it comes from the AI agent, a summary of what was already said.
- Calling. Type the number and click «Call» (or press Enter), or click a call in «Recent» to put it in the dialer. In «CallerID» you choose which company number you call from. The call buttons in Contacts and Callbacks dial straight into this phone.
- Mute. The customer stops hearing you but stays on the line, with no music. Click again to talk.
- Hold. The customer hears hold music and you stop hearing them. Click again («Resume») to carry on. An administrator picks the music in Settings → Calls → ACW («Agent hold music»).
- Keypad. During a call, the grid button opens the keypad so you can press options in another company's menu.
- Pause recording. It only appears if the call is being recorded. Use it while the customer reads out their card details, then click again to resume recording.
- Floating window. The icon at the top right of the phone moves it into a small separate window. In Chrome and Edge it floats on top of other applications.
Transferring a call
Click «Transfer». A window opens with four tabs: «Extensions», «Groups», «Queues» and «Number». Next to each colleague you see whether they're free, and the list refreshes on its own.
- Blind. Pick the destination and click «Transfer». If it's an extension or a group, you stay with the customer while it rings; if nobody answers, the call stays with you. If it's a queue, the call joins it and you're free straight away.
- Consulting first. Tick «Consult first (attended)» before clicking «Transfer». You talk to your colleague first while the customer waits with music. Then click «Hand the call over» or «Back to the caller». It only works towards an extension, and extensions on a desk phone at that moment are grayed out. In the desktop app it's the «Consult» button.
- With a note. In «Note for whoever takes it», write what the customer wants and what you've already told them. Your colleague sees it as soon as it rings, and it stays in the call's notes. There's no note when transferring to an outside number or when consulting first.
Team chat
The speech-bubble icon at the top of the phone opens «Team chat»: the «Team (whole org)» channel plus a private conversation with each colleague, where you can see who's online. A number on the icon shows unread messages. In the desktop app it's the «Chat» tab.
The desktop app
It's the same phone in its own window, so you can take calls without the panel open. There are versions for Windows and Linux. To download it, click your name at the bottom of the menu and choose «Download the app»: it takes you to My account.
- Open the app (on Windows, after installing it) and click «Sign in».
- Your browser opens. Sign in with your usual account, choose the organization you'll work with and click «Authorize». If the browser doesn't open, the app shows an address and a code to enter there.
- You're taken back to the app with nothing else to do, and the computer is linked. The app never sees your password.
You'll see the tabs your role allows (see Your team): «Dialer», «Recent», «Contacts», «Callbacks», «Voicemail», «Chat»… In the app's «Settings» you can turn on «Start with the system» so it opens by itself when you log in to the computer.
Lost the computer or no longer using it? In My account, under «Desktop devices», click «Unlink».
Your status and pause reasons
Your status decides whether queues and groups send you calls. In the in-browser phone it's at the top («ext 101 · available»): click it to change it. In the app it's the status button in the header.
- Available. Calls come to you.
- Busy. Queues and groups stop sending you calls until you go back to «Available». In the browser it's called «Busy (don't receive calls)»; in the app, «Pause (no reason)».
- With a reason. Below come your company's pause reasons, such as «Lunch» or «Meeting». They work like Busy but record why. You can switch from one reason to another without going back to Available.
In the in-browser phone, a timer shows how long you've been paused or in after-call work.
After-call work (ACW)
ACW is a margin after hanging up to finish your notes without another call coming in.
When you hang up, «Classify the call» may open. Pick the right type (or «No type») and, if you like, write a note: it's saved with the call. With the window open you're in ACW, until you close it or the set time runs out; then you're back to «Available».
To leave early, open your status and choose «Leave ACW» (in the app, «End after-call work»).
Voicemail
The messages customers leave belong to the whole company, not to one extension. Here's where to listen:
- In the panel. Telephony menu → «Calls» → «Voicemail» button. It's the list of calls that ended in voicemail; click «View» on one to hear the message and, if your company has transcription on, read it.
- In the app. «Voicemail» tab: each message with its «Play» button and, if there is one, the text.
Email alerts aren't set on your extension: whoever builds the flow sets them in the «Voicemail» step (see Flows). The email says who called and which number they dialed and, with transcription on, includes the text of the message. The audio isn't attached: you listen to it in the panel.
If a callback list is chosen in that step, the message also shows up in «Callbacks» so someone returns the call.
Missed calls and callbacks
- Missed. In Calls, «Missed» button: inbound calls that ended as missed, no answer, busy or rejected (all history, not just today). «Mine only» narrows it to your extension's calls; an outside call that rang and nobody picked up never became anyone's, so it only shows without that filter. If you have no extension, «Mine only» comes up empty and tells you why.
- Callbacks. Also under Telephony. This is where the «we'll call you back» requests collected by your flows land (for example, when a queue overflows or the customer leaves a message), in order of arrival. If there's a message, you can play it right there. Click «Call» and the number is dialed on your in-browser phone; then mark it «Done» or «Failed». In the app they're in the «Callbacks» tab, with the same buttons.
- Automatic dialing. If your company turns it on (Settings → Calls → General → «Automatic callback dialing»), the system itself calls the customer and a free agent, and the «Call» button disappears.
If your company uses live assist, the AI suggests what to say during the call. See Live copilot.
Ring groups
A group bundles several extensions under one name — «Sales», «Reception» — so a call can ring several people instead of just one. It's what you want when you don't mind who picks up, as long as someone does. They're created inside Extensions.
How it rings
By default the call rings every phone in the group at once, and whoever picks up first gets it. If nobody answers, the flow carries on through the «no answer» output. You change how calls are shared out with the group's «strategy».
To transfer an ongoing call to a group from your phone, the system connects you directly with the first available colleague, and tells you how many are available (for example «Sales 2/4»).
Waiting queues
A queue does something a group can't: put people on hold. If all your agents are busy, the queue answers anyway, plays music and hands out the calls in order of arrival as people become free. Nobody hears a «busy» tone: they wait their turn. It's the natural choice for a support line or a busy reception. They're also configured inside Extensions.
Group or queue?
Ring group
Rings several people (all at once or in turns, depending on its strategy). If nobody picks up, the flow goes on through «no answer». No music, no waiting. Good for small teams and quick answers.
Waiting queue
Answers and holds callers with music, and offers each call to one free agent at a time, according to its strategy. Good when more calls come in than you can take at once.
Setting up a queue
You give it a name and choose which extensions will be its agents. The strategy decides who each call is offered to: by default, whoever has gone longest without taking one; also «fewest calls today», round-robin or random (the agents' order only breaks ties). While they wait, callers hear music, and you can set a maximum wait and what happens if the queue is full or closed.
Schedules
A schedule is your opening calendar: what time you open and close each day of the week. On its own it does nothing; you use it inside the Flows so that calls are handled one way when you're open and another way when you're closed.
Defining the schedule
You give it a name («Office hours») and fill in the opening and closing time for each day. A day you leave blank counts as closed. Then, in an inbound flow, you connect the «open» branch to whatever answers (a queue, a group…) and the «closed» branch to a «we're not here right now» message or a voicemail.
Monday to Friday 09:00–18:00, Saturday and Sunday left blank. A call on Tuesday at five in the afternoon comes in as open; from six onwards, closed. On Saturday, at any time, it always goes out through closed.
Flows
Here you decide what happens to each incoming call, step by step: which message plays, which keypad menu is offered, which schedule applies, which queue or group it goes to, when voicemail kicks in. You build it in a visual editor, chaining boxes together like a diagram. No programming needed: you drag steps and connect them.
How it's built
Each box is a step (a message, a menu, a destination…) and has one or more outputs that you hook up to the next step. For example, a menu has one output per key; business hours has «open» and «after hours»; a group has «answered» and «no answer». By joining outputs to steps you build the whole path of the call.
The steps you can use
These are the most used blocks, with the name they have in the editor (there they're split into the Audio, Interaction, Decision, SIP, Control, AI and Scripts groups):
Messages
- Play audio
- Plays a recording you've uploaded in Audio (a greeting, an announcement).
- Text to speech (TTS)
- Reads aloud a text you type, without having to record it.
- Beep · Silence
- A short beep or a pause, to give the call some rhythm.
Interaction
- DTMF Menu
- The classic «press 1 for sales, 2 for support». Each key leads somewhere, with outputs for when they don't press or press the wrong key.
- Collect digits
- Collects what the person types (a customer number, for example) to use later.
- Listen (speech→text)
- Captures what the person says out loud and turns it into text, to decide based on what they ask for.
- Ask (voice or keys)
- Asks a question and accepts the answer spoken or keyed in, whichever the caller prefers.
Decisions
- Business hours
- Checks your schedule and splits between open and closed.
- By caller number
- Treats calls differently depending on the number or prefix they come from: for example, calls from one country or a specific number to another queue.
- Voicemail detector (AMD)
- On outbound calls, tells whether a person or an answering machine picked up, so you don't talk to a voicemail.
- Branch by value · Compare variable · Condition (if / else)
- Branches based on something you collected earlier (the key pressed, the customer code…).
Destinations
- Ring extension
- Rings a specific person.
- Extension status
- Checks, without ringing it, whether an extension is free, busy, on do not disturb or has no phone connected, and takes the matching path. Handy for going to voicemail or someone else without making the caller wait.
- Ring group
- Rings a group.
- Queue
- Puts the call into a queue, with music, announcements and an exit option if the wait gets long.
- Forward to number
- Sends the call to an external number, such as an on-call mobile.
- Voicemail
- Plays a greeting and records the message, which stays in your history.
- Transfer call
- Passes the call to an extension, group, queue or external number, and carries on through its output if it can't.
- Callback (we call back)
- Instead of waiting, the caller asks to be called back: it goes into Callbacks and the team calls them when someone is free.
- Hang up
- Ends the call. Use it after a goodbye message.
- Destination from a variable
- “Ring extension”, “Ring group”, “Queue” and “Extension status” accept a variable instead of a fixed destination: the extension the caller dialled, the one your CRM returns… It is looked up by id, number or name and only within your organization. If it doesn't exist, nothing rings: the extension follows “offline” (or “no answer” if you haven't connected it), the group “no answer” and the queue “timeout”. “Ring extension” also takes “offline” when the person has no phone connected, and “Ring group” when nobody in the group has one.
Follow-up
- Send email
- Emails the caller one of your templates, filled in with the call's details: the confirmation, the quote, the link they asked for. Email from flows.
- Send to
- Posts a message to your team's chat channel (Slack, Discord, Teams, Google Chat, Telegram, Webex or ntfy) set up under Settings → API and webhooks. If the organization has none, the block itself says so.
- Survey
- One keypad question when the agent hangs up: a score from 1 to 5, from 0 to 10, or yes/no. Satisfaction surveys.
There are also more advanced steps (wait a few seconds, leave a marker along the path, or connect to another tool of yours). You don't need them for the usual cases; they're there when you want to fine-tune.
Actually activating it
Designing the flow isn't enough: for it to come into play you have to do two things. Publish it (while you edit you're working on a draft that doesn't yet handle calls) and assign it a number, so the system knows which calls to send to this flow. The number must first be in Settings → Your company numbers. Publishing is the «Save and publish» button («Save draft» only saves the draft), and the flow must be enabled in the Flows list. Once that's done, the next call comes in through your flow (it may take up to a minute to apply).
Testing it first
You don't need to make a real call to check that a flow works. The Test walks through it simulating a call: you tell it which keys are pressed and watch where it goes. Perfect for making sure a menu leads where you want before publishing it.
It starts with the schedule. If you're open, it jumps to a welcome menu: 1 to the Sales queue, 2 to the Support group; if they don't press anything, it repeats the menu and then goes to Reception. If you're closed, a «we're not here right now» recording and a voicemail that records the message. You assign it your main number, publish it, and it's answering.
The AI agent
The "AI Agent" block holds a real conversation: it listens, understands what it's told, and answers out loud. It's not a keypad menu with a nice voice. You configure it by clicking "Manage" inside the flow editor; if you're going to reuse it across several flows, create it in "AI Agents" and link to it.
What you have to write
Three fields, in order of importance:
- Instructions. Who it is and what it has to achieve. A concrete goal ("book a table", not "help the customer"), what data it collects, and what to do when it doesn't know something (if you don't tell it, it will make it up). Don't write two pages: everything is re-read on every turn, so an endless text makes it slower to answer.
- Rules. The things it must never do, beyond the instructions.
- First message. What it says the moment it picks up. Keep it short. If you leave it empty, it waits for the caller to speak.
The settings you notice on the phone
Of all the settings, these are the ones that really change how it feels to talk to it:
- Silence to end the turn. How long the caller goes quiet before the agent answers. Less is snappier, but it cuts off people who think while they talk.
- Allow interrupting. Lets callers cut the agent off while it's speaking, and it's on by default: it removes the feeling of arguing with a machine. If the echo of its own voice interrupts it, raise the minimum time to interrupt.
- Response length. Lower it if the agent rambles: it answers sooner and more to the point.
- Max turns and duration. There's always a limit: 20 turns and 10 minutes by default (at most 100 turns and one hour). When it's reached, the agent stops without saying goodbye and leaves through «next», so set them to how long one of your calls really lasts.
Teaching it to do things in your systems
A "tool" is a small piece of flow the agent uses when it thinks it's needed: look something up in your CRM, check stock, create an order. You give it a name, a description and the data it needs, and it fills those in on its own from the conversation. The description is what it reads to decide whether to use it: "look up" says nothing, "look up an item's stock by its reference" does. That's the most common mistake.
There are two kinds and the system tells them apart on its own: the ones that come back (look something up and keep talking, the normal case) and the ones that leave (transfer, forward, hang up: the call goes away and the conversation ends).
If your tools live in Zapier, Make or n8n, you don't need to build blocks: the agent can use them directly as MCP tools (from the Pro plan). You choose which ones it may use and it decides when. MCP tools guide ↗
Besides your tools, the agent can send emails: in its «Email» section you tick which templates it may use, and it fills in the details from the conversation. Email from flows.
With the calendar turned on, the agent checks free slots and books in your Alpire calendar (it needs at least one resource created in Calendar) or in your own Google, Outlook or Cal.com calendar: Connect your calendar.
Connect your calendar (Google, Outlook or Cal.com)
If you already keep appointments in Google Calendar, Outlook (Microsoft 365) or Cal.com, the AI agent can check your free slots and book right there, and you see them in your usual calendar. If you don't connect any, it books in the Alpire calendar (Calendar in the menu), which needs at least one resource created (a person, a room, a table): with no resources, the agent doesn't offer appointments.
How to connect
- Go to Settings → Integrations and click «Connect with Google» or «Connect with Microsoft» (for Cal.com, paste your API key).
- Sign in with the calendar account and accept the permission. Google and Microsoft show it as «see and edit your calendars» because they don't have a narrower one that allows creating events; in practice it's only used to check whether a slot is free or busy and to create the appointments the agent books.
- Back in Alpire, choose which calendar is used to check availability and create appointments, how long each appointment lasts and which days and hours you give them.
- Turn on «Enable for the agent» and, in the flow, mark on the AI agent that it can book appointments. Try it with «Test with voice».
Where appointments go
If you have a calendar connected and enabled, appointments go there; otherwise, into the Alpire agenda. Cancelling an appointment by phone only works with the Alpire agenda: in your external calendar you cancel it yourself, as usual.
Email from flows
Your flows and your AI agents can send an email to the caller: an appointment confirmation, a quote, the link they asked for. It's transactional email, one per conversation and with that call's details; it's not for campaigns or bulk sending.
Templates
In Configuration → Email templates you write the subject and the text. Whatever changes on each call (the name, the date, a code) goes between double braces, and in the flow you decide where each value comes from. A blank line separates paragraphs, two asterisks on each side make bold and https:// links are clickable. The page shows a preview and has «Send me a test».
The «Send email» block
You set who it goes to (usually a variable, for example the email the caller dictated), pick the template and give each value. If you'd rather not use a template, you write the subject and text in the block itself. It has two outputs: sent and error; if something fails, the reason is left in the email_error variable so the flow can react.
From the AI agent
In the agent's «Email» section you tick which templates it may send. It fills in the details from the conversation and confirms the address with the caller before sending. It never writes an email of its own: it only sends your templates, so nobody can talk it into sending something else in your name.
Limits
- Per day, by plan: Solo 50, Starter 200, Pro 1,000, Business 3,000, Scale 10,000 and Enterprise 20,000 emails a day per organisation.
- Per recipient and per call: at most 5 a day to the same address and 3 on the same call. It stops a badly wired loop, or someone trying to use your agent to flood another person's inbox.
- During the trial: up to 20 a day, and only to the addresses of people on your team. You can test everything, and a free trial can't be used to email strangers.
Appointment notices: confirmation, reminder and cancellation
If you use the Alpire schedule, under Calendar → «Email notices to your customers» you can turn on three emails: the confirmation as soon as the appointment is booked (by phone with the agent, from the panel, the app or the API), a reminder a few hours before (you choose how many) and a notice if it's cancelled. Each one uses the standard text or one of your templates.
They only go out if the appointment has an email address, they count towards your plan's daily limit and they appear under «Recent sends». The reminder isn't sent if the appointment was booked inside that window (they just got the confirmation). If your schedule is connected to Google or Outlook, appointments live there and that calendar notifies the customer.
Satisfaction surveys
When someone on your team hangs up, the customer can stay on the line to answer one or more questions with the keypad: a score from 1 to 5 (satisfaction), from 0 to 10 (would you recommend us? 10 is entered by pressing 1 then 0) or yes/no. You write the questions once in Surveys and they apply depending on the queue or number that was called.
How to set it up
- In Surveys, create the survey with its questions and tick which queues and numbers it applies to (one can be the default).
- In the flow editor, connect the «AGENT HUNG UP» trigger to a «Survey» block set to «Automatic by call (queue, number or default)»: the right survey plays. You can also write a one-off question in the block itself.
- Publish the flow. If the customer presses nothing or a key outside the scale, the question is repeated; if they still don't answer, it counts as «no answer».
Where to see the results
In Reports → Satisfaction: the share of satisfied customers, the recommendation score, how many answer, and low scores first, with a link to the call so you can call back. The score is also stored on each call's record.
Reports, quality and results
Four screens tell you how your phone system is doing: the Dashboard, for today; Reports, the history by date; Results, what AI resolves and saves each month; and Call reviews, the quality of your service. Reports and Results are in the General group of the menu, and anyone who can see Real-time can open them: the owner, administrators and supervisors. You can give an agent access in Settings → Team → Permissions.
The Dashboard: how today is going
It's the first thing you see when you log in. At the top: calls Today and This week, Missed today and the week's Average duration. Below: your Queues if you have any (how many people are waiting now, plus the average wait and abandonment over the last 24 hours), Live calls, Connected extensions, Recent calls, and charts by day (7, 14 or 30 days) and by hour. The day starts at midnight in your organization's time zone.
When something needs attention, an alert appears at the very top. Each alert is shown only to people who can fix it:
- Subscription. We couldn't charge you, the subscription is cancelled, your plan won't renew, or your trial ends in a few days. Shown to anyone with access to Billing.
- AI agents with no instructions. A published flow has an AI agent step that points to a deleted agent and has no instructions of its own: it picks up and says nothing. “Open the flow” takes you there to fix it.
- Inbound flows with problems. A number is assigned to a flow that isn't published or was deleted, or the number doesn't match any of yours: that flow doesn't handle those calls. This alert and the previous one are shown to anyone who can edit flows.
- Set up your phone system. The steps to get started: connect the trunk, add your numbers, create the extensions and decide where each number goes. It disappears once they're done. Shown to anyone with access to Settings.
Reports: the history
Pick a period with the shortcuts (7 days, This month, Last month…) or with From and To, and click Apply. If you don't change anything, you see the last 30 days, today included; at most 92 days at a time. Days are cut at midnight in your organization's time zone, which you can change in Settings → Calls → General. The page is split into tabs (Overview, Calls & queues, Agents, Satisfaction and Chatbots), and each figure at the top shows its change against the previous period of the same length. The figures at the top and the By day table only count inbound calls:
- Inbound. Every call that came in during the period.
- Answered. Those picked up by a person or handled by your AI agent. Underneath it shows how many were “by AI”.
- Abandoned. The share of calls that ended without anyone answering them, neither a person nor AI. Calls still in progress don't count. It turns red above 10%. A caller who enters a flow (menu, queue, AI) and hangs up later counts as answered, not as abandoned: you'll find that figure in the By queue table, as “Abandoned in queue”.
- Avg. wait. How long it took a person to pick up, counted from when the call enters the queue, or from when it starts if it doesn't go through one. Only calls picked up by a person count.
- SLA. The share of those same calls picked up within the threshold in the SLA (s) field: 20 seconds by default, anywhere from 1 to 600. It turns green from 80%.
By day, by queue and by agent
Below you get the same period broken down. By day: one row per day. By queue: each queue with its inbound, answered, abandoned in queue (this includes what the queue sent on to AI or voicemail), ASA (the average wait until an agent picked up) and SLA. By agent: what each person handled, outbound and internal calls included:
- AHT. The average talk time per answered call.
- Talk time and After-call. Minutes spent talking and minutes of work after hanging up.
- Occupancy. The share of time they were busy, on a call or in after-call work. It shows “—” if there's no data on their status for that period.
- MOS. The sound quality of their calls: the higher, the better.
Further down you'll find Satisfaction, with the post-call surveys (see Satisfaction surveys) and, if you have chatbots and permission to see their history, their conversation tables (see Chatbots).
Downloading the data
The Export menu downloads the full report as a PDF, with your company's name on it and ready to forward, and one CSV per table: calls by day (with a TOTAL row at the end), by queue, by agent, chatbots and chats by agent. Everything comes out in your language, with the period and SLA threshold you have set.
Results: what AI resolves and saves
Results works month by month (the arrows change the month) and answers three questions: how much AI resolves without anyone stepping in, how much time and money it saves you, and how much it costs.
- Resolved by AI. Inbound calls and chats that AI closed on its own, and what share they are of everything handled. A call counts if your AI agent answered it and it didn't go to a person, a queue or a transfer, and didn't end in voicemail. A chat counts if it never went to a person and wasn't left unresolved.
- Time saved and Estimated savings. The length of those calls plus a few minutes per resolved chat, and that time valued at what an agent hour costs you.
- AI cost. All the AI credits your organization spent that month, converted to money at the top-up price.
- Return. Savings minus the AI cost. It shows in red if it's negative.
Below you'll see the Each day chart (resolved by AI versus handled by a person), the breakdown of calls and chats, the Top contact reasons (the most frequent call types; see Call types, further down) and, if you use automatic evaluation, the month's Average evaluation score.
Automatic AI evaluation
After the call, AI reads the transcript and scores the call with your quality form: a score per criterion, with the line from the conversation that backs it, and a final score from 0 to 100 (red below 50, amber up to 70, green from there on). On the call’s page you’ll also see a summary, any issues it found and how confident it is.
To turn it on:
- Your plan has to include it: it's in Pro, Business, Scale and Enterprise, not in Solo or Starter.
- In Settings → Calls → Recording, turn on recording and transcription. Without a transcript there's nothing to evaluate.
- In Settings → Calls → Call evaluation, turn on “Evaluate calls automatically”. The criteria are written in Telephony → Call quality. In Settings you can add extra questions (Yes/No, Text or JSON) to pull data out of each call, ask it in “How to answer” to be strict or to reply in your language, and add a webhook we send each result to.
Only some calls, or different questions? Add the “Evaluate (AI)” block to a flow, or use a campaign’s “Evaluation” button. Their questions take priority over the ones in Settings and work even if the general switch is off (you still need the plan and transcription). Without their own questions, those calls are scored with your quality form and the result goes to their webhook.
Not every call gets a score. Calls with no real conversation (just greetings, an audio test) and calls picked up by an answering machine stay as “not evaluated”. If nobody on your team took the call but there’s a message, in voicemail for example, nobody gets scored: AI pulls out the reason, a summary, whether they ask to be called back, the contact details they give and how urgent it is. Calls handled by an AI agent don’t count towards your team’s quality.
If an evaluation fails, or you turned evaluation on after the call, a supervisor gets “Re-run QA” or “Evaluate now” on the call’s page. It can be repeated once per call, the call needs a transcript, and evaluation has to be on (or the call has to come from a campaign or flow that asks for it).
Each result also goes out as the qa.scored event in Webhooks.
Reviews by a supervisor
AI scores the calls handled by a person; your team reviews the ones that need it most and corrects it where it’s wrong. It’s in the menu under Telephony → Call quality, and supervisors, administrators and the owner can see it; agents only see the evaluation of their own calls, with their supervisor’s comment. Human review is in every plan and uses no credits.
- An administrator creates the Quality form on that same screen: a name and up to 20 criteria, each with its weight (1 to 10: how much it counts towards the score), its scale (Yes/No or 0 to 10) and, optionally, what counts as doing it well, which is what the AI reads. Then click Save form; the AI uses it from the next call.
- To review lists first the calls the AI scored below 70, flagged an issue on, or wasn’t sure about, then a random control sample. Click Review: you’ll see the transcript, the recording and what the AI proposed for each criterion, with its quote; confirm or correct each score (or mark “N/A”), add a comment if you like and click Save review: you’ll move on to the next one. On control calls, the AI’s proposal stays hidden until you save.
- In Call quality you’ll see, for the period you pick, the AI’s average score, how many reviews there are, the agreement between AI and people, and the AI’s bias. Agreement and bias come only from the blind sample and are shown from 5 reviews: they tell you how far to trust the AI on the calls nobody reviews. Below, by agent, their AI score and how much people correct it on their reviewed calls, plus agreement by criterion so you know which description to rewrite.
With “Greeting”, weight 1 and scale 0–5, and “Resolution”, weight 3 and scale Yes/No, a 5 for greeting and a No for resolution give 25%: resolution weighs three times as much, whatever its scale.
Each person has one review per call: reviewing it again updates theirs. Several people can review the same call, and when you open it you’ll see what each one scored, criterion by criterion: that’s how you check everyone measures by the same yardstick. In averages, a call reviewed by several people counts once. Nobody can review themselves.
Chatbot conversations handled by a person are reviewed the same way, with the “Review” button on the closed conversation, and they count toward the same agent average. More in Chatbots.
Call types
They're labels to classify calls (Sales, Support, Other…). An administrator creates them in Settings → Calls → Call types, with a name and a color. From then on:
- After hanging up, the phone, in the browser or the desktop app, asks the agent to pick a type. It only appears if types exist and the call actually connected.
- On the call's page, the Type field lets you change it, and in Calls you can filter by type.
- Chats from your chatbots are classified automatically when they close, using those same types.
- In Results, Top contact reasons shows you the month's most frequent types.
If you delete a type, the calls that had it are left without a type.
AI models: which to choose
When someone talks to your agent, three different models come into play, in a chain. All three add latency and all three cost credits; understanding the split is all you need to tune an agent.
caller's voice → [listen] → text → [think] → response → [speak] → agent's voice
Where the silence comes from
The silence the caller perceives is: silence wait + listen + think + speak. The first term is your own setting (how long the system waits before it considers the turn over, by default a bit over half a second); the other three depend on the model. Well chosen they add up to ~1 s; badly chosen, over 3 s of silence on the phone, which is an eternity.
Same agent, same task, different choice of models. Three and a half seconds of silence on a call is an eternity.
The one that thinks (LLM)
It's the one that varies most: from the fastest to the slowest there's a factor of 20. The fast ones (small models or on specialized hardware) are more than enough for collecting data, qualifying, or answering from a knowledge base. The mid-range ones are justified if the agent has to genuinely decide: negotiate, interpret ambiguous requests, chain tools together. Rule of thumb: start with the fastest and move up only if you notice it getting things wrong. Almost nobody needs to move up.
The one that listens (STT)
Less room to move, but two things matter. Telephony runs at 8 kHz (less information than any audio on your laptop): a model that transcribes a podcast beautifully can fail on the phone, so always test with a real call. And set the language if your callers don't mix languages: it's more accurate. Watch out for the variants marked MIP: they're cheaper because they let the provider train on your audio.
The one that speaks (TTS)
You're choosing between naturalness, speed and price. One warning that saves grief: the prettiest voice isn't the best for the phone. At 8 kHz much of the nuance of an HD voice is lost along the way, so you pay latency and credits for a difference the caller never gets to hear. Test both on a real call before deciding.
How to lower latency, in order
- Swap the LLM for one in the fast band. That's 70% of the improvement.
- Lower the silence wait if your callers answer in short phrases.
- Switch the TTS to a fast one if you were on the slowest.
- Shorten the instructions and the response length: they're re-read in full on every turn.
Credits and billing
One credit is worth $0.01. Always, on every plan. When topping up, a euro buys 110 credits and a dollar 100. Its value never changes; what changes between plans is how many are included and what discount you get on usage. The calls themselves are billed by your carrier, separately.
What consumes credits
Only AI, charged per minute. Transcribing recordings (if you turn it on) also uses credits. Playing audio you've uploaded, key menus, queues, transfers and waiting don't.
- Listen (voice → text). The "Listen" and "Say or dial" blocks, and the whole time inside an AI Agent.
- Speak (text → voice). The "Text to speech" block and the AI Agent's responses.
- Think (the AI model). Every minute of AI Agent conversation. Evaluating a call's quality after hang-up (and the «Evaluate (AI)» block) doesn't use credits; evaluating a chatbot conversation does.
The time the agent spends inside a tool (waiting for your API) is deducted from the AI minute: you see it broken out in the call details. You don't pay to wait for your own system. Balance is spent first from the plan's monthly bundle and then from top-ups, which don't expire with the month.
Plans
Solo (45 €/seat/month, minimum 1 → from 45 €, 1,000 credits), Starter (45 €/seat/month, minimum 3 → from 135 €, 3,000 credits), Pro (35 €/seat, minimum 10 → from 350 €, 9,000), Business (30 €/seat, minimum 30 → from 900 €, 24,000, −10% on usage), Scale (25 €/seat, minimum 100 → from 2,500 €, 70,000, −20%) and bespoke Enterprise. All of them include AI: the price is the base. This list is written by hand and is NOT read from the database, so the Billing page wins if they ever differ.
Controlling spend
- No surprise charges. AI spend does not go beyond the credits included in your plan plus any top-ups you have bought: there is no automatic top-up. Only a call already in progress can overshoot a little; that excess becomes a credit debt (we tell you in Billing) and your next top-up pays it off first. Chatbots and assist also have their own daily cap.
- Each agent shows its estimated cost per minute before you publish it, and its turn and duration caps bound how long a conversation can run.
- The «no credit or capacity» output of the agent fires when a call arrives and there are no credits or no AI capacity left. Connect it to a queue or voicemail; and connect «next» too, which is where it leaves if credit runs out mid-conversation.
Privacy and data
This section describes how the system works. It is not legal advice: what you can and can't do depends on your jurisdiction and your own analysis. Read it before putting an AI agent into production.
The platform gives you the options and informs you of their consequences; the decision is yours. In data-protection terms, you determine what is recorded, what is transcribed and with which provider; we execute it. Choosing a provider that trains on the data, or keeping recordings forever, are your decisions with your consequences.
Recordings
They're turned on in Settings → Calls, and each flow block can override it (yes / no / inherit). Retention is in Settings → Usage: by default they're deleted after 90 days, and deletion can't be undone. If the plan expires, recordings are deleted after 60 days even if you chose to keep them without limit. Once your plan's recording storage is full, new ones stop being saved.
Choosing a provider wisely
In the catalog, each model carries its region and a mark of whether it trains on the data it receives. The ones that train (and the MIP variants of STT, cheaper for exactly that reason) use your audio to improve their systems: cheap, and a bad idea with customer data. The region determines which country the audio travels to.
Sensitive data and AI disclosure
- Mark as "secret" any sensitive data you collect: it's hidden in the logs and the trace. Note: a secret value travels MASKED in the «API call (HTTP)» block too, so your CRM or payment gateway won't receive the real value. To send tokens to your systems, use the Secrets in Settings → Integrations, which are sent, only over https and only to the destinations you set.
- Cards and PINs. They can't be read out by voice. It's blocked by design, with a double lock, and there's no option to turn it off.
- Disclosing that there's an AI. In the European Union, anyone talking to an AI has the right to know it, and there that disclosure is enforced. Beyond being mandatory, people react far better to an agent that introduces itself than to one that pretends to be human.
Before production, check
- Recording retention (Settings → Usage) is what you want: it's 90 days by default, not «forever».
- No model in the flow trains on the data, unless you've deliberately decided so.
- You have checked each AI route's provider, endpoint, location and retention against your DPA and what you tell customers.
- Any personal or payment data you collect is marked as secret.
- The AI disclosure is active where it should be, and you know what to answer a customer who asks "is this being recorded?".
Chatbots for your website
A chatbot is a text assistant you put on your website or app. It answers your customers from your documents, collects messages for your team when it doesn't know something, and keeps every conversation so the customer can pick it up when they return. It's billed per token from the AI wallet.
Creating one, step by step
- Answers. Describe your company, what it may and may not talk about, and choose the model. The platform adds the safety rules (don't invent facts, don't ask for passwords, don't follow instructions found in messages).
- Documents. Upload PDF, Markdown or text. They're free: they go to your organization's storage. Without documents it only answers general questions.
- Domains. List the sites where it can run (https://your-site.example, https://*.your-site.example). Outside them the browser won't let it be embedded; with none it appears nowhere.
- Test. Chat with it from its settings page before publishing. It spends real tokens but leaves no conversation and sends no messages.
- Install. Paste the snippet from “Install & API” before closing </body>. Nothing else is needed.
Conversations that continue
Returning visitors see their conversation where they left it: the widget stores an identifier in YOUR site's storage. If it closed due to inactivity, typing starts a new one with the previous summary.
There are two ways to continue on another device: the visitor requests an email link from the chat menu, or your server signs who your customer is with the identity secret (Privacy tab) and the conversation follows them wherever they log in.
When the chatbot can't help
It offers to leave a message with an email or phone. It's emailed to the recipients you choose (or the administrators) with a link to the conversation, and it's flagged in the history.
History
All conversations of all chatbots, including old ones, with filters, search by email or customer id, a summary of each and CSV export. Administrators, supervisors and anyone with the “Chatbot history” permission can see it.
Handing over to a person
On every plan, a chatbot can hand the conversation over to your team. Turn it on in the “Human handoff” tab: choose who handles it (users, dial groups or queues; if you pick nobody, admins and supervisors do), the business hours and the maximum wait.
Visitors ask for it with the “Talk to a person” button, the bot offers it when it can't solve something, and your app can request it through the API. Outside business hours, or if nobody is assigned or connected (inbox, webphone or desktop app), the visitor is offered to leave a message and the conversation stays in the inbox.
Web call: from the Business plan, in the chatbot's «Web call» tab you can offer a button so visitors call from the browser, no phone needed. The call comes in through the flow you choose, like any other.
- Inbox. In Chatbots → Inbox: “Waiting” (with a sound when they arrive), “Mine”, “Team” and “Messages” (the ones nobody picked up). Everything updates live.
- Handling. Take the conversation, reply (the visitor sees your name), leave internal notes the visitor can't see, assign it to someone else, close it with a category and a note, and reopen it.
- Permissions. “Chatbot inbox” gives access to the conversations of the chatbots assigned to that person; “Chatbot history” gives access to all of them, and lets them step into one the bot is still handling.
With ratings turned on (Evaluation tab), when the conversation ends the visitor scores it from 1 to 5 and can leave a comment. It shows in the inbox, the history, the API and the chat.rated webhook.
Evaluation: with quality evaluation in your plan, conversations handled by a person are scored with AI when they close (the chatbot's Evaluation tab, with an optional rubric of its own), and a supervisor can evaluate them with the organization's form from the conversation page. Reports shows conversations, first response, resolution, rating and evaluations by agent, and how much each chatbot solved on its own.
Tools: with integrations in your plan, the chatbot can call your API to look things up or do things (bookings, orders, your CRM). You define the data it fills in (with its type) and where it goes; the chatbot can't change the destination. Anything that changes something is confirmed first by the visitor with a button, or by your app through the API, with the exact summary of what will be sent. In the same tab you pick the callback list so the chatbot can schedule a call from your team.
API and webhooks
Open conversations on behalf of your customers, retrieve any of them by chat_id, write from your app and receive what happens by webhook: chat.started, chat.message.created, chat.handed_off, chat.closed, chat.rated and chat.qa_scored. API reference · Webhooks.
Live copilot
Assistants answer your team with your company's documentation while they help a customer. You create them in the Assist menu: name, instructions, model, documents and which roles can use them.
- On demand. The agent types a question on the assist page (or your CRM sends it through the API) and the assistant answers, citing the documents it used.
- Live in chats. In the chatbot inbox, when the visitor writes, the AI drafts the reply above the text box. The agent uses it, asks for another or dismisses it: it is never sent on its own.
- Live in calls. In the webphone and the desktop app, the AI transcribes the call live and, when the customer stops talking, suggests what the agent could say. The agent can also ask with a button. It doesn't work with SIP desk phones or while the AI agent is handling the call.
How to turn on live assist
An administrator, in Assist → «Live assist»: picks the assistant that makes suggestions (its instructions and documents) and turns on the channels they want: chats, calls or both. It's off by default and needs the Business plan or higher. The roles that can use that assistant receive suggestions.
Campaigns: calling a contact list
A campaign calls the contacts on a list one by one, only within the hours you choose, and tries again when they don't answer. You'll find it under Campaigns, and there are two ways to run one:
- With your team. The dialer waits until an agent in the queue is free, rings their phone and, once they pick up, calls the customer. That way nobody answers only to hear silence.
- With an AI agent. If the campaign's flow has an “AI Agent” step, it calls without ringing anyone on your team: the AI does the talking. It opens by saying it is an artificial intelligence; in the EU that notice is mandatory.
Creating a campaign
Click “New campaign” and fill in the basics:
- Queue. Its agents take the answered calls; a call only goes out when one of them is online and free. With an AI agent you don't need one: pick a queue only if the flow hands the call to a person with a “Queue” step.
- Contacts to dial. A list saved in Contacts, “— entire address book —”, or a CSV you upload right there, up to 1 MB, with a phone column (phone, number, tel…) and, if you like, the name and more columns. If it's bigger, import it in Contacts and pick the list here. Contacts from the CSV are also saved in Contacts, in a list named after the campaign.
- Flow on answer. Optional. Without a flow, the customer goes straight to the agent. With one you can, for example, use the “Voicemail detector (AMD)” step to leave a message if an answering machine picks up. If the flow has an “AI Agent” step, it's an AI campaign.
- Dialing time window. Required: you pick one of your business hours schedules, and no calls go out outside it, holidays and exceptions included. If you change that schedule, the campaign follows it right away; if you delete it, the campaign stops calling.
The campaign is created as a “Draft”. Clicking “Start” prepares one call for each contact on the list that has a phone number, leaving out those on the Do-Not-Call List, up to 5,000 per start: if your list is bigger, split it into several. The list is read at that moment; anyone added to it later isn't called in that round.
Related: Waiting queues · Schedules · Flows · AI Agent · Contacts and Do-Not-Call
Pace, retries and caps
They're folded under “Advanced options”:
- Dials in progress (max.). How many of the campaign's calls can be live at once, up to 50 (0 = no cap of its own). With your team, the real pace is set by free agents; with AI, this number caps simultaneous conversations.
- Calls per hour (max.). A volume cap, not a concurrency cap: three at a time for eight hours adds up to hundreds of calls. Up to 10,000; 0 = no cap.
- Retries and Wait between retries. The maximum number of times each number is tried, and how many seconds pass between one try and the next (never under 30). With 0, the values in Settings → Calls → General apply. If the agent doesn't pick up, that also counts as a try.
- Try again later. Tick which numbers go back into the queue for another round once they run out of tries: those that were busy, those that didn't answer, or those that went to voicemail. They come back after the “Wait between rounds” (at least 60 seconds), and for no more than the “Extra rounds (max.)” you set, up to 10. Always within the Do-Not-Call List and the schedule.
- Spend cap (number of calls). The maximum number of call attempts for the whole campaign. When it's reached, the campaign stops by itself. 0 = no cap.
- Caller ID shown. The number the customer sees on their screen. It has to be one of your numbers: one of your caller IDs (Settings → Calls → CallerIDs) or a number of yours that receives calls; otherwise it won't save. Empty = your trunk's. If it ever stops being yours, the trunk's number is shown instead.
- Allow premium / international destinations. Unticked, the campaign skips international and special-rate numbers, which show up as “Blocked destination”. Ticked, international numbers are called only if you also have “Allow international calls” on in Settings → Calls → Blocked. Premium-rate numbers are never called by a campaign.
All of this is fixed when you create the campaign. Afterwards you can only change the flow (from the card: it applies from the next “Start”, not to calls already queued), the “Evaluation”, and the spend cap when that's what stopped it.
How it calls
With your team, every 10 seconds the dialer checks which agents in the queue are free (online, not on a call and not paused in the queue). For each one, their phone rings first; if they pick up within 25 seconds, the customer is called and, when they answer, the two are connected. The campaign doesn't keep the agents to itself: when free, they still get inbound calls from their queues.
With AI, the call goes out without reserving anyone and the agent speaks as soon as the customer answers. The call shows up in Calls like any other, with recording and transcript if you have them turned on.
If an answering machine picks up: with the “Voicemail detector (AMD)” step in the flow, the flow decides. Without it, and if you've turned on “Voicemail detection” in Settings → Calls, the start of the call is analysed and, if it's a machine, it does what you chose under “When a voicemail is detected”: connect anyway, discard or retry later.
Following a campaign
Each campaign is a card showing its status (“Draft”, “Running”, “Paused”, “Stopped” or “Finished”), its progress, how calls ended (connected, voicemail, busy, no answer, abandoned) and, if it's running but not calling, why: out of hours, automatic dialing off, nobody online in the queue… It updates by itself.
“Open” shows the details: the “Console”, with a “NOW” line saying what the dialer is doing and the log of the last 24 hours; the table of dials (the 300 most recent, filterable by status); “Export CSV”, which downloads them all; and “Calls and recordings”, with the full history.
In “Evaluation”, an admin writes questions the AI answers about each call in the campaign once it's recorded and transcribed. If you leave it empty, your organisation's general evaluation is used.
Pausing, stopping and calling again
- Pause. Stops calling without losing anything; calls in progress end normally. “Resume” picks up where it left off.
- Stop. The emergency brake: the campaign becomes “Stopped” and, if it's an AI campaign, conversations in progress are cut too within a few seconds. Only an admin can resume it.
- Starting again. You can click “Start” again on a “Finished” campaign: it calls the list as it stands that day and progress starts from zero. Call history isn't deleted.
- Re-dial exhausted. On the details page, it puts the numbers that ran out of tries back in the queue, until each one reaches 3 rounds (or the “Extra rounds” you set, if more). Never those on the Do-Not-Call List or blocked destinations, and it doesn't work while the campaign is “Stopped”. If it was “Finished”, it goes back to “Running”.
- Delete. Cancels pending calls. Calls already made stay in Calls.
Creating, starting, stopping, deleting, changing the flow, re-dialing and raising the cap are for admins. Anyone with access to Calls can view campaigns, download the CSV, and pause or resume a paused campaign: whoever is watching can hit the brakes without having to find someone.
When it stops by itself
A “Stopped” campaign says why on its card. The automatic reasons are:
- Spend cap reached. An admin enters a higher cap and clicks “Raise cap”: if there's room left, it starts calling again in the same click.
- Your plan doesn't cover it. For example, after a downgrade or a failed payment. It stops calling without cutting conversations in progress, and carries on by itself as soon as the plan covers it again (or sooner, with “Resume”).
- The carrier rejects the calls. Your carrier account is suspended for lack of balance. It resumes by itself after you top up.
- Too many abandoned calls. An abandoned call is one a person answers and finds nobody from your team on the line, for example because the agent hung up while it was ringing. If they go above 3% of the calls answered by people, the campaign stops for good: to keep calling that list, create a new campaign.
AI campaigns from a template
Under Templates → “AI campaigns” there are three ready to use: “Appointment reminder”, “Lead qualification” and “Overdue payment reminder”. Click “Set up campaign” and enter how the agent introduces itself, which language it speaks, what information it can give and, if you like, a phone number to transfer to a person.
“Create agent and set up the campaign” creates the agent, already published, and a schedule from Monday to Friday 10:00–14:00 and 16:00–20:00, then opens the new campaign with both selected. All that's left is to upload the CSV with the columns it lists (“Download example CSV”), click “Create campaign” and start it.
Lead qualification is a sales call: to create it you confirm that every contact gave prior consent, and that confirmation is kept in the audit log. The other two are informational, about an appointment or payment that already exists; don't use them to sell.
Each contact's data and the result
The AI agent receives each contact's name and custom fields. When you upload a CSV in the campaign, every column other than the phone and the name is saved as a custom field, up to 40.
In the agent's instructions you write them with the column name in lower case, without accents and with underscores instead of spaces (“Appointment date” becomes appointment_date). For example, the fecha column from the example CSV and the contact's name: {{vars.fecha}} · {{vars.nombre}}
The templates save the result of each call (Confirmed, Interested, Will pay…). You see it on the details page, under “Results:” and in the “Result” column, and also in the exported CSV and the webhook. If the person asks not to be called again, their number goes onto the Do-Not-Call List by itself. In your own flow with an AI agent, the result is the “resultado” variable, and the value “no_llamar” also opts the number out.
Notifying your systems
If you use webhooks, campaigns send two events:
campaign.finished— when a campaign finishes because it has no contacts left to call, with the total, how many were done and how many ran out of tries.campaign.contact_completed— every time a campaign's AI agent finishes a conversation, with the result, the data it saved and whether the person asked not to be called again.
Through the API you can also look up your campaigns and add numbers to the Do-Not-Call List.
Related: Webhooks · Webhooks · API
Contacts and the Do-Not-Call List
Contacts is your address book: people and companies with phone, email, company, tags, notes and custom fields (details specific to your business, such as a customer number). Your campaign lists come from here.
- New contact. The phone number is saved in international format with your country's code. If another contact already has that number, we tell you and link to their record: nothing is duplicated or overwritten.
- Import CSV. Up to 20 MB. It recognises the columns name, phone, email, company, tags and notes; any other column is saved as a custom field. Excel CSVs work, with commas or semicolons. If a phone number already exists, that contact is updated instead of a new one being created; rows with neither a name nor a phone are skipped.
- Search and filter. By name, phone, email or company, and by tag.
- Lists. “+ Save filter” saves the search or tag on screen under a name, and you then pick it in a campaign's “Contacts to dial”. A list is a filter, not a snapshot: it's read again every time you start the campaign.
- Export. “Export CSV” and “Export vCard” (the format phones use) download what you've filtered, up to 50,000 contacts per download.
- Call. The phone button on each row dials that number from the browser phone.
Related: Outbound campaigns
Do-Not-Call List
These are numbers the phone system will never call on its own: not campaigns, not automatic callbacks, not reminders scheduled by the AI agent or the chatbot. You'll find it in Settings → Do not call and behind the “Do-Not-Call List” button in Campaigns.
- Add a number. Type it however you like: it's saved in international format with your country's code.
- Upload list (CSV). One number per line, or a CSV with the phone numbers in the first column, up to 20 MB. Duplicates and rows that aren't a phone number are ignored.
- Remove and Empty list. “Remove” takes one number out; “Empty list” deletes them all and can't be undone. The search box finds a number even in a huge list.
- Automatic additions. If someone asks a campaign's AI agent not to be called again, their number goes in by itself. From your own systems you can add numbers with an API key that has the “Add to Do-Not-Call” permission, which can neither read the list nor remove anyone.
A number already on the list doesn't make it into the campaign when you start it. And since the list is checked again right before each call, a number you add while the campaign is running isn't called either: on the details page it shows as “Do-Not-Call”.
Anyone with access to Calls can see it; adding, uploading, removing and emptying are for admins.
Webhooks
In Settings → API & webhooks, «Event webhooks» card, you add a URL, pick events and receive a signed JSON POST every time something happens: the platform answers a call, the call ends, the transcript is ready, an appointment is booked. Built for n8n, Make, Zapier or your own endpoint. Every event comes in the same envelope (id, type, created_at, org_id, data); ignore fields you don't know instead of failing.
Events
You subscribe to the ones you care about:
call.started · call.ended · call.missed · call.transferred · transcript.ready · appointment.booked · appointment.cancelled · callback.created · campaign.finished · campaign.contact_completed · qa.scored · chat.started · chat.message.created · chat.handed_off · chat.closed · chat.rated · chat.qa_scored
Notices in Slack, Discord, Teams, Google Chat, Telegram, Webex or ntfy
Pick a chat channel as the destination and paste its webhook URL: instead of the signed JSON you get a ready-to-read notice (“📵 Missed call”, “📅 New appointment”, “🙋 A visitor wants to talk to a person”…) with a link to open it in Alpire. Unsigned, and without transcripts or chat messages. With the call.missed event you only hear about the calls you need to return.
Verifying the signature
Stripe-style: each delivery carries the X-Alpire-Timestamp header and X-Alpire-Signature in the form «sha256=<hex>». «timestamp.raw-body» is signed with HMAC-SHA256 using the endpoint's secret AS IS, as text (don't hex-decode it). For 24 hours after you rotate it, two comma-separated signatures arrive: accept the delivery if either matches. The secret is shown only once when you create the webhook; if you lose it, rotate it (“Rotate secret” button).
X-Alpire-Signature: sha256=hex( HMAC_SHA256( secret, X-Alpire-Timestamp + "." + raw_body ) )
- Sign over the raw body, before parsing the JSON: if you re-serialize, whitespace and order change and the signature won't match.
- Compare in constant time (timingSafeEqual / hmac.compare_digest), not with "==".
- Reject old timestamps (5 minutes is reasonable) or you accept replays.
Responses and retries
We only look at the HTTP status code; your response body is ignored. A 2xx marks the delivery as received; any other code, or a network error, is retried with increasing waits (from 1 minute to 24 hours), up to 8 attempts in total (about 2.4 days). You have 10 seconds to respond: reply 2xx as soon as you've validated the signature and do the work in the background. Deliveries go out in cycles of about 15 seconds, so an event may take that long to arrive (a «call.ended» for a recorded call, up to a minute more).
Full technical reference
The event catalogue with EVERY field that arrives inside «data», one by one, plus the signature and retries in detail: See the webhooks reference
Common errors
- The webphone is stuck «reconnecting…» in a loop. It's almost always that your organization doesn't have its line connected yet: no trunk, no phone. Set it up in Settings → Trunk (or in «Getting started»).
- The AI agent doesn't speak or respond. It’s usually that the chosen model is no longer available (retired or outside your region), or you've run out of credits. Check the model in «Set up the agent» and your balance in Settings → Usage.
- The call connects but there's no sound. It’s usually that your network is blocking the audio (try another network or check the browser's microphone permission).
- The flow doesn't answer calls. The number isn't added in Settings → Calls → Available CallerIDs, isn't assigned to the flow, or the flow is only a draft or disabled. Also check the warnings on the Dashboard.
- You can't choose the agent's voice or language. Only the voices and models available in your region appear. If you need a language or voice that isn't there, ask support.
Common issues · troubleshooting
- The call comes in but «nothing happens». Check that the number is in Settings → Calls → Available CallerIDs, that it's assigned to the flow and that the flow is published and enabled.
- The agent hangs up right away. Check that the agent has a voice, transcription and model, and that you have credits left (in Settings → Usage). Also connect its «next» output: if credit runs out or it hits its turn limit mid-conversation, it leaves through there; if it's not connected, it hangs up.
- High agent latency. Look at the quality metrics in “Test with voice” (transcription, response and voice): they show which step is slow.
- Recordings don't appear. Check that recording is on in Settings → Calls, that retention hasn't already deleted it (Settings → Usage; 90 days by default) and that you haven't filled your plan's recording storage: once full, recordings stop being saved.
- Still stuck? Use the help assistant (the «?» icon at the top right) or open a support ticket.