Skip to content
Documentation

How Alpire works

Alpire is your company's phone system. It picks up the calls coming into your numbers, decides what to do with each one and distributes them across your team. This guide explains, in plain language, what each section of the panel is for and how to get the most out of it day to day.

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.

1Someone callsone of your numbers
→
2Your rules kick inhours, menu, forwards…
→
3It rings the right peoplea person, a group or a queue
→
4It gets answeredand is logged

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.

Why can't I see some section? The menu adapts to your role. Whoever administers the company sees everything; someone who only answers calls may see less. That's normal: if you need access to something that isn't showing, ask whoever manages your organization's configuration.

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:

  1. 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.
  2. 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.
  3. Create a flow in Flows: define the call journey (menus, queues, AI agent, transfers…).
  4. 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.
  5. Test with «Test with voice» (real audio in the browser) or «Test walkthrough».
  6. 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.

The region can't be changed. When you create the account you choose European Union or North America: that's where data and recordings are stored, and it determines which AI providers are available. If you need the other one, write to support before you start operating.

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»).
Write down the password when you create it. For security it can't be viewed again afterwards. If you lose it, open «Edit» on the extension and set a new one — don't delete the extension: that removes it from its groups, queues and flows.

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.
Keep the panel open. The in-browser phone only receives calls while the panel is open in a tab. If the connection drops for a moment you'll see «reconnecting…»: don't close the tab, the phone tries to recover the call without hanging up.

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.
If you made the call, you can only transfer it to an extension or a number.

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.

  1. Open the app (on Windows, after installing it) and click «Sign in».
  2. 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.
  3. 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.

App and browser at the same time. Your extension receives calls in one place only, and the app takes priority. If you open the panel while the app is running, the browser tells you and offers «Move it to this window».

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.

Your company chooses the reasons. An administrator edits them in Settings → Calls → ACW, under «Pause reasons». Five come by default: Break, Lunch, Training, Meeting and Admin work. You can remove them, add your own (up to 20) or leave the list empty, and then only «Busy» remains. Each person gets the changes the next time their phone connects.

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»).

Your company decides how long it lasts. An administrator sets it in Settings → Calls → ACW, under «ACW seconds»: 30 by default, 600 at most, and 0 turns it off. In the in-browser phone, «Classify the call» only appears if the company has created call types (Settings → Calls → Call types); in the app it appears after any answered call.

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».

The strategies. «Ring all at once» (the default), «Sequential (in order)» (one after another, in the order you set), «Round-robin (rotation)» (taking turns, to share the work), «Random» and «Idle longest». What a group doesn't do is put callers on hold: if you want callers to wait with music until someone is free, what you need is a queue.

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.

You can't delete a queue (or a group) that a flow uses. Remove it from those flows first (and publish them). It's deliberate, so calls never point at nothing.

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.

Example

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.

A couple of things. Each day allows two time ranges (for a split day, fill in the second one), and each schedule has its own time zone. For holidays and special days (Christmas, a long weekend, a day with different hours), use «Holidays and special days» under each schedule: they take priority over the weekly schedule and can repeat «every year». To change a schedule, press «Edit».

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.

📞 A call comes in to your number Your flow decides what to do Options menu “press 1, 2…” Your team queues and extensions AI assistant talks to the caller ✓ Answered
How a call travels through your phone system, from the number to whoever answers.

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.

When someone picks up, that's where the flow ends. In the steps that send the call to a person, group or queue, the «answered» output ends the path: the call stays connected and no longer follows the flow. What continues are the failure outputs («no answer», «busy»). In other words: hang your plan B off the «no answer» output, not the success one.

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).

If it seems not to work, check this: that the flow is published (the draft doesn't answer), that it has at least one number assigned and that it's activated. It's what gets forgotten most often.

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.

An example flow, from start to finish

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.

The rule that fixes the most flows: if the task is conversational, do it with a SINGLE agent. Collecting a name, a date and a headcount, answering questions, booking, screening: all of that is one well-explained agent, not twenty separate blocks. The agent already asks and already understands.

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.

It costs credits: the agent pays for listening, thinking and speaking, per minute and depending on the models you pick. Time spent waiting for your tools isn't charged as AI. If there's no credit or no AI capacity left when the call arrives, it leaves through «no credit or capacity»: connect it to a queue or voicemail. If credit runs out mid-conversation, it closes through «next» (or hangs up if that isn't connected). More in AI Models · Credits.
Privacy: turning off transcript saving does not stop data from leaving (the audio still goes to the transcription service). What matters is which provider you choose. Mark any sensitive data as "secret"; cards and PINs can't be read out by voice, it's blocked on purpose.

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

  1. Go to Settings → Integrations and click «Connect with Google» or «Connect with Microsoft» (for Cal.com, paste your API key).
  2. 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.
  3. 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.
  4. 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.

If the connection drops. If you remove the permission in the account or change the password, the panel will warn you with «Reconnect» and, meanwhile, the agent won't offer appointments (it doesn't put them anywhere else).
Privacy. From the calendar we only use whether a slot is free or busy, and we create the appointment with the caller's name, phone and a note. If the caller gave their email, they're invited to the event, so they receive your calendar's invitation. Credentials are stored encrypted and deleted when you disconnect.

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.
«Test with voice» sends nothing. It builds the email for real — so you see if a value is missing, the template no longer exists or the address isn't valid — but it doesn't go out. To see how it arrives, use «Send me a test» on the templates page.
Who it comes from: from avisos@avisos.alpire.ai under your organisation's name, and replies reach the notification email set in Settings (or the block's «reply to»). Your own mail server can't be used for this yet.

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

  1. In Surveys, create the survey with its questions and tick which queues and numbers it applies to (one can be the default).
  2. 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.
  3. 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.

