Memory API (v1) - Identifiers 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.
Add Profile Identifier
List Profile Identifiers
Retrieve Profile Identifier
Modify Profile Identifier
Remove Profile Identifier
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.
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}$application/jsonIdentifier type as configured in the service's Identity Resolution Settings.
phoneMin length: 2Max length: 30Raw 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).
+13175556789Max length: 255Identifier association accepted.
Identifier accepted for processing.Max length: 5121// 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 createProfileIdentifier() {11const identifier = await client.memory.v112.identifiers(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000"15)16.create({17idType: "idType",18value: "value",19});2021console.log(identifier.message);22}2324createProfileIdentifier();
Response
1{2"message": "Identifier accepted for processing."3}
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.
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}$A list of identifiers.
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 listProfileIdentifiers() {11const identifiers = await client.memory.v112.identifiers(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000"15)16.list({ limit: 20 });1718identifiers.forEach((i) => console.log(i.idType));19}2021listProfileIdentifiers();
Response
1{2"identifiers": [3{4"idType": "idType",5"values": [6"values"7]8}9]10}
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.
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}$Identifier type configured for the service (for example email, phone, or externalId).
emailMin length: 2Max length: 30Identifier values associated with the requested type.
Identifier type defined in Identity Resolution Settings.
emailMin length: 2Max length: 30Server managed collection of stored values for the identifier type. Identifier values are normalized according to the corresponding identifier settings and ordered chronologically.
["primary@example.com","backup@example.com"]Max items: 1001// 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 fetchProfileIdentifier() {11const identifier = await client.memory.v112.identifiers(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"idType"16)17.fetch();1819console.log(identifier.idType);20}2122fetchProfileIdentifier();
Response
1{2"idType": "idType",3"values": [4"values"5]6}
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.
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}$Identifier type configured for the service (for example email, phone, or externalId).
emailMin length: 2Max length: 30application/jsonThe identifier type to update (e.g., email, phone).
phoneMin length: 2Max length: 30New value to store for the identifier. Normalization rules from the corresponding identifier settings apply.
+13175556798Max length: 255Identifier update accepted.
Identifier update accepted.Max length: 5121// 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 patchProfileIdentifier() {11const identifier = await client.memory.v112.identifiers(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"idType"16)17.patch({18idType: "idType",19oldValue: "oldValue",20newValue: "newValue",21});2223console.log(identifier.message);24}2526patchProfileIdentifier();
Response
1{2"message": "Identifier update accepted."3}
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.
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}$Identifier type configured for the service (for example email, phone, or externalId).
emailMin length: 2Max length: 30When true, removes every stored value for the identifier type in a single operation. Defaults to false.
falseIdentifier removal accepted.
Identifier removal accepted.Max length: 5121// 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 deleteProfileIdentifier() {11await client.memory.v112.identifiers(13"mem_store_00000000000000000000000000",14"mem_profile_00000000000000000000000000",15"idType"16)17.remove();18}1920deleteProfileIdentifier();
Response
1{2"message": "Identifier removal accepted."3}