Memory API (v1) - Trait Group 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 a Trait Group
List Trait Groups
Retrieve a Trait Group
Update Trait Group
Delete a Trait Group
POST/v1/ControlPlane/Stores/{storeId}/TraitGroups
Base url: https://memory.twilio.com (base url)
Creates a Trait Group with declarative trait schemas for this Memory Store.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$application/jsonUnique name of the Trait Group
ContactPattern: ^[a-zA-Z0-9_\-\.]+$Min length: 1Max length: 64description of the Trait Group
This Trait Group contains traits related to contact information.Max length: 1024Map of traits belonging to this Trait Group, keyed by trait name.
{"email":{"dataType":"STRING","description":"User's email address"},"dob":{"dataType":"STRING","description":"User's date of birth"}}Max properties: 951// 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 createTraitGroup() {11const traitGroup = await client.memory.v112.traitGroups("mem_store_00000000000000000000000000")13.create({14displayName: "Contact",15});1617console.log(traitGroup.message);18}1920createTraitGroup();
Response
1{2"message": "message",3"statusUrl": "statusUrl"4}
GET/v1/ControlPlane/Stores/{storeId}/TraitGroups
Base url: https://memory.twilio.com (base url)
Returns a list of Trait Groups for this Memory Store, with optional traits information.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$Whether to include trait definitions in the response
falseThe maximum number of items to return per page, maximum of 100.
50Minimum: 1Maximum: 100Either 'ASC' or 'DESC' to sort results ascending or descending respectively.
DESCPossible values: ASCDESC1// 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 listTraitGroups() {11const traitGroups = await client.memory.v112.traitGroups("mem_store_00000000000000000000000000")13.list({14orderBy: "DESC",15limit: 20,16});1718traitGroups.forEach((t) => console.log(t.displayName));19}2021listTraitGroups();
Response
1{2"meta": {3"key": "key",4"pageSize": 50,5"nextToken": "nextToken",6"previousToken": "previousToken"7},8"traitGroups": [9{10"displayName": "Contact",11"description": "description",12"traits": {},13"version": 314}15]16}
GET/v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName}
Base url: https://memory.twilio.com (base url)
Retrieve a specific Trait Group by its unique name for this Memory Store, with optional traits information.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$A unique Name of the TraitGroup
ContactMin length: 1Max length: 64Whether to include trait definitions in the response
trueThe maximum number of items to return per page, maximum of 100.
50Minimum: 1Maximum: 100Either 'ASC' or 'DESC' to sort results ascending or descending respectively.
DESCPossible values: ASCDESC1// 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 fetchTraitGroup() {11const traitGroup = await client.memory.v112.traitGroups("mem_store_00000000000000000000000000", "traitGroupName")13.fetch({14includeTraits: true,15orderBy: "DESC",16});1718console.log(traitGroup.traitGroup);19}2021fetchTraitGroup();
Response
1{2"meta": {3"key": "key",4"pageSize": 50,5"nextToken": "nextToken",6"previousToken": "previousToken"7},8"traitGroup": {9"displayName": "Contact",10"description": "description",11"traits": {},12"version": 313}14}
PATCH/v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName}
Base url: https://memory.twilio.com (base url)
Partially updates a Trait Group. Only the fields provided in the request body will be updated. For traits: existing traits with matching keys will be updated, new keys will be added. To remove a trait, set its dataType to an empty string ("") - this serves as an explicit deletion marker.
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.
"eyJpZCI6ImFuX2lkIiwidiI6MX0"Max length: 100A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$A unique Name of the TraitGroup
ContactMin length: 1Max length: 64application/jsonUpdated description of the Trait Group
Updated Trait Group contains traits related to contact information.Max length: 1024Map of traits to add, update, or remove in this Trait Group, where the key is the trait name. - To update/add a trait: provide the complete TraitDefinition object - To remove a trait: set dataType to an empty string ("")
951// 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 patchTraitGroup() {11const traitGroup = await client.memory.v112.traitGroups("mem_store_00000000000000000000000000", "traitGroupName")13.patch({14description: "description",15});1617console.log(traitGroup.message);18}1920patchTraitGroup();
Response
1{2"message": "message",3"statusUrl": "statusUrl"4}
DELETE/v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName}
Base url: https://memory.twilio.com (base url)
Deletes the Trait Group and all associated Traits from the Memory Store.
A unique Memory Store ID using Twilio Type ID (TTID) format
mem_store_00000000000000000000000000Pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$A unique Name of the TraitGroup
ContactMin length: 1Max length: 641// 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 deleteTraitGroup() {11await client.memory.v112.traitGroups("mem_store_00000000000000000000000000", "traitGroupName")13.remove();14}1516deleteTraitGroup();
Response
1{2"message": "message",3"statusUrl": "statusUrl"4}