Skip to contentSkip to navigationSkip to topbar
Page toolsOn this page
Looking for more inspiration?Visit the

Core concepts


This page explains the main objects in Conversation Orchestrator and how they fit together.


How Conversation Orchestrator works with Twilio

how-conversation-orchestrator-works-with-twilio page anchor

Conversation Orchestrator organizes your voice calls, SMS messages, and WhatsApp messages into conversations. You can observe traffic in your Twilio account and add communications to conversations using capture rules, or group communications into conversations directly using TwiML or the API.

Conversation Orchestrator uses a memory store to identify customers and keep information about them. When you add Conversation Intelligence, Twilio can analyze those conversations.



Conversation configuration

conversation-configuration page anchor

A conversation configuration is the top-level object in Conversation Orchestrator. It contains the settings that define how Conversation Orchestrator captures traffic and connects to other services. You can create as many conversation configurations as you need, and each conversation belongs to exactly one conversation configuration.

Create separate conversation configurations when your use cases have different requirements for channel mix, timers, memory store, or intelligence configurations. For example, a sales use case might allow customers to reply over several days before a conversation closes, while a high-throughput customer care use case might close conversations after 10 minutes of inactivity.

A configuration includes:

Conversation grouping

conversation-grouping page anchor

The conversationGroupingType on your configuration controls how new traffic groups into conversations.

TypeBehaviorWhen to use
GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPESeparate conversations per channel. SMS and Voice between the same numbers create different conversations.The default. Keeps channels separate.
GROUP_BY_PARTICIPANT_ADDRESSESSame conversation across channels when participants share an address.Omnichannel on the same addresses—customer can switch between SMS and Voice seamlessly.
GROUP_BY_PROFILEGroups by customer profile. The same customer from different devices or channels goes to one conversation.Preferred for production. Recommended when channels use different addresses (chat and voice).
(warning)

Grouping type is immutable

You can't change conversationGroupingType after creating a configuration. To switch grouping types, create a new configuration with the desired type, close existing conversations on the old configuration, migrate capture rules and channel settings, then delete the old configuration.

Grouping example

grouping-example page anchor

Kiran contacts you four times:

  1. SMS from +15551234567 to your number.
  2. Voice call from +15551234567 to your number.
  3. WhatsApp from +15551234567 to your number.
  4. SMS from +15559876543 (their other phone) to your number.

All four interactions pass the configuration's capture rules. The conversationGroupingType then decides how they land in conversations.

Grouping typeConversationsHow they group
GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE4SMS from +15551234567, Voice from +15551234567, WhatsApp from +15551234567, SMS from +15559876543.
GROUP_BY_PARTICIPANT_ADDRESSES2SMS + Voice + WhatsApp from +15551234567; SMS from +15559876543.
GROUP_BY_PROFILE1All interactions, if both phone numbers are linked to Kiran's profile.

Updating a configuration

updating-a-configuration page anchor

Update your conversation configuration by making a PUT request to the Configuration resource. Send the complete configuration object with every update. Any parameter that you omit from the PUT request body is deleted from the conversation configuration.

Configuration updates only apply to newly created conversations. Existing active conversations continue using the configuration that was in effect when they were created. To apply new settings to an active conversation, close it and let a new one be created.

The one exception is statusCallbacks. You can modify statusCallbacks on an active conversation configuration, and the change takes effect immediately.

Each account supports up to 10 conversation configurations and up to 100 capture rules per channel per configuration. For details, see Configuration limits.


A conversation is a record of interactions between participants. It's the container for all communications that occur during an interaction, including voice calls, SMS messages, and other supported channels.

Conversations move through three states: ACTIVE, INACTIVE, and CLOSED. See Conversation lifecycle for state transitions and timeouts.


A communication is the smallest unit of interaction within a conversation. Each communication represents a single event, such as an SMS message or a voice call transcription.

For messaging channels, the communication's content contains the message body. For voice channels, it contains the speech-to-text transcript. Each communication also includes an author, recipients with delivery status, a resourceId linking to the original Twilio resource (Message SID or Call SID), and timestamps.


A participant represents an actor involved in a conversation. Conversation Orchestrator assigns each participant a type that identifies their role.

TypeDescriptionHas profile
CUSTOMEREnd user or customer.Yes
HUMAN_AGENTLive agent handling the conversation.No
AI_AGENTAI or bot participant.No
AGENTGeneric agent when you can't distinguish.No
UNKNOWNType not determined. Profile resolution skipped.No

Only participants with type CUSTOMER get profiles. For how types are determined and how resolution runs, see Profiles.


A profile is a customer identity record stored in a memory store. Profiles let Conversation Orchestrator recognize returning customers across conversations, link multiple addresses (phone or chat) to one identity, and drive profile-based grouping.

Conversation Orchestrator matches each CUSTOMER participant to a profile using the participant's channel address. When a communication shares an address with an existing profile (for example, an SMS message and a voice call from the same E.164 number), Conversation Orchestrator links them to the same profile.