Memory API (v1) - Conversation Summaries endpoints
Legal information
Conversation Memory, 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 more details on AI usage and data, see the AI Nutrition Facts.
Conversation Memory is not a HIPAA Eligible Service or PCI compliant and should not be enabled in workflows that are subject to HIPAA or PCI.
Conversation Memory is not intended for use with sensitive information about individuals. Twilio does not control what information comes from conversation channels and relies on you to ensure the data in customer profiles aligns with our acceptable use policy. Twilio does have limited guardrails in the form of a prompt exclusion that is designed to provide a minimal screening against inclusion of GDPR special category data. As a reminder our profile technology uses generative artificial intelligence. Because generative artificial intelligence can make mistakes, review all outputs to ensure that the profile is correct.
Conversations products are only available in the new Twilio Console. If your account hasn't been migrated, you'll be redirected to the legacy Console where these products won't appear.
Create Conversation Summaries
List Conversation Summaries
Retrieve Conversation Summary
Update Conversation Summary
Delete Conversation Summary
POST/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries
Base url: https://memory.twilio.com (base url)
Create one or more conversation summaries associated with the specified profile. Supports both single summary creation and batch creation of up to 10 summaries. Supports request compression for large batch operations and response compression for the response. All summaries will be automatically indexed for semantic search capabilities. The content summary can be up to 4KB in length. Each summary will be created with a unique ID in Twilio Type ID (TTID) format.
Compression algorithms supported by the client (e.g., gzip, deflate, br)
gzip, deflate, brPattern: ^[a-zA-Z0-9, .-]*$Max length: 200Compression algorithm used for the request body (e.g., gzip, deflate, br)
gzipPossible values: gzipdeflatebrcompressA unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$The unique identifier for the profile using Twilio Type ID (TTID) format.
mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$application/jsonArray of summaries to create in a single batch operation.
1Max items: 10Conversation summary creation accepted and is being processed.
Confirmation message for the operation.
Summaries creation acceptedMin length: 1Max length: 2551// 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 createProfileConversationSummary() {11const conversationSummary = await client.memory.v112.conversationSummaries(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000"15)16.create({17summaries: [18{19source: "conversations",20content: "content",21occurredAt: "2009-07-06T20:30:00Z",22conversationId: "conv_conversation_00000000000000000000000000",23},24],25});2627console.log(conversationSummary.message);28}2930createProfileConversationSummary();
Response
1{2"message": "message"3}
GET/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries
Base url: https://memory.twilio.com (base url)
Retrieve a paginated list of conversation summaries for a specific profile. Supports response compression for large datasets.
Compression algorithms supported by the client (e.g., gzip, deflate, br)
gzip, deflate, brPattern: ^[a-zA-Z0-9, .-]*$Max length: 200A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$The unique identifier for the profile using Twilio Type ID (TTID) format.
mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$The maximum number of items to return per page, maximum of 1000.
50Minimum: 1Maximum: 1000The token for the page of results to retrieve.
5001// 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 listProfileConversationSummaries() {11const conversationSummaries = await client.memory.v112.conversationSummaries(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000"15)16.list({ limit: 20 });1718conversationSummaries.forEach((c) => console.log(c.source));19}2021listProfileConversationSummaries();
Response
1{2"meta": {3"key": "key",4"pageSize": 50,5"nextToken": "nextToken",6"previousToken": "previousToken"7},8"summaries": [9{10"source": "conversations",11"content": "content",12"occurredAt": "2009-07-06T20:30:00Z",13"conversationId": "conv_conversation_00000000000000000000000000",14"id": "mem_summary_00000000000000000000000000",15"createdAt": "2009-07-06T20:30:00Z",16"updatedAt": "2009-07-06T20:30:00Z"17}18]19}
GET/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId}
Base url: https://memory.twilio.com (base url)
Retrieve a specific conversation summary by its ID for the given profile.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$The unique identifier for the profile using Twilio Type ID (TTID) format.
mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$The summary ID.
mem_summary_00000000000000000000000000Pattern: ^mem_summary_[0-7][0-9a-z]{25}$Conversation summary retrieved successfully.
The source system that generated the summary. Allows letters, numbers, spaces, and URL-safe symbols. Excludes URL-unsafe characters like quotes, angle brackets, and control characters.
conversationsPattern: ^[a-zA-Z0-9 _.-]+$Max length: 100The main content of the summary.
Customer discussed billing concerns and was satisfied with the resolution provided during this conversation.Min length: 1Max length: 4096The timestamp when the summary was originally created.
2025-01-15T10:15:30ZA unique identifier for the conversation using Twilio Type ID (TTID) format.
conv_conversation_00000000000000000000000000Pattern: ^conv_conversation_[0-7][0-9a-z]{25}$A unique identifier for the summary using Twilio Type ID (TTID) format.
mem_summary_00000000000000000000000000Pattern: ^mem_summary_[0-7][0-9a-z]{25}$The timestamp when the summary was created.
2025-01-15T10:30:45ZThe timestamp when the summary was last updated.
2025-01-15T10:30:45Z1// 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 fetchProfileConversationSummary() {11const conversationSummary = await client.memory.v112.conversationSummaries(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"mem_summary_00000000000000000000000000"16)17.fetch();1819console.log(conversationSummary.source);20}2122fetchProfileConversationSummary();
Response
1{2"id": "mem_summary_00000000000000000000000001",3"conversationId": "conv_conversation_00000000000000000000000000",4"content": "Customer discussed billing concerns and was satisfied with the resolution provided during this conversation.",5"source": "conversational_intelligence",6"occurredAt": "2025-01-15T14:30:00Z",7"createdAt": "2025-01-15T10:30:45Z",8"updatedAt": "2025-01-15T10:30:45Z"9}
PATCH/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId}
Base url: https://memory.twilio.com (base url)
Partially update a specific conversation summary by its ID. Only provided fields will be updated. The updated timestamp will be automatically set. This allows for selective updates without needing to provide all fields.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$The unique identifier for the profile using Twilio Type ID (TTID) format.
mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$The summary ID.
mem_summary_00000000000000000000000000Pattern: ^mem_summary_[0-7][0-9a-z]{25}$application/jsonThe source system that generated the summary. Allows letters, numbers, spaces, and URL-safe symbols. Excludes URL-unsafe characters like quotes, angle brackets, and control characters.
conversationsPattern: ^[a-zA-Z0-9 _.-]+$Max length: 100The main content of the summary.
Customer discussed billing concerns and was satisfied with the resolution provided during this conversation.Min length: 1Max length: 4096The timestamp when the summary was originally created. If not provided, defaults to the time the summary was received.
2025-01-15T10:15:30ZA unique identifier for the conversation using Twilio Type ID (TTID) format.
conv_conversation_00000000000000000000000000Pattern: ^conv_conversation_[0-7][0-9a-z]{25}$Conversation summary update accepted and is being processed.
Conversation summary update acceptedMax length: 2551// 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 patchProfileConversationSummary() {11const conversationSummary = await client.memory.v112.conversationSummaries(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"mem_summary_00000000000000000000000000"16)17.patch({18source: "conversations",19});2021console.log(conversationSummary.message);22}2324patchProfileConversationSummary();
Response
1{2"message": "message"3}
DELETE/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId}
Base url: https://memory.twilio.com (base url)
Delete a specific conversation summary by its ID. This action is irreversible.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$The unique identifier for the profile using Twilio Type ID (TTID) format.
mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$The summary ID.
mem_summary_00000000000000000000000000Pattern: ^mem_summary_[0-7][0-9a-z]{25}$Conversation summary deletion accepted and is being processed.
Conversation summary deletion acceptedMax length: 2551// 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 deleteProfileConversationSummary() {11await client.memory.v112.conversationSummaries(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"mem_summary_00000000000000000000000000"16)17.remove();18}1920deleteProfileConversationSummary();
Response
1{2"message": "message"3}