Skip to contentSkip to navigationSkip to topbar

Memory API (v1) - Data Mapping endpoints


(information)

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(link takes you to an external page). 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(link takes you to an external page). 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(link takes you to an external page). If your account hasn't been migrated, you'll be redirected to the legacy Console where these products won't appear.

Overview

overview page anchor

Tag description

Endpoints


Create a Data Mapping

create-data-mapping page anchor

POST/v1/ControlPlane/Stores/{storeId}/DataMappings

Base url: https://memory.twilio.com (base url)

Create a new data mapping to connect an external data source to this Memory Store. For DATASET types, validates that all mapped Trait Groups and traits exist and that dataset field data types match their respective mapped trait data types.

Request

create-data-mapping-request page anchor

Path parameters

create-data-mapping-path-parameters page anchor
Property nameTypeRequiredPIIDescription
storeIdstring
required
Not PII

A unique Memory Store ID using Twilio Type ID (TTID) format

Example: mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$
Encoding type:application/json
Schema
Property nameTypeRequiredPIIDescriptionChild properties
displayNamestring
required

Name of the data mapping.

Example: crm-contactsPattern: ^[a-zA-Z][a-zA-Z0-9-_.]*$Min length: 1Max length: 128

descriptionstring

Optional

A human readable description of this resource, up to 512 characters.

Example: Syncs customer data from CRM dataset to profile traitsMin length: 1Max length: 512

isEnabledboolean

Optional

Flag indicating whether the data mapping is active. When true, data will be ingested and mapped according to the configuration. When false, the data mapping will be inactive and no data will be ingested into the Memory Store.

Default: trueExample: true

mappingTo
oneOf:
required

Details of where to map data items to. Each data mapping to type has its own set of configuration parameters and destination specific properties.

Example: {"type":"TRAITS","mappings":[{"fieldName":"primary_email","traitGroup":"Contact","traitName":"email"}]}

mappingFrom
oneOf:
required

Details of where to map data items from. Each data mapping from type has its own set of configuration parameters and source specific properties.

Example: {"type":"DATASET","datasetId":"tdi_dataset_00000000000000000000000000"}
202400404409429500503

Data mapping creation request accepted.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Data mapping creation request accepted for processing.Max length: 512

statusUrlstring

Optional

URI to check operation status.

Max length: 512
Create a Data MappingLink to code sample: Create a Data Mapping
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function createDataMapping() {
11
const dataMapping = await client.memory.v1
12
.dataMappings("mem_store_00000000000000000000000000")
13
.create({
14
displayName: "crm-contacts",
15
mappingTo: {
16
type: "TRAITS",
17
mappings: [
18
{
19
fieldName: "fieldName",
20
expression: "expression",
21
traitGroup: "Contact",
22
traitName: "email",
23
},
24
],
25
},
26
mappingFrom: {
27
type: "DATASET",
28
datasetId: "tdi_dataset_00000000000000000000000000",
29
},
30
});
31
32
console.log(dataMapping.message);
33
}
34
35
createDataMapping();

Response

Note about this response
1
{
2
"message": "message",
3
"statusUrl": "statusUrl"
4
}

GET/v1/ControlPlane/Stores/{storeId}/DataMappings

Base url: https://memory.twilio.com (base url)

Get a list of data mappings configured for this Memory Store.

Property nameTypeRequiredPIIDescription
storeIdstring
required

A unique Memory Store ID using Twilio Type ID (TTID) format

Example: mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$
Property nameTypeRequiredPIIDescription
pageSizeinteger

Optional

The maximum number of items to return per page, maximum of 100.

Default: 50Minimum: 1Maximum: 100

pageTokenstring

Optional

The token for the page of results to retrieve.

Max length: 500

orderByenum<string>

Optional

Either 'ASC' or 'DESC' to sort results ascending or descending respectively.

Default: DESCPossible values:
ASCDESC

typeenum<string>

Optional

Filter data mappings by type.

Default: DATASETExample: DATASETPossible values:
DATASET
200400404429500503

DataMappings retrieved successfully.

SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
dataMappingsarray[object]

