Conversation Memory (Actions)
Legal information
The Segment Conversation Memory Integration is not a HIPAA Eligible Service or PCI compliant and should not be enabled in workflows that are subject to HIPAA or PCI.
The Conversation Memory destination is a server-to-server integration that syncs profile data from Segment directly into Conversation Memory. Use this destination to create customer profiles and keep them up-to-date in a Conversation Memory Store, supporting downstream workflows that depend on rich, up-to-date profile data.
The Conversation Memory (Actions) destination provides the following benefits:
- Simplified setup: Data mapping for actions-based destinations happens during configuration, eliminating the need for manual setup.
- Clearer data mapping: Actions-based destinations let you define exactly how fields from your Segment events map to traits in your Conversation Memory Store.
- Dynamic field discovery: Segment loads identifiers and traits directly from your Conversation Memory Store, so mappings always reflect your actual store schema.
- Batch support: Segment batches profile upserts of up to 1,000 profiles per request, which reduces API call overhead.
- Merge behavior: When a profile already exists, Segment merges traits into the existing profile, overwriting existing keys and adding new keys.
Before connecting to the Conversation Memory destination, you must have a Twilio account that has Conversation Memory configured.
To connect the Conversation Memory destination:
- From the Segment web app, go to Connections > Catalog.
- Search for Conversation Memory in the Destinations Catalog and select the destination.
- Click Configure Conversation Memory.
- Select the source that will send data to Conversation Memory and follow the prompts to name your destination.
- On the Basic Settings page, enter:
- API Key: Your Twilio API Key, found in the Twilio Console under Builder tools > API Key & creds.
- API Secret: Your Twilio API Secret, provided when you create an API Key.
- Twilio Account ID: Your Twilio Account SID, found at the top of your Twilio Console homepage.
- Go to the Mappings tab. Click New Mapping and select Upsert Profile.
- In the mapping configuration:
- Select a Conversation Memory Store from the dropdown. Segment loads available stores from your Twilio account.
- Map Profile Identifiers: these are the identifier traits from your store (for example,
Contact.$.email,Contact.$.phone). - Optionally map Profile Traits: non-identifier traits (for example,
Contact.$.firstName,PurchaseHistory.$.lastPurchaseDate).
- Follow the steps in Customizing mappings.
- Toggle Enable Destination on, then click Save Changes.
Your Twilio API Secret. This is provided when you create an API Key in your Twilio Console under Account > API Keys & Tokens.
Your Twilio Account ID. This can be found at the top of your Twilio Console Dashboard.
Your Twilio API Key. You can find this in your Twilio Console under Account > API Keys & Tokens.
Build your own Mappings. Combine supported triggers with the following Conversation Memory-supported actions:
Mapping limits per destination
Individual destination instances support a maximum of 5 mappings.
Create or update Memora profiles. If a profile already exists, its traits are merged (new keys added, existing keys overwritten). Supports batching up to 1000 profiles.
Upsert Profile is a Cloud action. The default Trigger is type = "identify"
The Memora Store ID to use for this profile. This should be a valid Memora Store associated with your Twilio account.
Profile identifiers from all trait groups. At runtime, each event must contain at least one identifier with a non-null value, and at least two total non-null fields across identifiers and traits combined. Events with sparse data (e.g., only one identifier present) will be rejected. These fields are dynamically loaded from the selected Memora Store. When manually entering keys, use the format "TraitGroupName.$.traitName" (e.g., "Contact.$.email", "Contact.$.phone").
Optional
Traits for the profile from all trait groups. While this field is optional in the mapping configuration, at runtime each event must have at least two total non-null fields across identifiers and traits combined. If you map only one identifier, you must also map at least one trait that will have a value for your events. These fields are dynamically loaded from the selected Memora Store. When manually entering keys, use the format "TraitGroupName.$.traitName" (e.g., "Contact.$.firstName", "PurchaseHistory.$.lastPurchaseDate").
Delivery Overview displays observability information about the number of profile update events sent from Segment to Conversation Memory.
The Conversation Memory integration has the following pipeline view steps:
- Failed Delivery: Profile update events that Segment attempted to deliver to your Conversation Memory store, but that ultimately failed to be delivered. Failed delivery might indicate an issue with the connection, like invalid credentials, rate limits, or other error statuses received during delivery.
- Successful Delivery: Profile update events that Segment successfully delivered to your Conversation Memory store. You'll see the updated or created profile in your memory store.
Conversation Memory organizes traits into trait groups. When manually entering field keys in a mapping, use the format TraitGroupName.$.traitName.
For example:
Contact.$.emailContact.$.phoneContact.$.firstNamePurchaseHistory.$.lastPurchaseDate
Every event processed by the Upsert Profile action must meet the following requirements at runtime:
- At least one identifier field must have a non-null value.
- At least two total non-null fields must be present across identifiers and traits combined.
Twilio rejects events that don't satisfy these conditions and logs them as errors in the batch response. All other valid profiles in the same batch are still processed.
When a profile already exists in a Conversation Memory Store, the upsert merges incoming data:
- New trait keys: Added to the existing profile.
- Existing trait keys: Overwritten with the new value.
- Duplicate keys: If the same key appears in both the identifiers mapping and the traits mapping, the identifier value takes precedence.
The Upsert Profile action batches up to 1,000 profiles per API request. You can configure Batch size in the mapping settings for your Conversation Memory (Actions) destination, but actual batch sizes may be lower depending on event volume.
You can send computed traits and audiences generated using Engage to this destination as a user property. To learn more about Engage, schedule a demo.
For user-property destinations, an identify call is sent to the destination for each user being added and removed. The property name is the snake_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property order_completed_last_30days: true. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to false.
When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.
Real-time to batch destination sync frequency
Real-time audience syncs to Conversation Memory (Actions) may take six or more hours for the initial sync to complete. Upon completion, a sync frequency of two to three hours is expected.
Segment lets you change these destination settings from the Segment app without having to touch any code.
Your Twilio API Secret. This is provided when you create an API Key in your Twilio Console under Account > API Keys & Tokens.
Your Twilio Account ID. This can be found at the top of your Twilio Console Dashboard.
Your Twilio API Key. You can find this in your Twilio Console under Account > API Keys & Tokens.