Conversations API (v2) - Conversation endpoints
Legal information
Conversation Orchestrator, including the APIs, may use artificial intelligence or machine learning technologies and is subject to the terms of the Predictive and Generative AI/ML Features Addendum. For details on AI usage and data, see the AI Nutrition Facts for Real-Time Transcription and Conversation Relay.
Conversation Orchestrator is not a HIPAA Eligible Service or PCI compliant and should not be enabled in workflows that are subject to HIPAA or PCI.
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.
Create a new Conversation
List Conversations
Fetch Conversation
Update a Conversation
Partially Update a Conversation
Delete a Conversation (async)
POST/v2/Conversations
Base url: https://conversations.twilio.com (base url)
Create a new conversation
application/jsonThe ID of an existing configuration.
conv_configuration_01k1etx3jbfx88476ccja0889dOptional list of Participants to create with the Conversation.
50Created
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function createConversationWithConfig() {11const conversation = await client.conversations.v2.conversations.create({12configurationId: "configurationId",13});1415console.log(conversation.id);16}1718createConversationWithConfig();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
GET/v2/Conversations
Base url: https://conversations.twilio.com (base url)
Retrieve a list of Conversations.
Filters for specific statuses
ACTIVEINACTIVECLOSEDThe resource identifier (such as callSid or messageSid) to filter conversations.
Maximum number of items to return in a single response
50Example: 50Minimum: 1Maximum: 1000A URL-safe, base64-encoded token representing the page of results to return
eyJwYWdlIjoyLCJxdWVyeSI6ImJvb2tzIn0=1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function listConversationByAccount() {11const conversations = await client.conversations.v2.conversations.list({12limit: 20,13});1415conversations.forEach((c) => console.log(c.id));16}1718listConversationByAccount();
Response
1{2"conversations": [3{4"id": "id",5"accountId": "accountId",6"configurationId": "configurationId",7"status": "ACTIVE",8"name": "name",9"createdAt": "2009-07-06T20:30:00Z",10"updatedAt": "2009-07-06T20:30:00Z",11"configuration": {12"displayName": "My Support Config",13"description": "description",14"conversationGroupingType": "GROUP_BY_PROFILE",15"memoryStoreId": "memoryStoreId",16"channelSettings": {},17"statusCallbacks": [18{19"url": "https://www.example.com",20"method": "POST"21}22],23"intelligenceConfigurationIds": [24"intelligenceConfigurationIds"25],26"memoryExtractionEnabled": false,27"conversationsV1Bridge": {28"serviceId": "IS00000000000000000000000000000000"29}30},31"participants": [32{33"id": "id",34"conversationId": "conversationId",35"accountId": "accountId",36"name": "name",37"type": "CUSTOMER",38"profileId": "profileId",39"addresses": [40{41"channel": "SMS",42"address": "address",43"channelId": "channelId"44}45],46"createdAt": "2009-07-06T20:30:00Z",47"updatedAt": "2009-07-06T20:30:00Z"48}49]50}51],52"meta": {53"key": "key",54"pageSize": 20,55"previousToken": "previousToken",56"nextToken": "nextToken"57}58}
GET/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Retrieve a Conversation.
OK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function fetchConversation() {11const conversation = await client.conversations.v212.conversations("Sid")13.fetch();1415console.log(conversation.id);16}1718fetchConversation();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
PUT/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Update an existing conversation
application/jsonOK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function updateConversationById() {11const conversation = await client.conversations.v212.conversations("Sid")13.update({14status: "ACTIVE",15});1617console.log(conversation.id);18}1920updateConversationById();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
PATCH/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Partially update the details of an existing Conversation.
application/jsonThe state of the Conversation.
ACTIVEINACTIVECLOSEDPartial configuration update for an existing conversation. Only statusCallbacks can be modified.
OK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function patchConversationById() {11const conversation = await client.conversations.v212.conversations("Sid")13.patch({14name: "Miss Christine Morgan",15});1617console.log(conversation.id);18}1920patchConversationById();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
DELETE/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Asynchronously delete a conversation and all associated data. Returns 202 Accepted with an Operation-Id for status tracking via GET /v2/ControlPlane/Operations/{operationId}.
Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Operation accepted for asynchronous processing
URL to poll for operation status.
https://conversations.twilio.com/v2/ControlPlane/Operations/proc_job_01h9d8r0vte3hz8tykdj329t7rNamed resource identifiers associated with this operation. Keys depend on the operation type:
- config-create, config-update, config-delete: configurationId
- conversation-delete: conversationId
{"configurationId":"cfg_configuration_01h9d8r0vte3hz8tykdj329t7r"}1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function deleteConversationAsync() {11await client.conversations.v2.conversations("Sid").remove();12}1314deleteConversationAsync();
Response
1{2"related": {},3"statusUrl": "https://www.example.com"4}