Channels
Channels are the ways that your customers communicate with you, such as voice calls, SMS, or WhatsApp. Conversation Orchestrator supports voice, SMS, RCS, and WhatsApp channels. You can also bring Chat traffic in through the Conversations API (classic) bridge.
The following table summarizes the supported channels, their address formats, and their supported ingestion modes.
| Channel | Address format | Example | Ingestion modes |
|---|---|---|---|
| Voice (PSTN) | E.164 phone number | +15559876543 | Passive and active. |
| Voice (CLIENT) | Client identity string | agent-1 | Passive and active. |
| Voice (PUBLIC_SIP) | SIP URI or E.164 phone number | sip:user@example.com | Passive and active. |
| SMS | E.164 phone number | +15551234567 | Passive and active. |
| RCS | E.164 phone number | +15551234567 | Passive and active. |
| E.164 phone number | +15551234567 | Passive and active. | |
| Chat | Identity string (for example, user123) | user123 | Conversations API (classic) bridge only. |
To use passive ingestion with the voice channel, you don't need to change your existing voice application or TwiML.
To distinguish between standard phone calls, in-app calls, and SIP calls, use the callType parameter in your capture rule. Conversation Orchestrator interprets the call's address format based on the value that you provide for callType.
| callType | Use for | Address format |
|---|---|---|
PSTN | Standard phone calls over the public network. | E.164 phone number (for example, +15551234567). |
CLIENT | In-app calls using the Twilio Voice SDK. | Client identity string, for example agent-1. |
PUBLIC_SIP | Calls over a SIP interface. | SIP URI or E.164 phone number. |
When you save voice capture rules, Conversation Orchestrator automatically provisions call filtering and real-time transcription for matching calls.
Each text-to-speech fragment is a separate communication. A single agent response might produce three to five communications depending on how the TTS engine chunks the text. Intelligence operators with the COMMUNICATION trigger fire once per fragment. Plan intelligence operator usage and webhook handler capacity accordingly.
Voice communications have a content.type of TRANSCRIPTION with the transcribed utterance, and a resourceId linking to the Call SID (CA...). Each communication represents a single transcription event (one utterance), not the full call. See Voice timeouts behave differently to learn about how this affects the conversation lifecycle.
Don't use wildcard identities with CLIENT capture rules
For scenarios with dynamic or numerous client identities, use active TwiML ingestion instead of passive capture rules. Don't use wildcard identities with the CLIENT call type.
Don't combine voice capture rules with Conversation Relay
Remove voice capture rules from your configuration if you're using active TwiML ingestion with Conversation Relay. If both a voice capture rule and <ConversationRelay> apply to the same call, you pay for speech-to-text twice: once through Conversation Relay and once through the Real-Time Transcription stream created by the capture rule.
For per-call control, use active ingestion with TwiML.
Conversation Orchestrator resolves Twilio-owned phone numbers as agents. The other address resolves to a customer if a profile is found, or to UNKNOWN otherwise.
Each SMS communication has a content.type of TEXT with the full message body, and a resourceId that links to the Twilio Message SID (SM...). The recipients array includes a deliveryStatus field for delivery confirmation.
1{2"id": "conv_communication_01...",3"content": {4"type": "TEXT",5"text": "Hello, I need help with my order"6},7"resourceId": "SMfeac57b2df969b5e88ca43fe6629ef9f",8"recipients": [9{10"deliveryStatus": "DELIVERED"11}12]13}
Conversation Orchestrator captures the text body of each RCS message. Media attachments on inbound or outbound RCS messages aren't added to the conversation.
Addresses use E.164 format, like SMS. You can pass WhatsApp numbers with or without a whatsapp: prefix. Conversation Orchestrator treats your registered WhatsApp Business Account number as the agent. Communications support text and template messages. Media attachments on inbound or outbound WhatsApp messages aren't added to the conversation.
Chat is only available through the Conversations API (classic) bridge. Bridged chat participants use customer-defined identity strings (for example, user123), and the classic ConversationSid is carried on the address as channelId.
Because Chat identities are arbitrary strings rather than phone numbers, Conversation Orchestrator can't infer the participant types from address format.
- Ingestion modes: Capture rule syntax, active ingestion, and classic bridge.
- Profiles: How participant types and profiles resolve per channel.
- Conversation lifecycle: Timeouts, including voice-specific behavior.
- Troubleshooting: Messages not captured, wrong participant types, and more.