Skip to contentSkip to navigationSkip to topbar

Memory API (v1) - Identifiers 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


POST/v1/Stores/{storeId}/Profiles/{profileId}/Identifiers

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

Asynchronously attach a new identifier value to a profile. When multiple values exist for an idType, ordering, limits, and uniqueness checks are enforced by the corresponding identifier settings limitPolicy and reflect any normalization. If the identifier already exists and points to another profile, resolution rules or merge processes may apply. Use the identifier specific endpoint to inspect, update, or remove existing values.

Request

create-profile-identifier-request page anchor

Path parameters

create-profile-identifier-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}$

profileIdstring
required

The unique identifier for the profile using Twilio Type ID (TTID) format.

Example: mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$
Encoding type:application/json
SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
idTypestring
required

Identifier type as configured in the service's Identity Resolution Settings.

Example: phoneMin length: 2Max length: 30

valuestring
required

Raw value captured for the identifier. The service may normalize this value according to the normalization rule defined in the identifier settings before storage or matching (for example E.164 formatting for phone numbers).

Example: +13175556789Max length: 255
202308400401403404429500503

Identifier association accepted.

SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Identifier accepted for processing.Max length: 512
Add Profile IdentifierLink to code sample: Add Profile Identifier
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 createProfileIdentifier() {
11
const identifier = await client.memory.v1
12
.identifiers(
13
"mem_store_00000000000000000000000000",
14
"mem_profile_00000000000000000000000000"
15
)
16
.create({
17
idType: "idType",
18
value: "value",
19
});
20
21
console.log(identifier.message);
22
}
23
24
createProfileIdentifier();

Response

Note about this response
1
{
2
"message": "Identifier accepted for processing."
3
}

List Profile Identifiers

list-profile-identifiers page anchor

GET/v1/Stores/{storeId}/Profiles/{profileId}/Identifiers

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

Retrieve all identifier types linked to a profile along with their stored values. Use this to audit which external keys (phone, email, externalId, etc.) are currently associated. Values are returned in the order enforced by each identifier settings limitPolicy and reflect any normalization applied by the service.

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}$

profileIdstring
required

The unique identifier for the profile using Twilio Type ID (TTID) format.

Example: mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$
200301400401403404429500503

A list of identifiers.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
identifiersarray[object]

Optional

Max items: 50
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 listProfileIdentifiers() {
11
const identifiers = await client.memory.v1
12
.identifiers(
13
"mem_store_00000000000000000000000000",
14
"mem_profile_00000000000000000000000000"
15
)
16
.list({ limit: 20 });
17
18
identifiers.forEach((i) => console.log(i.idType));
19
}
20
21
listProfileIdentifiers();

Response

Note about this response
1
{
2
"identifiers": [
3
{
4
"idType": "idType",
5
"values": [
6
"values"
7
]
8
}
9
]
10
}

Retrieve Profile Identifier

fetch-profile-identifier page anchor

GET/v1/Stores/{storeId}/Profiles/{profileId}/Identifiers/{idType}

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

Retrieve all stored values for a specific identifier type on a profile. Values are normalized according to the configured identifier settings and returned in the order determined by its limitPolicy.

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}$

profileIdstring
required

The unique identifier for the profile using Twilio Type ID (TTID) format.

Example: mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$

idTypestring
required

Identifier type configured for the service (for example email, phone, or externalId).

Example: emailMin length: 2Max length: 30
200301400401403404429500503

Identifier values associated with the requested type.

Schema
Property nameTypeRequiredPIIDescriptionChild properties
idTypestring

Optional

Identifier type defined in Identity Resolution Settings.

Example: emailMin length: 2Max length: 30

valuesarray[string]

Optional

Server managed collection of stored values for the identifier type. Identifier values are normalized according to the corresponding identifier settings and ordered chronologically.

Example: ["primary@example.com","backup@example.com"]Max items: 100
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 fetchProfileIdentifier() {
11
const identifier = await client.memory.v1
12
.identifiers(
13
"mem_store_00000000000000000000000000",
14
"mem_profile_00000000000000000000000000",
15
"idType"
16
)
17
.fetch();
18
19
console.log(identifier.idType);
20
}
21
22
fetchProfileIdentifier();

Response

Note about this response
1
{
2
"idType": "idType",
3
"values": [
4
"values"
5
]
6
}

Modify Profile Identifier

patch-profile-identifier page anchor

PATCH/v1/Stores/{storeId}/Profiles/{profileId}/Identifiers/{idType}

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

Asynchronously replace one of the stored values associated with the identifier type on a profile. newValue is normalized according to the configured identifier settings.

If the new identifier already exists and points to another profile, merge processes may apply.

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}$

profileIdstring
required

The unique identifier for the profile using Twilio Type ID (TTID) format.

Example: mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$

idTypestring
required

Identifier type configured for the service (for example email, phone, or externalId).

Example: emailMin length: 2Max length: 30
Encoding type:application/json
SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
idTypestring
required

The identifier type to update (e.g., email, phone).

Example: phoneMin length: 2Max length: 30

oldValuestring
required

Existing stored value to replace.

Example: +13175556789Max length: 255

newValuestring
required

New value to store for the identifier. Normalization rules from the corresponding identifier settings apply.

Example: +13175556798Max length: 255
202308400401403404409429500503

Identifier update accepted.

SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Identifier update accepted.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 patchProfileIdentifier() {
11
const identifier = await client.memory.v1
12
.identifiers(
13
"mem_store_00000000000000000000000000",
14
"mem_profile_00000000000000000000000000",
15
"idType"
16
)
17
.patch({
18
idType: "idType",
19
oldValue: "oldValue",
20
newValue: "newValue",
21
});
22
23
console.log(identifier.message);
24
}
25
26
patchProfileIdentifier();

Response

Note about this response
1
{
2
"message": "Identifier update accepted."
3
}

Remove Profile Identifier

delete-profile-identifier page anchor

DELETE/v1/Stores/{storeId}/Profiles/{profileId}/Identifiers/{idType}

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

Asynchronously remove stored values for the identifier type. The optional removeAll query parameter allows bulk removal; otherwise the service selects a single value to delete using the identifier settings limitPolicy.

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}$

profileIdstring
required

The unique identifier for the profile using Twilio Type ID (TTID) format.

Example: mem_profile_00000000000000000000000000Pattern: ^mem_profile_[0-7][0-9a-z]{25}$

idTypestring
required

Identifier type configured for the service (for example email, phone, or externalId).

Example: emailMin length: 2Max length: 30
Property nameTypeRequiredPIIDescription
removeAllboolean

Optional

When true, removes every stored value for the identifier type in a single operation. Defaults to false.

Default: false
202308400401403404429500503

Identifier removal accepted.

SchemaExample
Property nameTypeRequiredPIIDescriptionChild properties
messagestring

Optional

Example: Identifier removal accepted.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 deleteProfileIdentifier() {
11
await client.memory.v1
12
.identifiers(
13
"mem_store_00000000000000000000000000",
14
"mem_profile_00000000000000000000000000",
15
"idType"
16
)
17
.remove();
18
}
19
20
deleteProfileIdentifier();

Response

Note about this response
1
{
2
"message": "Identifier removal accepted."
3
}