Optional

List of DataMappings associated with the Memory Store.

Max items: 100

metaobject

Optional

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function listDataMappings() {
11
const dataMappings = await client.memory.v1
12
.dataMappings("mem_store_00000000000000000000000000")
13
.list({
14
orderBy: "DESC",
15
type: "DATASET",
16
limit: 20,
17
});
18
19
dataMappings.forEach((d) => console.log(d.displayName));
20
}
21
22
listDataMappings();

Response

Note about this response
1
{
2
"dataMappings": [
3
{
4
"displayName": "crm-contacts",
5
"description": "description",
6
"isEnabled": true,
7
"mappingTo": {},
8
"mappingFrom": {},
9
"id": "mem_datamapping_00000000000000000000000000",
10
"createdAt": "2009-07-06T20:30:00Z",
11
"updatedAt": "2009-07-06T20:30:00Z",
12
"version": 3
13
}
14
],
15
"meta": {
16
"key": "key",
17
"pageSize": 50,
18
"nextToken": "nextToken",
19
"previousToken": "previousToken"
20
}
21
}

Retrieve a Data Mapping

fetch-data-mapping page anchor

GET/v1/ControlPlane/Stores/{storeId}/DataMappings/{dataMappingId}

Base url: https://memory.twilio.com (base url)

Retrieve the details of a specific data mapping by its unique ID.

Property nameTypeRequiredPIIDescription
storeIdstring
required

A unique Memory Store ID using Twilio Type ID (TTID) format

Example: mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$

dataMappingIdstring
required

A unique DataMapping ID using Twilio Type ID (TTID) format

Example: mem_datamapping_00000000000000000000000000Pattern: ^mem_datamapping_[0-7][0-9a-z]{25}$
200400404429500503

Data mapping details retrieved successfully.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
displayNamestring

Optional

Name of the data mapping.

Example: crm-contactsPattern: ^[a-zA-Z][a-zA-Z0-9-_.]*$Min length: 1Max length: 128

descriptionstring

Optional

A human readable description of this resource, up to 512 characters.

Example: Syncs customer data from CRM dataset to profile traitsMin length: 1Max length: 512

isEnabledboolean

Optional

Flag indicating whether the data mapping is active. When true, data will be ingested and mapped according to the configuration. When false, the data mapping will be inactive and no data will be ingested into the Memory Store.

Default: trueExample: true

mappingTo
oneOf:

Optional

Details of where to map data items to. Each data mapping to type has its own set of configuration parameters and destination specific properties.

Example: {"type":"TRAITS","mappings":[{"fieldName":"primary_email","traitGroup":"Contact","traitName":"email"}]}

mappingFrom
oneOf:

Optional

Details of where to map data items from. Each data mapping from type has its own set of configuration parameters and source specific properties.

Example: {"type":"DATASET","datasetId":"tdi_dataset_00000000000000000000000000"}

idstring

Optional

The unique identifier for the data mapping.

Example: mem_datamapping_00000000000000000000000000Pattern: ^mem_datamapping_[0-7][0-9a-z]{25}$

createdAtstring<date-time>

Optional

The ISO 8601 timestamp when the data mapping was created.

Example: 2026-01-15T10:30:00Z

updatedAtstring<date-time>

Optional

The ISO 8601 timestamp when the data mapping was last updated.

Example: 2026-01-15T11:45:00Z

versioninteger

Optional

The current version number of the DataMapping. Incremented on each successful update.

Example: 3Minimum: 1
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function fetchDataMapping() {
11
const dataMapping = await client.memory.v1
12
.dataMappings(
13
"mem_store_00000000000000000000000000",
14
"mem_datamapping_00000000000000000000000000"
15
)
16
.fetch();
17
18
console.log(dataMapping.displayName);
19
}
20
21
fetchDataMapping();

Response

Note about this response
1
{
2
"createdAt": "2009-07-06T20:30:00Z",
3
"description": "description",
4
"displayName": "crm-contacts",
5
"id": "mem_datamapping_00000000000000000000000000",
6
"isEnabled": true,
7
"mappingFrom": {},
8
"mappingTo": {},
9
"updatedAt": "2009-07-06T20:30:00Z",
10
"version": 3
11
}

