How to Add an AI Voice Agent to Amazon Connect: Step-by-Step Setup Guide
Every step to put an AI voice agent on a phone number in Amazon Connect: instance, number, orchestrator AI agent, tools, bot, voice, contact flow and a test call, checked against the current AWS documentation.
By Naeem Akhtar · 15 min read
In short
- A voice agent on Amazon Connect is four pieces: an orchestrator AI agent, a conversational AI bot, a voice and speech model, and a contact flow.
- Test the agent with fake (Constant) tools first, then connect real systems through MCP tools.
- Common time-wasters: replies missing message tags, a voice language that mismatches the bot locale, and no fallback on error or timeout branches.
- A demo is mostly configuration. Production adds tool design, call review, regression tests and a staged rollout.
What you are building, and which path to take
Amazon Connect handles the phone side: numbers, routing, queues and recording. An AI voice agent answers the call, works out what the caller wants, uses tools to do something about it, and either finishes the job or hands the caller to a person. This guide shows how to wire that together using the console, in the order that avoids rework.
AWS has changed this area quickly. The product is now documented as Amazon Connect Customer, the self-service approach that returns control to the flow at every custom tool is labelled legacy, and the current approach is called agentic self-service, in which one orchestrator AI agent reasons across several steps and calls tools without handing control back between them. Everything below follows the current documentation, which we checked on 10 November 2026. Console labels move, so treat the screen names as a map rather than a script.
| Path | What it is | Choose it when |
|---|---|---|
| A. Orchestrator AI agent with agentic voice (this guide's main path) | An AI agent reasons over the conversation and calls MCP tools; AWS's agentic voice provides speech recognition and voices | You want the AI agent to handle multi-step requests such as looking up a booking and changing it, and you are happy to configure it in the Connect console |
| B. Nova Sonic speech-to-speech on the bot locale | The bot's speech model is set to Amazon Nova Sonic, which turns caller speech directly into spoken responses | You want the most natural turn-taking and expressive voice, and you accept the voices available for Nova Sonic |
| C. Custom agent streaming from the flow | You run your own conversation service and stream audio to it | You need full control of state, models and guardrails and have engineers to run it. See the architecture and build guide, and how an AI voice agent integrates with Amazon Connect for the six ways to connect one |
Paths A and B are both configured on the bot and in the flow, so most of the steps are shared, and where they differ we say so in Step 8. AWS documents Nova Sonic as a speech model setting on the bot locale, so check the current documentation for how it behaves alongside an orchestrator AI agent in your region before you rely on combining them. If you are unsure, start with path A.
Before you start: what to have ready
- An AWS account and a user who can create a Connect instance. AWS documents the AmazonConnect_FullAccess policy as the permission set for creating one.
- A region where Amazon Connect Customer is available to you. AWS notes that it is not available to customers in India who use AWS through Amazon Web Services India Private Limited, and instance creation returns an error in that case.
- One call type with a written definition of success, such as after-hours intake or appointment changes. Starting with the whole phone line is a common reason pilots stall.
- The systems the agent will act on, and a person who can describe the rules for them. Each action becomes a tool.
- A decision about recording and consent for your jurisdiction, made with your own counsel. The flow plays the disclosure and the instance stores the recording, but neither decides what you are required to say.
Step 1: Create or check your Connect Customer instance
Open the AWS console, search for Connect Customer and choose Get started (or Add an instance if you already have one). Every new instance is a Connect Customer instance. If you have an older instance, open it, choose Connect Customer in the navigation pane and enable it. The AI agent features used here are not part of Connect Customer Basic.
- Identity management: choose between storing users in Connect, linking a directory, or SAML 2.0. You cannot change this after creating the instance, so involve whoever owns identity at your company.
- Access URL: this label must be unique across all Connect instances in all regions and cannot be changed later.
- Telephony: choose Receive inbound calls. Enable outbound calling only if you need it.
- Data storage: by default Connect creates a bucket for recordings, transcripts and exports, encrypted with AWS KMS. Recording is switched on per flow later.
Trap to avoid
AWS lists agentic voice among the features that exist only in Connect Customer, and warns that flows using them can fail at runtime if the instance is switched to Connect Customer Basic. If agentic features stop working, check the instance still has Connect Customer enabled before blaming your configuration.The full AWS walkthrough is Create a Connect Customer instance.
Step 2: Claim a phone number
In the Connect admin website choose Channels, then Phone numbers, then Claim a number. Pick a DID (local) or toll-free number, add a description, and save. You can attach a flow now or after you publish one in Step 10. In the US you can ask for a specific area code.
If no numbers appear for your country, or you see a message that the number could not be claimed, AWS says the fix is a support case rather than a retry. Numbers claimed for a contact center also carry a daily charge whether or not a call arrives, so claim one for testing rather than several. Our cost breakdown for an AI voice agent shows where the pennies per minute go.
Reference: Get a local toll-free or DID phone number.
Step 3: Set up permissions for admins and for the AI agent
There are two separate permission questions, and mixing them up causes confusing failures later.
| Who | What they need | Where |
|---|---|---|
| The person building it | All access to AI agents, AI prompts and AI guardrails (AI agent designer), plus bots, flows and flow modules (Channels and Flows) | Users, then Security profiles |
| The AI agent itself | A security profile that grants only the tools it should be able to use, such as specific flow modules or gateway tools | Selected inside the AI agent's configuration |
AWS reuses the security profile model for AI agents, so the same least-privilege thinking you apply to human agents applies here. An AI agent can only invoke tools its profile allows. Start narrow and widen deliberately. See Assign security profile permissions to AI agents.
Step 4: Create the orchestrator AI agent
- In the admin website open AI agent designer, then AI agents, then Create AI agent.
- Choose Orchestration as the AI agent type.
- Under Copy from existing, choose SelfServiceOrchestrator. This is the system self-service agent, and starting from it gives you working defaults instead of a blank page.
- In the Security Profiles section, select the profile you created in Step 3.
Do not publish yet. The agent needs tools and a prompt first. If you are unsure whether a Connect AI agent is the right choice compared with fixed Lex intents or a Bedrock agent, read Amazon Lex vs AI Agent in Amazon Connect first.
Step 5: Add tools, starting with fake ones
Tools are how the agent acts. The orchestrator supports three kinds, and knowing the difference saves a lot of confusion.
| Tool type | What it does | Use it for |
|---|---|---|
| MCP tool | Calls a backend through the Model Context Protocol and keeps the conversation going. Sources are Connect's built-in tools, flow modules converted into tools, or third-party tools through an Amazon Bedrock AgentCore Gateway | Real lookups and actions: order status, booking changes, creating a case |
| Return to Control | Ends the AI conversation and hands control back to the flow, with the tool name and inputs stored as Lex session attributes. Complete and Escalate are included by default | Finishing the call, transferring to a person, or any step that must run as a fixed flow |
| Constant | Returns a fixed string you configure, and the conversation continues | Testing the conversation before real systems are connected |
Build in this order. First add Constant tools that return realistic sample data, such as a booking record, and get the conversation right. Then replace each one with a real MCP tool. Prompt problems and integration problems look identical when they happen together, and separating them early is the cheapest debugging you will do.
Two limits are worth knowing now. MCP tool calls time out after 30 seconds, so slow back ends need a different design. And you will probably want to replace the default Escalate tool with one that carries context, so the person who picks up the call does not start from zero. An illustrative input schema:
{
"type": "object",
"required": ["reason", "summary", "callerIntent"],
"properties": {
"reason": {
"type": "string",
"enum": ["caller_requested_person", "tool_failure", "out_of_scope", "policy_exception", "caller_distressed"]
},
"summary": {
"type": "string",
"maxLength": 500,
"description": "What the caller wanted, what was tried, and why a person is needed"
},
"callerIntent": { "type": "string" }
}
}Reference: Use agentic self-service and AI agent MCP tools.
Step 6: Write the prompt for a voice channel
The SelfServiceOrchestrator comes with a default orchestration prompt you can use as is or replace. For a voice line, two requirements matter more than tone.
- Replies must be wrapped in message tags. Orchestrator AI agents only show or speak text inside those tags, so a prompt that omits the instruction produces a caller who hears silence and a log full of replies nobody received.
- Everything inside the tags is read aloud, so write for the ear: full sentences, no markdown, lists, emoji or brackets, and codes read out through the spell tag. AWS documents the tags for speed, pauses, spelling and emotion, and recommends plain punctuation first.
You are the phone assistant for {{company}}. Callers hear everything you write, spoken aloud.
Format every reply like this:
<message>
What the caller should hear, in plain spoken sentences.
</message>
Rules:
- Begin every turn with a <message> block, even before calling a tool.
- Never use lists, markdown, emoji or brackets inside a message.
- Read codes and reference numbers with <spell>CODE</spell>.
- Read back names, phone numbers and dates and wait for confirmation.
- Use only the tools you have been given. If a tool fails twice, or the caller asks for a person, call Escalate.
- When the job is finished and the caller needs nothing else, call Complete.Keep it short at first. Long prompts add latency to every turn and hide which instruction is doing the work. Add a rule only when a test call shows you need it. Reference: How to use orchestrator AI agents.
When the agent has tools, a prompt and a security profile, choose Publish. Then go to the AI Agents page, find Default AI Agent Configurations and select your agent in the Self Service row.
Step 7: Create the conversational AI bot
The flow does not talk to the AI agent directly. It talks to a conversational AI bot, which hands the conversation to the agent.
- Go to Routing, then Flows, then Conversational AI, and create a bot. Create it inside the Connect admin website, because the toggle in the next step is only supported for bots created there.
- Open the bot's Configuration tab and switch on the agent assist intent, which is the Amazon Lex built-in intent named AMAZON.QinConnectIntent. Choose Confirm in the dialog.
- Choose Build language for the locale. Changes are not active until the build succeeds, and an Unbuilt changes label tells you something is pending.
- Create a bot alias and make sure Use in flow and flow modules is enabled on it, otherwise the bot will not appear in the flow designer.
Heads up
AWS says this intent cannot be combined with intents that have no specific utterances, such as the QnA and Bedrock agent intents, in the same bot locale. If you inherited a bot with those, use a new bot for the voice agent.Reference: Create an agent assist intent.
Step 8: Choose the voice and the speech model
Callers judge the agent by how it sounds and how well it hears, so make these choices on purpose. There are two places to configure, and they must agree.
| Setting | Where | What to choose |
|---|---|---|
| Speech recognition (path A) | Bot, Speech configuration | Voice provider: Amazon Connect agentic voice. Speech model preference: Advanced, which AWS describes as a streaming recognizer with lower latency and natural turn-taking |
| Speech-to-speech (path B) | Bot locale, Speech model, Edit | Model type Speech-to-Speech, voice provider Amazon Nova Sonic, then Confirm and Build language |
| Voice | Flow, Set voice block | Path A: provider Amazon Connect agentic voice, then language and voice with a listen-to-sample link. Path B: override speaking style to Generative, provider Amazon, and one of the Nova Sonic voices |
For path B, AWS lists the launch voices as Matthew (en-US), Amy (en-GB), Olivia (en-AU) and Lupe (es-US). Choose a voice that matches the bot locale and check the current list before you commit, because it will change.
Two rules save an afternoon. The language in the Set voice block must match the locale of the bot, otherwise the Get customer input block returns an error. And if your callers switch languages, AWS offers multilingual voices (Katie, Blake, Brooke, Ronald and Gemma at the time of writing) that work from a single bot locale, with the agent following the caller's language when your prompt tells it to. Note that the first greeting is spoken in the language you wrote it in, because the agent has not heard the caller yet.
For every voice option side by side, including Polly, ElevenLabs and brand voices, see Amazon Connect Custom Voice: Every Voice Option. References: Agentic voice configuration guide and Configure Amazon Nova Sonic speech-to-speech.
Step 9: Build the contact flow
Go to Routing, then Flows, choose Create flow and name it. A voice-agent flow is short on purpose. The intelligence lives in the agent; the flow decides what happens at the start, at the end and when something fails.
- Set voice: your language and voice from Step 8.
- Call recording, if you record calls: use the recording block in the flow designer. The instance creates the bucket, but AWS says recording itself is switched on in a flow.
- Get customer input: on the Amazon Lex tab choose your bot and alias. Under Customer prompt or bot initialization choose Text-to-speech or chat text and write the opening line, including any AI and recording disclosure your counsel requires.
- Check contact attributes after the Default output: set the namespace to Lex, the key to Session attributes, and the session attribute key to Tool. Add one condition per Return to Control tool you use, for example Complete and Escalate.
- Complete goes to Disconnect. Escalate goes through Set working queue and Transfer to queue. Optionally copy the escalation context from the Lex session attributes into contact attributes first, so the human agent sees it.
- No match, Timeout and Error outputs on every block go somewhere deliberate: a spoken apology and the human queue, never a dead end.
That last point is where first versions often fail in front of real callers. The Get customer input block has Timeout, Default and Error branches, and any branch you leave unconnected is a call that ends in silence. Reference: Create a flow and add your conversational AI bot and Get customer input.
Step 10: Publish, attach the number and place a test call
- Save and Publish the flow. Only published flows are available to attach to a number.
- Go to Channels, Phone numbers, open your number, set Flow / IVR to the flow and save.
- Call the number from a real phone, not a softphone on a fast office connection.
Test deliberately instead of chatting at it. A useful first set:
| Test | What you are checking |
|---|---|
| Say a normal request | The happy path works with the Constant tools |
| Interrupt mid-sentence | The agent stops talking and responds to the correction |
| Say a phone number slowly, with pauses | The agent does not cut you off between digit groups |
| Ask for a person | Escalate transfers with context and the queue answers |
| Ask something outside scope | The agent declines rather than invents |
| Stay silent for ten seconds | The timeout branch speaks and recovers |
| Call from a mobile in a noisy place | Recognition holds up outside a quiet office |
Once the conversation is right, swap each Constant tool for its MCP tool and run the same list again. Reference: Attach a claimed phone number to a flow.
Step 11: Tune turn-taking and interruptions
Most complaints about voice agents are about timing: talking over people, or waiting too long. The agentic voice settings are Lex session attributes that you set in the Get customer input block or from a Lambda function.
| Setting | Default | When to change it |
|---|---|---|
| End-of-turn confidence threshold (x-amz-lex:audio:end-confidence-threshold) | 0.7, range 0.5 to 0.9 | Raise to about 0.9 when callers dictate account numbers or codes; lower toward 0.5 for quick yes or no answers, and test for cut-offs first |
| End-of-turn silence timeout (x-amz-lex:audio:end-timeout-ms) | 640 ms, range 500 to 10,000 | Raise to 6,000 to 8,000 ms for dictated values. Values outside the range are rejected rather than clamped |
| Barge-in (x-amz-lex:allow-interrupt) | On | Turn off only for prompts that must be heard in full, such as a legal disclosure, and turn it back on afterwards |
| Language hints (x-amz-lex:audio:locale-override) | Not set | Set when a line is genuinely multilingual. It takes no intent or slot suffix |
AWS's advice is to scope these to the specific intent and slot that needs them rather than applying one aggressive default everywhere, because a global change alters the pacing of every turn. And if the caller waits through a long tool call, play a short holding phrase instead of letting the line go quiet. Reference: Agentic voice best practices.
When it does not work: the usual suspects
| Symptom | Likely cause | Fix |
|---|---|---|
| The call connects but the caller hears nothing from the agent | The prompt does not tell the agent to wrap replies in message tags | Add the formatting rule and republish the AI agent |
| The bot is missing from the Get customer input dropdown | The bot is not built, the alias has Use in flow and flow modules switched off, or the bot is in another region (cross-region bots need extra handling) | Build the language, enable the alias option, and keep the bot in the same region as the instance. For cross-region or older bots, AWS describes tagging the bot AmazonConnectEnabled = True |
| Get customer input goes straight to the Error branch | The Set voice language does not match the bot locale | Make them the same locale, or set the language with a Set contact attributes block |
| The agent cuts off callers reading digits | End-of-turn settings are too aggressive for dictation | Raise the threshold and timeout for that step only |
| Long silence before the agent answers | A tool call is slow, or the prompt is long | Speak a holding phrase first, shorten the prompt, and remember the 30-second MCP limit |
| Agentic features stopped working | The instance was switched to Connect Customer Basic | Re-enable Connect Customer on the instance |
| The agent intent will not enable | The bot has QnA or Bedrock agent intents in the same locale, or was created outside the Connect site | Use a new bot created in the Connect admin website |
From working demo to production
A demo answers a call. A production line survives the thousandth one. What changes between them is mostly not configuration:
- Tool design: narrow, validated, idempotent tools, with business rules enforced in the tool and not only in the prompt.
- A regression set of real call scenarios that you re-run on every prompt, model or voice change.
- Call review: a scheduled sample scored by a person, alongside the AI agent metrics Connect Customer provides.
- A staged rollout, such as after-hours or overflow traffic first, with a tested way to switch back.
- A named owner for prompts, knowledge and escalation rules.
Our architecture and build guide covers these layers in depth, our guide to AI voice agent integration with Amazon Connect covers how each one attaches to the contact flow, and the cost breakdown shows what a month of calls costs on AWS list prices. If you would rather have the system built and operated for you, see our AI voice agent development service or read how we built an intake agent for a law firm.
Frequently asked questions
How do I add an AI voice agent to Amazon Connect?
Create or enable an Amazon Connect Customer instance, claim a phone number, create an orchestrator AI agent with tools and a prompt, create a conversational AI bot with the agent assist intent enabled, choose a voice and speech model, build a contact flow that calls the bot from a Get customer input block, then publish the flow and attach it to the number. Test with fake tools first, then connect real systems.
Do I need to write code to set up an AI voice agent on Amazon Connect?
The agent, prompt, bot, voice and flow are configured in the Connect console. Connecting your own systems usually needs more: either a flow module that calls your backend, or an MCP server reached through an Amazon Bedrock AgentCore Gateway. Code is typically needed behind those tools, not in the conversation setup.
Why does my Amazon Connect AI agent say nothing on the call?
Orchestrator AI agents only show or speak text that is wrapped in message tags. If the prompt does not instruct the agent to format replies that way, callers receive no spoken response. Add the formatting rule to the prompt and republish the AI agent.
How do I test an Amazon Connect AI agent before connecting real systems?
Use Constant tools. A Constant tool returns a fixed string you configure, and the conversation continues, so you can simulate a booking lookup or order status and tune the conversation before any integration exists. Replace each one with a real tool once the dialogue is right.
Which voices can an Amazon Connect AI voice agent use?
Agentic voice offers many voices across more than fifty languages, including multilingual voices that can follow a caller who switches language. If you use Amazon Nova Sonic speech-to-speech, AWS lists launch voices Matthew for US English, Amy for UK English, Olivia for Australian English and Lupe for US Spanish. Check the current list in the AWS documentation, because it changes.
How long can an MCP tool take on an Amazon Connect AI agent?
MCP tool invocations time out after 30 seconds, and the request does not complete if it exceeds that. Design slow back ends to respond quickly, for example by acknowledging a request and following up, and have the agent say a short holding phrase so the caller is not left in silence.
How do I hand a caller from the AI agent to a human?
Give the agent an Escalate Return to Control tool. When it is invoked, control returns to the contact flow, which checks the Tool session attribute and routes the call through Set working queue and Transfer to queue. Capture a reason and summary in the tool so the person who answers has context.
Need help with AI Voice Agents? Talk to the engineers.
Tell us what you want to build. You'll get a straight answer on scope, approach and cost from the people who do the work.
Keep reading
Related guides
Voice AI
Amazon Lex vs AI Agent in Amazon Connect: Which to Use for Voice
Lex, the Amazon Connect AI agent and a Bedrock agent are not three rivals. This guide explains how they fit together, the hard limits between them, and how to choose for your calls.
14 min read
Voice AI
AI Voice Agent for Amazon Connect: Architecture and Build Guide
A practical guide to building an AI voice agent on Amazon Connect — the build options, the call flow, what drives cost, and the mistakes that sink pilots.
17 min read
Voice AI
Amazon Connect Custom Voice: Every Voice Option for an AI Voice Agent
What 'custom voice' can mean in Amazon Connect, and how to set up each option: agentic voice, Amazon Polly, Nova Sonic, ElevenLabs and Brand Voice, with the security setup and the traps that cost time.
11 min read