Connect Conversations API (classic)
If you already have a Twilio Conversations API (classic) service, you can connect it to Conversation Orchestrator with a bridge. Messages sync bidirectionally between your classic service and Conversation Orchestrator, so your existing application keeps working while gaining access to Conversation Memory and Conversation Intelligence features.
The bridge is also the only way to use the Chat channel with Conversation Orchestrator.
- Create a Twilio account.
- Buy a voice- and SMS-enabled phone number.
- Store your Twilio credentials in environment variables.
- Create a Conversations (classic) service.
- Create a memory store.
Create a conversation configuration that points at your Conversations API (classic) service.
1CREATE_CONFIGURATION_REQUEST_OBJ=$(cat << EOF2{3"displayName": "classic-bridge-config",4"description": "Bridges a Conversations (classic) service into Conversation Orchestrator",5"conversationGroupingType": "GROUP_BY_PARTICIPANT_ADDRESSES",6"memoryStoreId": "YOUR_MEMORY_STORE_ID",7"conversationsV1Bridge": {8"serviceId": "YOUR_CLASSIC_SERVICE_SID"9}10}11EOF12)13curl -X POST "https://conversations.twilio.com/v2/ControlPlane/Configurations" \14--json "$CREATE_CONFIGURATION_REQUEST_OBJ" \15-u $TWILIO_API_KEY:$TWILIO_API_SECRET
Replace YOUR_CLASSIC_SERVICE_SID with your Conversations API (classic) Service SID, and replace YOUR_MEMORY_STORE_ID with the ID of your memory store.
Poll the returned statusUrl until status is COMPLETED.
- Send a message through your existing Conversations API (classic) conversation.
- Wait three seconds for the bridge to sync.
- List your Conversation Orchestrator conversations:
1curl -X GET "https://conversations.twilio.com/v2/Conversations" \2-u $TWILIO_API_KEY:$TWILIO_API_SECRET
Continue using the Conversations API (classic) endpoints to send replies. The bridge syncs them with Conversation Orchestrator.
You can combine a classic bridge with capture rules for other channels. For example, bridge Chat from classic while capturing voice calls passively. With GROUP_BY_PROFILE, voice calls and bridged chat conversations group together when Conversation Orchestrator matches the same customer profile across channels:
1CREATE_CONFIGURATION_REQUEST_OBJ=$(cat << EOF2{3"displayName": "classic-bridge-with-voice",4"description": "Bridges a classic service and captures inbound voice calls",5"conversationGroupingType": "GROUP_BY_PROFILE",6"memoryStoreId": "YOUR_MEMORY_STORE_ID",7"conversationsV1Bridge": {8"serviceId": "YOUR_CLASSIC_SERVICE_SID"9},10"channelSettings": {11"VOICE": {12"captureRules": [13{14"from": "*",15"to": "YOUR_TWILIO_PHONE_NUMBER",16"metadata": { "callType": "PSTN" }17}18]19}20}21}22EOF23)24curl -X POST "https://conversations.twilio.com/v2/ControlPlane/Configurations" \25--json "$CREATE_CONFIGURATION_REQUEST_OBJ" \26-u $TWILIO_API_KEY:$TWILIO_API_SECRET
- Don't configure capture rules and a classic bridge for the same traffic. Pick one integration per channel.
conversationGroupingTypecontrols grouping for channels outside classic. Inside classic, each classic conversation maps 1:1 to a Conversation Orchestrator conversation.
- Ingestion modes: See how the bridge relates to passive and active ingestion.
- Channels: Channel-specific behavior, including Chat.
- Profiles: How bridged participants resolve to profiles.
- Troubleshooting: Resolve common errors.