Update a Data Mapping

patch-data-mapping page anchor

PATCH/v1/ControlPlane/Stores/{storeId}/DataMappings/{dataMappingId}

Base url: https://memory.twilio.com (base url)

Partially update a data mapping. Only the fields provided in the request body will be updated, including replacing the entire contents of the mappings array.

For DATASET types, validates that all mapped Trait Groups and traits exist and that dataset field data types match their respective mapped trait data types.

Property nameTypeRequiredPIIDescription
if-Matchstring

Optional

Allows for optimistic concurrency control by making the request conditional. Server will only act if the resource's current Entity Tag (ETag) matches the one provided, preventing accidental overwrites.

Example: "eyJpZCI6ImFuX2lkIiwidiI6MX0"Max length: 100
Property nameTypeRequiredPIIDescription
storeIdstring
required

A unique Memory Store ID using Twilio Type ID (TTID) format

Example: mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$

dataMappingIdstring
required

A unique DataMapping ID using Twilio Type ID (TTID) format

Example: mem_datamapping_00000000000000000000000000Pattern: ^mem_datamapping_[0-7][0-9a-z]{25}$
Encoding type:application/json
Schema
Property nameTypeRequiredPIIDescriptionChild properties
displayNamestring

Optional

Name of the data mapping.

Example: crm-contactsPattern: ^[a-zA-Z][a-zA-Z0-9-_.]*$Min length: 1Max length: 128

descriptionstring

Optional

A human readable description of this resource, up to 512 characters.

Example: Syncs customer data from CRM dataset to profile traitsMin length: 1Max length: 512

isEnabledboolean

Optional

Flag indicating whether the data mapping is active. When true, data will be ingested and mapped according to the configuration. When false, the data mapping will be inactive and no data will be ingested into the Memory Store.

Default: trueExample: true

mappingTo
oneOf:

Optional

Details of where to map data items to. Each data mapping to type has its own set of configuration parameters and destination specific properties.

Example: {"type":"TRAITS","mappings":[{"fieldName":"primary_email","traitGroup":"Contact","traitName":"email"}]}
202400404429500503

Data mapping update request accepted.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Data mapping update request accepted for processing.Max length: 512

statusUrlstring

Optional

URI to check operation status.

Max length: 512
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function patchDataMapping() {
11
const dataMapping = await client.memory.v1
12
.dataMappings(
13
"mem_store_00000000000000000000000000",
14
"mem_datamapping_00000000000000000000000000"
15
)
16
.patch({
17
displayName: "crm-contacts",
18
});
19
20
console.log(dataMapping.message);
21
}
22
23
patchDataMapping();

Response

Note about this response
1
{
2
"message": "message",
3
"statusUrl": "statusUrl"
4
}

Delete a Data Mapping

delete-data-mapping page anchor

DELETE/v1/ControlPlane/Stores/{storeId}/DataMappings/{dataMappingId}

Base url: https://memory.twilio.com (base url)

Delete a data mapping from the Memory Store. This action cannot be undone.

Property nameTypeRequiredPIIDescription
storeIdstring
required

A unique Memory Store ID using Twilio Type ID (TTID) format

Example: mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$

dataMappingIdstring
required

A unique DataMapping ID using Twilio Type ID (TTID) format

Example: mem_datamapping_00000000000000000000000000Pattern: ^mem_datamapping_[0-7][0-9a-z]{25}$
202400404429500503

Data mapping deletion request accepted.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Data mapping deletion request accepted for processing.Max length: 512

statusUrlstring

Optional

URI to check operation status.

Max length: 512
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function deleteDataMapping() {
11
await client.memory.v1
12
.dataMappings(
13
"mem_store_00000000000000000000000000",
14
"mem_datamapping_00000000000000000000000000"
15
)
16
.remove();
17
}
18
19
deleteDataMapping();

Response

Note about this response
1
{
2
"message": "message",
3
"statusUrl": "statusUrl"
4
}