When it isn't asked: only after an incoming call handled by someone on your team who then hung up; not after a transfer to another number nor on outgoing calls. «Test with voice» doesn't store answers, so the figures stay clean.

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%.
Real-time always measures at 20 seconds. If you change the threshold here, the SLA on the two screens will no longer match. And calls handled by AI don't count as abandoned, but they aren't included in the wait or the SLA either: those measure your team.

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.

Good to know: in the CSV files, decimals use a point. Satisfaction isn't included in the downloads; you check it on screen. Where no call was answered by a person, wait and SLA come out empty in the CSV and as “—” in the PDF, not as 0. And PDFs are made one at a time per organization: if you're told one is already being generated, wait for it to finish.

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.

You set the savings assumptions. By default, 20 per agent hour, in your account's currency, and 4 minutes per chat. An administrator can change them on that same screen, under Savings assumptions. It's an estimate: adjust it to what things really cost you.

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:

  1. Your plan has to include it: it's in Pro, Business, Scale and Enterprise, not in Solo or Starter.
  2. In Settings → Calls → Recording, turn on recording and transcription. Without a transcript there's nothing to evaluate.
  3. 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.

How much does it cost? Evaluating a call isn't deducted from your credits; what does use them is the transcription it relies on. Evaluating a chatbot conversation is charged, like one more chatbot message, and counts toward its daily cap.

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.

  1. 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.
  2. 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.
  3. 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.
Example

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.

Changing the form doesn't delete anything: the new one replaces the old one, and reviews already done keep their score and their criteria.

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.

The chain

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.

Well chosen ~1.1 s
Poorly chosen ~3.5 s

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.

"Pro" or reasoning models are not for the phone. The thinking step alone eats up almost five seconds, before it even starts to speak. Excellent at writing, disastrous at conversation.

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

  1. Swap the LLM for one in the fast band. That's 70% of the improvement.
  2. Lower the silence wait if your callers answer in short phrases.
  3. Switch the TTS to a fast one if you were on the slowest.
  4. Shorten the instructions and the response length: they're re-read in full on every turn.
Service profile and provider location: The catalogue shows the configured region for each provider and may list the same model through different endpoints. The organisation profile and cross-region provider setting control which routes appear and which the runtime accepts; QA may use its default model if a selection fails validation, while other flows may block it. The `eu` profile is not a physical-residency guarantee or legal certification. Check provider, endpoint, retention and transfer terms in the DPA before sending audio. The current catalogue and rates are in Settings → AI Catalog.

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.

The discount applies to actual usage, not to the bundle: the same balance goes further. An LLM minute that costs 2.0 credits costs you 1.8 on Business and 1.6 on Scale.
AI session bursts (optional): if at peak times more AI calls come in than your plan covers, by default the extra one leaves the flow through «no credit or capacity». You can turn on bursts in Settings → Usage: we take a few inbound calls above your plan —1 on Solo, 2 on Starter and Pro, 4 on Business, 10 on Scale— and those minutes are charged at 1.5× the model rate. It only applies to INBOUND calls: in outbound campaigns you set the pace, so you're never charged extra there. It's off by default.

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.
Billing: upgrading your plan and extra seats are done in Billing; payment method, invoices and cancellation live in the Stripe portal, reachable from there. We don't store your card. The free trial lasts 14 days, comes with 300 credits, requires a card up front and is one per account (no API or MCP tools during the trial). With no active plan or trial, the organization stays in read-only demo mode: you can look around but can't place calls or change settings. That's deliberate.

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.

The most misunderstood thing: turning off transcript saving does not stop data from leaving. That switch prevents saving the transcript, but for the agent to work the audio has to go to the provider that listens and the text to the one that thinks. That happens regardless. If you're worried about content leaving your control, what matters is which provider you choose.

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.

