ThunderPhone 2.0 is live.Self-serve, from 2¢/min.Read the announcement

Facts verified against published sources on .

Dynamics 365 Contact Center AI voice agent integration

Microsoft Dynamics 365 Contact Center can send a caller to a ThunderPhone AI voice agent from a Copilot Studio Transfer conversation node, through the session border controller (SBC) you already run for Direct Routing. The call carries up to five SIP X-headers, including the conversation id. When the agent is done, it hangs up, your SBC brings the caller back into Dynamics 365, and an HTTP Request node fetches the hand-off.

Of the platforms ThunderPhone documents, this one asks the most of your own telephony team. Microsoft transfers only to a phone number and authenticates Direct Routing by certificate, so your SBC does the translation in both directions.

Setup guide: Connect from Microsoft Dynamics 365 has the SBC routing, the X-header rules, the transfer entry and the HTTP Request node.

What it does for Dynamics 365 teams

Your Copilot Studio flow decides which calls go to the AI agent. The ThunderPhone agent then holds the phone conversation: it understands the caller in their own words, can switch languages mid-call, and uses its own tools such as calendars and CRMs. Copilot Studio passes what it knows in X-headers and gets back a summary and intent it can route on.

How the call flows

In. You pick a phone number for the agent on your SBC, such as +14155550188. The SBC routes calls to that number to the agent's SIP address over TLS on port 5061, and passes the X-headers through unchanged. The SBC answers ThunderPhone's password challenge with the endpoint's credentials; if it can't do digest authentication, the endpoint can use an IP allowlist of the SBC's public address instead.

In Copilot Studio, the Transfer conversation node uses External phone number transfer to that number and adds X-headers. No Microsoft header carries the conversation id, so you add it as X-Call-ID, which ThunderPhone stores as the call's external_call_id. Up to four more headers, such as X-Customer-Tier, reach the prompt as variables like {{sip_x_customer_tier}}.

Back. The agent returns the call: it says goodbye and hangs up. Bringing the caller back into Dynamics 365 is your SBC's job. Microsoft documents one way in for a call with context: a new call through the SBC to a number registered in Dynamics 365, with UUI whose keys match context variables you set up under Workstreams. A Copilot Studio HTTP Request node then fetches the hand-off by conversation id.

Setup at a glance

  1. Confirm SIP X-header support on the Transfer conversation node in your environment.
  2. Create a SIP endpoint for the SBC to use, and route a number on the SBC to it over TLS.
  3. Add the Transfer conversation node with X-Call-ID and any other headers you need.
  4. Add a return transfer entry to the agent, and work out with your SBC vendor how the caller reaches Dynamics 365 again when the agent hangs up.
  5. Add the HTTP Request node for the hand-off lookup, then test a call end to end.

Limits and prerequisites

  • An SBC is required. Dynamics 365 has to be connected through Azure Communication Services Direct Routing to an SBC you run, with a public certificate, TLS 1.2 on port 5061 and SRTP toward Microsoft. Microsoft can't dial a SIP address or answer a password challenge.
  • Five headers. Microsoft sends at most five X-headers, with names up to 64 characters and values up to 256, and keeps only the first five on an incoming call. Dynamics 365 takes at most 128 characters of UUI.
  • Lookup only on the way back. Microsoft doesn't document reading headers on a BYE, so the hand-off comes back only through the HTTP lookup.
  • Your routing, not ours. How the caller re-enters Dynamics 365 depends on your SBC. Plan that leg with your SBC vendor before you go live.

Frequently asked questions

Can a ThunderPhone AI agent take calls from Dynamics 365 Contact Center?

Yes, through your SBC. A Copilot Studio Transfer conversation node transfers the call to a phone number, your SBC routes that number to the agent's SIP address, and the conversation id travels in an X-Call-ID header so the call can be found again later.

Does it work with Copilot Studio?

Yes. Copilot Studio's Transfer conversation node, with SIP X-header support, sends the call and its context, and an HTTP Request node in Copilot Studio fetches the hand-off afterwards.

Does this work with Microsoft Teams Phone?

The guide covers Dynamics 365 Contact Center. Teams Phone with Direct Routing also runs through an SBC you operate, and an SBC can send calls to a ThunderPhone SIP address, but there's no Teams-specific guide, so plan and test that path with your SBC vendor.

How does the caller get back into Dynamics 365?

Through your SBC. Microsoft documents one way in for a call with context: a new call through the SBC to a number registered in Dynamics 365, carrying UUI that matches context variables you set up under Workstreams. Work out with your SBC vendor how the caller reaches that number when the agent hangs up. An HTTP Request node then looks up the hand-off by the conversation id you sent in X-Call-ID.

Is ThunderPhone on Microsoft Marketplace?

No. ThunderPhone isn't listed on Microsoft Marketplace today. You buy it directly and connect it through your SBC as described here.

Related