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.
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 don't have to be kept forever; depending on your company's policy they may be deleted after a while. If a recording you expected is no longer there, that's probably why.
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). To keep it transparent, the agent can see when they're being listened to.
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. You set a password on the extension, and that password is entered on the physical phone so it stays connected.
Available, busy or on a break
From their phone, 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.
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
The call tries the members in order: it rings the first one; if there's no answer, it moves to the next, and so on until someone picks up. You decide the order when you set up the group.
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 in order. If no one picks up, the call goes unanswered. No music or waiting. Good for small teams and quick answers.
Waiting queue
Answers and holds callers with music, and hands them out in turn as people become free. 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 order in which you add them sets the priority). While they wait, callers hear music; when an agent becomes free, the first in the queue is passed to them.
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 to the next step. For example, a menu has one output per key; a schedule has «open» and «closed»; 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 available blocks, grouped as they appear in the editor:
Messages
- Play audio
- Plays a recording you've uploaded in Audio (a greeting, an announcement).
- Text to speech
- 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
- Keypad 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
- Captures what the person says out loud and turns it into text, to decide based on what they ask for.
Decisions
- Business hours
- Checks your schedule and splits between open and closed.
- Based on who's calling
- Treats some numbers differently from others — for example, sending your regular customers to a separate queue.
- Based on a value
- Branches based on something you collected earlier (the key pressed, the customer code…).
Destinations
- Call an extension
- Rings a specific person.
- Call a group
- Rings a group.
- Put in queue
- Puts the call into a queue, with music, announcements and an exit option if the wait gets long.
- Forward out
- 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.
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. You can assign an exact number or all of them at once. As soon as you publish and assign, the next call comes in through your flow.
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 the caller cut in while the agent is talking. Turn it on: it removes the feeling of fighting with a machine. If it's interrupted by the echo of its own voice, raise the minimum time before an interruption counts.
- Response length. Lower it if the agent rambles: it answers sooner and more to the point.
- Max turns and duration. Your handbrake. An agent with no cap can keep someone on the phone for twenty minutes.
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).
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 the AI, and it's billed per minute. Playing an audio you've uploaded, keypad menus, queues, transfers and hold don't consume credits.
- 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 turn of the AI Agent, and the quality scoring at hang-up.
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
Starter (40 €/seat/month, minimum 3 → from 120 €, 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
- Settings → Limits has an AI credit 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 balance" exit on the agent triggers when you run out of credits. Connect it to a queue or a voicemail.
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 enabled in Settings → Recording, and each flow block can override it (yes / no / inherit). Retention is configured in that same place: by default they aren't deleted on their own, so if your policy says 90 days, set it yourself. An hourly sweep applies what you configured.
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. If you send data with the "HTTP Call" block, mark the field too, or the content can end up in the diagnostic logs.
- 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 is set to a number, not to "forever".
- No model in the flow trains on the data, unless you've deliberately decided so.
- The models' region matches the residency you've promised your 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
- Brain. 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
From the Pro 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.
- 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.
Agent assist
Assistants answer your team with your company's documents while they serve a customer. You create them in the Assistants 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 Assistants → «Live assist»: picks the assistant that makes the suggestions (its instructions and documents) and turns on the channels they want, chats, calls or both. It is off by default. Roles allowed to use that assistant get the suggestions.
Webhooks
In Settings → Integrations & automation you register a URL, choose events, and receive a signed JSON POST every time something happens: call answered, transcript ready, appointment booked. Designed for n8n, Make, Zapier or your own endpoint. Every event arrives with the same envelope (id, type, created_at, org_id, data); ignore fields you don't recognize rather than failing.
Events
You subscribe to the ones you care about:
call.started · call.ended · call.transferred · transcript.ready · appointment.booked · appointment.cancelled · callback.created · campaign.finished · qa.scored
Verifying the signature
Stripe-style: "timestamp.raw-body" is signed with HMAC-SHA256 and the endpoint secret, in hexadecimal. The secret is shown only once when you create the webhook; if you lose it, regenerate it.
sha256 = hex( HMAC_SHA256( secret, 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 up to 8 attempts with growing backoff (from 1 minute to 24 hours). You have 10 seconds to respond: return 2xx as soon as you've validated the signature and do the work in the background.
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
Getting started
To get your phone system up and running, follow this order (you also have it as a checklist on the Dashboard, «Set up your phone system»):
- Connect your phone line in Settings → SIP (your phone line). Without it you can still use internal extensions and the in-browser phone.
- Add your numbers (DID/DDI) in Settings and create extensions/agents.
- Create a flow in Flows: define the call journey (menus, queues, AI agent, transfers…).
- Assign a DID to the flow: in the editor, section «DIDs that trigger this flow». Without an assigned number, the flow never runs.
- Test with «Test call» (real audio in the browser) or «Visual test».
- If you use AI agent, set its voice, language and instructions in “⚙ Manage brain”, and connect your AI providers in Security.
Common errors
- The webphone is stuck «reconnecting…» in a loop. Your organization’s phone setup is usually missing, or the system hasn’t loaded it yet. Save the phone settings again, or ask an administrator to check.
- The AI agent doesn't speak or respond. It’s usually that the model chosen for the assistant isn’t available with your AI provider, or the voice credentials are missing. Check it in “Manage brain” and in Security.
- The call connects but there's no sound. It’s usually that your network is blocking the audio, or the voice credentials are missing. An administrator can check it.
- The flow doesn't answer calls. No number is assigned to the flow, or the flow is still a draft. Assign the number and publish the flow.
- You can't choose the agent's voice or language. Only voices from the providers you have connected appear. An administrator can add more in Security.
Common issues · troubleshooting
- The call comes in but «nothing happens». Check that the DID is assigned to the flow and that the flow is published (not just a draft).
- The agent hangs up right away. Check that the assistant has voice, transcription and model set up, and that you have balance (AI Wallet in Security). A model that doesn’t match its provider also cuts the turn off.
- High agent latency. Look at the quality metrics in “Test call” (transcription, response and voice): they show which step is slow.
- Recordings don't appear. Check storage and retention in Settings.
- Still stuck? Use the help assistant (bubble at the bottom left) or open a support ticket.