Contact memory is a short brief kept on each contact: who they are, what they asked for, commitments made and their preferences. After a call, Tried rewrites the brief from the conversation. On the next call, the agent reads it, so a returning caller does not have to repeat themselves.
Turn it on#
In the agent's settings panel, under Agent Settings, Contact memory has two switches (contact_memory_config):
| Switch | Field | Effect |
|---|---|---|
| Use memory in calls | enable_read |
The caller's memory is added to the prompt. Flow nodes marked Skip with contact memory can be skipped. |
| Update memory after each call | enable_update |
After each call, the memory is rewritten from the conversation. |
Turn on both for most agents. An agent can read without updating, for example an outbound reminder agent that should not change what the main agent remembers.
Memory is linked to the call's contact, which is matched by phone number, so it works on phone calls.
How memory is used in a call#
With Use memory in calls on and a memory saved for the caller:
- If your prompt contains
{{contact_memory}}, the memory is inserted there. - Otherwise it is added to the end of the system prompt under "## What you remember about this caller from earlier calls".
Write the prompt to use it naturally: "If you remember something about the caller, use it, but confirm details that may have changed, such as their address."
Skip steps the memory already answers#
In a conversation flow, a conversation node can turn on Skip with contact memory (skippable). When the call reaches that node and the caller has a memory, an LLM checks whether the memory already provides what the node's instruction collects or confirms. If it does, the node is skipped once and the flow follows its first edge.
How memory is updated#
After the call ends and post-call analysis has run, Tried sends the current memory, the call summary and the transcript to gpt-5.6-terra with the workspace memory prompt, and stores the new brief. The brief is capped at 2,000 characters.
Without an OpenAI key, a simple merge is used instead: one dated line per conversation with the call summary and custom analysis values, keeping the newest 12 lines.
The memory prompt#
The memory prompt is set once per workspace under Settings, Integrations, Contact memory & fields, Post call memory (up to 2,000 characters). The default is:
Keep a short, factual brief about this contact for future conversations: who they are, what they asked for, decisions and commitments made, open follow-ups, and stated preferences (time, channel, language). Drop small talk. Update or remove facts that the latest conversation changed. Use short bullet points.
Reset to default restores it. Through the API, use GET and PUT /contact-memory-settings.
View and edit memory#
On Contacts, open a contact to see Memory and Prior conversations. Select Edit (or Add) to change the brief by hand.
| Action | Endpoint |
|---|---|
| Read a contact's memory | GET /contacts/{contact_id}/memory |
| Replace it (null clears it) | PUT /contacts/{contact_id}/memory with { "memory": "..." } |
| Save one past call to memory | POST /contacts/{contact_id}/memory/save-call with { "call_id": "..." } |
Pricing#
Each memory update costs $0.01 per conversation. A conversation is billed at most once, even if it is saved again. Reading memory is free.
Privacy#
The memory brief is stored on the contact, not on the call, so a call's data storage setting and retention period do not remove it. To delete it, clear the memory or delete the contact. POST /privacy/delete-phone-number deletes the contact along with its memory.
Fields#
{ "contact_memory_config": { "enable_read": true, "enable_update": true } }| Field | Type | Default |
|---|---|---|
contact_memory_config.enable_read |
boolean | off |
contact_memory_config.enable_update |
boolean | off |