---
title: Memory
description: "Per-contact memory lets an agent recall preferences, facts, history and goals for a contact across conversations. One switch under Advanced, Privacy."
---

Memory lets an agent remember a contact between conversations. With **Enable
per-contact memory** on, the agent keeps preferences, facts, history and goals for
each contact and brings them into the next call or chat with the same person.
Memory entries are scoped to the contact and never shared between contacts.

:::note[When to use it]
Turn it on for agents that speak to the same people repeatedly: account management,
follow-up campaigns, support lines. Turn it off for anonymous or one-off traffic,
and for anything where remembering a person is a policy question.
:::

## How it works

- After a conversation, the agent extracts what is worth keeping about the contact.
- At the start of the next conversation with that contact, those entries are added to
  the agent's context, so it can say "last time you asked about the annual plan"
  without being told.
- The contact is the person the agent is talking to: a contact record in a campaign,
  or the identified user of a deployment. A browser test has no contact unless you
  pick one: **Chat as contact** in the **Chat** test's options, or the **Select a
  contact** list at the top of the **Call** test.

## Configuring it

1. Open the agent and choose **Advanced** under **Build**.
2. In the **Privacy** card, find **Enable per-contact memory**.
3. Switch it on or off and **Save**.

![The per-contact memory switch in the Privacy card.](/media/build/per-contact-memory-switch.webp)

The switch is available on voice and text agents, single prompt or flow. It is on
for new agents. With **Opt-Out of Data Storage** it is disabled and reads **Turn on
data storage above to use per-contact memory**.

## Seeing and forgetting what it remembers

Choose **Memory** under **Build** in the agent's workspace. The section is there
while data storage and per-contact memory are both on. Pick a contact, and
**Related agent memories** lists what this agent remembers about them, each entry
marked **Preference**, **Fact**, **History** or **Goal**. **Forget all** removes
everything this agent remembers about that contact, after a confirmation; it cannot
be undone. Memory is per contact, so clearing one person's entries leaves every
other contact's untouched.

A contact's own page shows the same list across all agents, and **Forget all** there
clears what every agent remembers about them.

Use it to check what the agent actually learned before relying on it, and to clear
a contact's memory when they ask you to.

## Behaviour and limits

- Memory depends on stored conversation data. With **Opt-Out of Data Storage**
  there is no stored conversation to remember from, and opting out also switches
  memory off. Switching storage back on does not switch memory back on; do it by
  hand.
- Memory is per agent as well as per contact. Two agents do not share what they
  learned about the same person.
- With [PII redaction](/build/privacy/pii-redaction) on, personal details are
  redacted before storage, which limits what memory can hold about a person.
- Memory is not a knowledge base. Facts about your company belong in a
  [Knowledge Base](/build/tools/knowledge-base), not in what the agent remembers
  about a contact.

## Verify

Run two tests as the same contact (**Chat as contact** on a text agent, **Select a
contact** on the **Call** test of a voice agent), tell the agent something in the
first, and ask in the second whether it remembers. Then open **Memory** and pick the
contact to see what was kept.

## Related

- [Data retention](/build/privacy/data-retention)
- [PII redaction](/build/privacy/pii-redaction)
- [Contacts](/deploy/contacts)
