Use an AI Voice Agent with intent-based routing to replace your traditional IVR, so callers are routed to the right team based on what they say, rather than a menu they have to navigate. This article walks through creating, configuring, testing, and activating a routing agent.
Note: Throughout this article, we'll use an example based on ACME, a financial services company with three inbound teams (New Accounts, Account Development, and Technical Support), all reachable on a single shared mainline. Their traditional IVR causes callers to frequently land with the wrong team or abandon the call entirely. ACME wants to replace it with an AI Voice Agent that understands caller intent, collects a few key details, and routes each call to the right team automatically, with full context already in place when the agent picks up.
How it works
This setup can be adapted to suit virtually any use case. For the ACME example, a typical call flow looks like this:
- A customer calls the company mainline.
- The AI Voice Agent greets the caller and asks them to briefly describe their reason for calling, along with their first name and company name.
- The caller responds. The agent detects their intent and matches it to the relevant transfer branch.
- The call is routed to the correct team, with the caller's name, company, and reason for calling displayed to the receiving team.
With this in place, callers simply say what they need and get to the right team instantly, agents pick up with full context already in hand, and a fallback path ensures no call ever goes unanswered.
Important: AI Voice Agents with transfer branches can only be assigned to a single number, so the agent you create should be built with a specific number in mind. If you want to apply intent-based routing across multiple numbers, clone your original agent and assign a dedicated version to each number.
Step 1: Create your AI Voice Agent
For this step, we will use the automated Agent Builder tool, which lets you describe the desired behavior of your AI Voice Agent in plain language. You can also incorporate call transcripts, so the tool surfaces your most relevant calls based on your described goal and uses them to inform the agent's configuration.
Agent Builder is a quick-start tool. You'll still be able to edit the agent afterward, and we recommend reviewing it thoroughly.
Steps
- Go to Aircall Dashboard > AI Agents > AI Voice Agents from the left-hand navigation menu.
- Click Create an AI Voice Agent and select Inbound.
- Describe what you want the AI Voice Agent to do in plain language. For the ACME example: "Create a friendly triage agent for my financial services company that collects a few key details from the caller, detects their intent, and routes them to the right team."
Note: Using call transcripts requires at least 300 calls in your account to activate. If you'd rather create your AI Voice Agent manually, you can select that option when prompted.
Tip: Add further details to your prompt to make it more specific to your business or use case.
Step 2: Configure your AI Voice Agent
If you used Agent Builder, basic configuration will already be populated, but you should still review:
- Agent profile: sets the agent's core identity.
- Company information: defines how the agent refers to your business.
- Knowledge base: where you provide the information the agent uses to answer caller questions.
Note: Since this is a pure routing agent, a knowledge base is not required. Agent Builder adds a default FAQ, which you can remove. If you'd like the agent to handle basic questions as well as routing, review and edit this knowledge base as needed.
For more help with these settings, please refer to Configuring your AI Voice Agent.
Four configuration settings are especially important for a routing use case:
Greeting message
The greeting message is the first thing a caller hears and sets the tone for the entire interaction. For a routing agent, it also determines how the caller frames their reason for calling, which directly influences how accurately they get routed.
We recommend prompting the caller with your available teams in the greeting, so they know exactly what to say from the moment the agent picks up. There are two ways to approach this, depending on how much guidance you want to give the caller:
- Open prompt: "Thank you for calling ACME. I'm Maya, ACME's virtual assistant. I'm here to connect you with the right team, are you calling about New Accounts, Existing Accounts, or Technical Support?"
- Guided prompt: "Thank you for calling ACME. I'm Maya, ACME's virtual assistant. I'm here to connect you with the right team. If you are calling about a new account, say New Accounts. If you are calling about an existing account, say Existing Accounts. If you are calling about a technical issue, say Technical Support."
The guided prompt is the closest equivalent to a traditional IVR menu, just spoken rather than button-based, and may feel more familiar to callers who are used to that experience.
Note: The farewell message will be overridden by the transfer message configured in the next step, so you can leave it blank.
Transfer rules
Transfer rules are where you configure the transfer branches and their trigger conditions, determining which user or team the caller gets routed to.
Steps
- Open your AI Voice Agent and navigate to Call transfer rules on the left-hand navigation menu of the AI agent.
- Enable Allow AI Voice Agent to escalate the call by toggling it on.
- Select After intake questions. This aligns with the ACME use case of gathering intent and context before transferring the call.
- Under transfer branches, click + Add transfer branch.
- Give your branch a name. We recommend it reflects the subject of the intent or team it's being routed to, for example "New Accounts."
- Enter your trigger conditions (see guidance below).
- Enter your transfer message. This is what your agent says before transferring the call. You can set a different one for each branch, so use it to let the caller know which team they're being transferred to.
When writing your trigger conditions, follow these guidelines:
- Write them in plain language rather than technical terms, for example "Caller asks about pricing" rather than anything coded or structured.
- They should capture the general intent, not exact words, since the agent matches based on meaning rather than literal phrasing.
- Each branch should represent a distinct, non-overlapping intent, so the agent can confidently match to one branch without ambiguity.
Repeat the + Add transfer branch step as many times as required, based on how many routing paths you need.
Note: The fallback transfer branch is a default branch used when no other transfer branch fits the caller's intent. This branch cannot be removed, but you can customize its transfer message.
Conversation guidelines
Conversation guidelines shape how the agent conducts a conversation: refining tone, defining phrase responses, and directing how it handles edge cases. This is also where you set the if/then logic that gives your agent the ability to reason within the boundaries you've set.
For the ACME example, conversation guidelines direct the agent to immediately ask intake questions after greeting the caller, and define how it handles two edge cases:
- Vague intent: if the caller's reason for calling is unclear or vague, the agent asks them to clarify: "I want to make sure I connect you with the right team, could you tell me the primary reason for your call today?" before asking the remaining intake questions. If the intent remains unclear after a second attempt, the call is routed down the fallback transfer branch.
- Attempted bypass: if the caller requests an immediate transfer or refuses to engage with the intake questions, the agent says: "I completely understand, I just need a brief reason for your call so I can make sure you reach the right team as quickly as possible." The call is not transferred until a reason has been provided.
Tip: You can build upon these Conversational Guidelines with additional business-specific phrases, tone adjustments or general behaviour directions specific to your use case
Intake questions
Intake questions define the specific details the agent collects. When the call is transferred, these questions are passed to the receiving user or team so they have context, and they're also logged in a structured format on the call log.
Tip: Since this is a routing agent, ask no more than three intake questions. Asking too many can lengthen the conversation and frustrate the caller, so stick to what your team actually needs for context when answering the call.
For the ACME example, the intake questions are:
- What is your name?
- What company are you calling from?
- To make sure I connect you with the right team, could you briefly tell me what you're calling about today?
Step 3: Test your routing agent
Once everything is configured, test your agent thoroughly using the Test call panel on the right-hand side of the agent editor before activating it in your call flow. This simulates a real call experience without firing any call activity to your team or triggering activity in your CRM.
Run through three scenarios to confirm the agent behaves as expected:
- Happy path: call in with a clear reason for calling that maps to each of your transfer branches and confirm the agent routes correctly each time. Then call in with a reason that doesn't match any branch and confirm the agent routes to the fallback path.
- Fuzzy path: call in with a vague or ambiguous reason for calling and confirm the agent asks for clarification. If it remains unclear, confirm the call is routed down the fallback transfer branch as expected.
- Unhappy path: push the agent with challenging conditions, such as interrupting mid-response, giving contradictory information, or refusing to provide a reason for calling. Confirm the agent handles these gracefully and falls back appropriately rather than routing incorrectly.
If you encounter unexpected results, identify the issue, make the necessary adjustments, and repeat testing until you're confident the agent is ready to serve customers.
Step 4: Activate your routing agent
Add your routing agent as the first step in your call flow, since its role is to triage and route every inbound call from the moment it arrives.
Important: Activating a routing agent affects your live call routing. We strongly recommend deploying it outside of business hours or during a period of low call traffic to minimize disruption.
Note: If you have business hours configured with a time rule widget, your routing agent will be placed as the first step in the "Open" branch.
Steps
- Go to Aircall Dashboard > Numbers in the left-hand menu and select the relevant number.
- Click Edit in the top right corner to open the call flow editor.
- Click the + icon on your opening hours branch to open the widget menu and select AI Voice Agent.
- Search for and select your routing AI Voice Agent.
- Add the relevant users or teams under each corresponding transfer branch.
- Click Publish. Your agent is now live.
Important: After deployment, monitor your agent's performance by reviewing calls and using the agent performance dashboard. For more information, please see Track AI Voice Agent's performance.
Best practices
- Build the agent with a specific number in mind, since transfer-branch agents can only be assigned to one number. Clone the agent for additional numbers.
- Prompt callers with your available teams in the greeting message, so they know exactly what to say.
- Write trigger conditions in plain language, capture general intent rather than exact words, and keep each branch distinct and non-overlapping.
- Limit intake questions to three or fewer to keep the routing flow quick and frustration-free.
- Test across happy, fuzzy, and unhappy path scenarios before going live.
- Deploy outside business hours or during low call traffic to minimize disruption to live call routing.
- Monitor performance regularly after launch to catch and resolve any unexpected behavior.
FAQ
Can I use one routing agent across multiple phone numbers?
No. AI Voice Agents with transfer branches can only be assigned to a single number. If you want intent-based routing on multiple numbers, clone your original agent and assign a dedicated version to each number.
Does a routing agent need a knowledge base?
Not necessarily. Since a routing agent's role is to detect intent and transfer the call, a knowledge base isn't required. Agent Builder adds a default FAQ, which you can remove, or you can review and edit it if you'd like the agent to also handle basic questions.
What happens if the agent can't identify the caller's intent?
The agent asks the caller to clarify. If the intent remains unclear after a second attempt, the call is routed down the fallback transfer branch.
What if a caller asks to be transferred immediately without giving a reason?
The agent acknowledges the request but explains it needs a brief reason for the call before transferring, so it can route the caller to the right team.
Can I customize the message for the fallback transfer branch?
Yes. The fallback branch itself cannot be removed, but you can customize its transfer message.
How many intake questions should I ask?
For a routing agent, we recommend no more than three. Asking too many can lengthen the conversation and frustrate the caller.