Five9 AI voice agent integration
Five9 runs outside AI voice agents through its AI Agent Connect add-on. Your IVR script hands the caller to the agent with Five9's call details attached. When the agent is done, it hangs up with routing headers on the SIP BYE, and the script reads them into call variables to send the caller to the right skill.
Accreditation status: Five9 limits AI Agent Connect to AI providers it has accredited, and Five9's implementation team does the setup. ThunderPhone isn't on Five9's accredited list yet. Ask your Five9 account team or ThunderPhone support before you plan around this integration.
Setup guide: Connect from Five9 has the endpoint request, the header names, the transfer entry and the test steps.
What it does for Five9 teams
The agent answers first, inside the IVR script you already run. It can take routine calls end to end, such as order status, rescheduling or a balance question answered from a connected system. When a caller needs a person, the agent decides where they should go and says so in headers the script understands, so the caller lands in the right skill instead of a general queue.
Because the decision travels as data, your script stays in charge. You agree route values with whoever maintains the script, for example SkillTransfer to Support, and the agent picks between them by name in its prompt.
How the call flows
In. The script's Third Party Transfer module dials a number that ThunderPhone maps to the agent. Five9 dials a number rather than a SIP address and is identified by its source addresses, so the agent's SIP endpoint uses an IP allowlist of your Five9 data centers' signalling ranges plus that dial-in number. Five9 passes values such as call.ANI, call.DNIS, call.call_id and call.campaign_name. Other providers' Five9 integrations document them on the wire as X-CallANI, X-CallDNIS, X-CallID, X-CallCampaign and similar headers; each one becomes a prompt variable, such as {{sip_x_callcampaign}}. X-CallID is stored as the call's external_call_id.
Back. The agent returns the call. It says goodbye and hangs up, and the BYE carries the four headers Five9's script reads:
X-RouteTypeandX-RouteValue: where the script sends the caller, such as the Support skill.X-RouteReason: the agent's intent label, such asbilling_dispute.X-CustomMetaData: the hand-off id.
With Return After 3rd Party Call turned on, the script continues. For the agent's full summary, an IVR Query module calls ThunderPhone's hand-off lookup with call.call_id.
Setup at a glance
- Create a SIP endpoint for the agent with
authset toip_allowlist, Five9's signalling ranges and the number Five9 will dial. - Ask Five9's implementation team to point Third Party Transfer at that number over TLS or TCP, and to turn on Return After 3rd Party Call.
- Add a return transfer entry with the four routing headers, one per destination if you route to several skills.
- Map the headers to call variables in the script, and add a Query module for the summary.
- Call in, ask for a person, and check that the script routes the caller with the variables filled.
Limits and prerequisites
- Accreditation. ThunderPhone isn't a Five9-accredited AI Agent Connect provider yet, and the add-on is Five9's to sell and set up.
- Cold hand-back. Five9's guide documents routing data on the
BYE, not acceptance of aREFER, so the script performs a cold transfer. - Header limits. Five9 reads the four routing headers, not
User-to-User. ThunderPhone keeps each header value to 256 bytes, and Five9 recommends about ten custom headers at most. - Shared addresses. Every Five9 customer sends from the same addresses. Pick a long dial-in number nobody would guess, make sure Five9 sends it to ThunderPhone rather than out to the phone network, and don't publish it.
- No UDP. The endpoint takes TLS or TCP only. Five9 doesn't publish its transport, so confirm it.
Frequently asked questions
Is ThunderPhone a Five9-accredited AI Agent Connect provider?
Not yet. Five9 limits AI Agent Connect to providers it has accredited, and ThunderPhone isn't on that list today. Ask your Five9 account team or ThunderPhone support before planning a rollout on it.
Can the AI agent route a Five9 caller to a specific skill?
Yes. The agent hangs up with X-RouteType and X-RouteValue headers, such as SkillTransfer and Support, and your IVR script routes on them. Add one return entry per destination, each with its own name and route value, and tell the agent in its prompt when to use each one.
What Five9 call data does the AI agent see?
The headers Five9 sends with the call, which other providers document as X-CallANI, X-CallDNIS, X-CallID, X-CallSessionID, X-CallCampaign and X-AgentID. Each becomes a variable the prompt can use. Check the exact names on your first test call.
How does the Five9 agent desktop get the AI's summary?
The BYE carries the intent label and hand-off id in headers the script maps to call variables. The summary itself is longer, so the script fetches it from ThunderPhone's hand-off lookup API with an IVR Query module, using call.call_id, and can pass it on to the agent who takes the call.
What does a Five9 call to the AI agent cost?
ThunderPhone bills the agent's minutes at its normal per-minute rate, with no phone-number charge because no ThunderPhone number carries the call. Five9 bills AI Agent Connect and its own side of the call separately. See ThunderPhone pricing.