Hosting and processing locations: The `eu` profile limits the AI catalogue by default to providers tagged as EU, and the runtime validates selections. If a selection fails that check, QA may use its default model while other flows may block processing. The profile and badge alone do not guarantee physical residency or legal compliance: check the endpoint and its terms in the DPA.

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

  1. Recording retention (Settings → Usage) is what you want: it's 90 days by default, not «forever».
  2. No model in the flow trains on the data, unless you've deliberately decided so.
  3. You have checked each AI route's provider, endpoint, location and retention against your DPA and what you tell customers.
  4. Any personal or payment data you collect is marked as secret.
  5. 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.

Cost. It's billed per thousand tokens at the chosen model's chatbot rate, shown in the selector (with your plan discount). Each chatbot has a daily cap: when reached it stops answering with AI until the next day (UTC), offers to leave a message and we email you.
Security. The chat is served from its own subdomain, with no access to your dashboard. Opening a conversation requires solving an invisible challenge in the browser, and there are per-visitor and per-IP limits: a script can't drain your credit by opening thousands of chats.
Privacy. The widget always discloses that visitors are talking to an AI. Conversations are deleted automatically after the retention days you choose, and erasing or exporting a specific visitor is in GDPR (by email or customer id). We don't store the visitor's IP or browser.

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.

Cost. Tokens per answer or suggestion, within the daily assist cap you set. In calls, transcription is also billed per audio minute of each voice. If credit runs out or the cap is reached, assist stops and the agent sees why.
Privacy. Live transcripts and suggestions aren't stored. Voice is transcribed by your organization's regional provider. Let your customers know the call may be transcribed and set the transcription language in Settings.

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.
Before your first one. Campaigns, AI-agent ones included, come with the Pro plan and above. Also turn on “Automatic callback dialing” in Settings → Calls → General: while it's off, the campaign shows as “Running” but calls nobody (the Campaigns page warns you).

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.

AI calls at once. Your plan sets the limit: in Settings → Billing you can see how many outbound AI agent calls it allows at once. The dialer never goes above it, even if you set “Dials in progress (max.)” higher. They also share your plan's AI conversation allowance with the inbound calls the AI answers. Without AI credits the campaign doesn't call: contacts wait, and it carries on by itself once you top up. Related: Credits · AI Models

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}}

Careful: if a number in the CSV was already in Contacts, the campaign uses the data it already had and the CSV doesn't change it. To update it, first import that same CSV in Contacts with “Import CSV”.

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

Who you call is your responsibility. You need a legal basis for every call; for sales calls with an AI voice, the person's prior consent. Choose hours your country's law allows and upload your exclusions, such as your national do-not-call registry, to the Do-Not-Call List.
What a campaign never calls. Emergency numbers (112 and the rest), premium-rate numbers (in the UK, 09 and 070 numbers), satellite numbers and anything your “Organization outbound” rules in Settings exclude. Nor international numbers, unless you allow them as explained above.

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.
Who can do what. Creating, editing, importing, deleting and saving lists are for admins. The rest of the team with access to Calls can view, search and export.

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”.

What it doesn't do. It doesn't stop someone on your team from dialing that number by hand, or that person from calling you. To reject their inbound calls, use “Blocked” in Settings.

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

PII warning: transcript.ready includes the literal content of the conversation, and chat.message.created that of every message. Call events (call.started, call.ended), appointment events and campaign.contact_completed also carry phone numbers, names and, depending on the event, the variables the flow saved. Treat that endpoint with the same care as the recording: TLS, access control, and a retention you can justify.

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).

The signature

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).

A 4xx does not stop the retries. Today we don't distinguish "I can't right now" from "this will never work": a permanent 400 or 410 is retried all 8 times the same, spread out over about 2.4 days. If your endpoint disappears, delete or pause the webhook in the panel; returning an error isn't enough.
URL restrictions: only http:// and https://, and it must be on the public internet. DNS is resolved before sending and any private or special IP is rejected (anti-SSRF), when the webhook is created and on every delivery. Redirects aren't followed: register the final URL (with https and the trailing slash exactly as it is). For development, use a tunnel such as ngrok or Cloudflare Tunnel.

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

What about a REST API? Yes, from the Pro plan: webhooks tell you what happens and the API lets you query and act. A healthy integration uses both. The full reference —with the request ready-made in cURL, JavaScript, Python or PHP— is in Documentation → API reference.

Open the API 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

  1. 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.
  2. 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.
  3. High agent latency. Look at the quality metrics in “Test with voice” (transcription, response and voice): they show which step is slow.
  4. 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.
  5. Still stuck? Use the help assistant (the «?» icon at the top right) or open a support ticket.

Something not matching what you see on screen? The panel keeps improving; when an option and this guide disagree, trust the panel. For questions about your specific configuration, talk to whoever administers your organization.