# Cooper AI Profile

> Your Cooper AI Profile tells Cooper's agents how to write emails, place calls and answer you, who never to contact, and when not to call or text. It also shows everything agents have learned about how you work, so you can pin it, forget it, pause it or delete it.

Source: https://docs.cooperbuild.ai/account/ai-profile
Last updated: 2026-10-06
Keywords: cooper ai profile, ai profile, personal ai settings, soul, profile setup, /profile, /memory, tone, writing style, email style, voice, call style, sign-off, greeting, quiet hours, do not contact, never contact, boundaries, memories, ai memory, what cooper knows about me, learned preferences, forget, pin, pause learning, export, delete my data, personalization

Your **Cooper AI Profile** is a short brief about you that Cooper's agents read before they act for you. It says how long and how formal your emails should be, how you greet people and sign off, how an agent should introduce itself when it phones someone for you, how detailed answers in chat should be, who never to contact, and when not to call or text. Agents follow it in Chat, in background runs, on calls they place for you, and in Claude or ChatGPT when those are connected to Cooper.

The page also shows **what agents remember about you**: short notes that agents pick up while you work with them, such as "prefers metric units" or "Mark is the owner's rep on Maple Court". You can see where each note came from, pin it, forget it, pause learning, export everything, or delete it all. The profile is personal. Only you can open or change it.

![The Cooper AI Profile tab with the status band, the settings on the left and the What agents read panel on the right](https://docs.cooperbuild.ai/screenshots/account/ai-profile-overview.png)

*Screenshot: The Cooper AI Profile tab. 1: Walk me through it (or Change it in chat), 2: Export JSON, 3: Save profile (it reads Saved while there is nothing new to save), 4: the status band, 5: What agents read, 6: Edit as text.*

## Key concepts

| Term | Meaning |
|---|---|
| **Profile** | Your answers about how agents should work for you: who you are, how they write and answer, how they sound on calls, what they must not do, and what to do when unsure. |
| **What agents read** | The short text Cooper builds from your answers. This exact text goes to agents. It is limited to 1,800 characters. |
| **Version** | Each saved change gives the profile a new version number, shown as `v3` and so on. |
| **Memory** | One thing an agent learned about you, such as a preference, a fact or a correction. Each memory has a short ID like `m_7fq2`. |
| **Always-on list** | The memories that travel with every message to your agents, as one-line summaries. It holds about 30 lines (2,400 characters). |
| **Searchable only** | A memory that didn't fit in the always-on list. Agents can still find it when they search. |
| **Pinned** | A memory you chose to keep at the top of the always-on list. Pinned memories never fade or drop out. |
| **Learning** | Cooper reading back over your agent conversations and calls to save what you would not think to tell it. You can pause it. |
| **A change is waiting for you** | A change to your profile that Cooper suggests after noticing a pattern, such as you asking for shorter emails more than once. Nothing changes until you accept it. |
| **Enforced** | The **What I must not do** section. These are the rules meant to stop a send rather than guide it. See [What I must not do](#what-i-must-not-do). |

## Open your Cooper AI Profile

1. At the bottom of the sidebar, click your name (or your picture if the sidebar is collapsed).
2. Click **Account settings**.
3. Click the **Cooper AI Profile** tab.

The page address is `/auth/profile-settings/ai-profile`.

Every signed-in user has this tab. It needs no role permission, because it only ever shows your own profile. There is no admin view: nobody else in your workspace, including owners and admins, can open or change your profile from this page.

You can also manage your profile from Chat with the `/profile` and `/memory` commands. See [Manage your profile from Chat](#manage-your-profile-from-chat).

## Read the status band

The four boxes at the top of the page summarize your profile.

| Box | What it shows |
|---|---|
| **Profile** | **Active** (green dot) once your profile is set up and in use, or **Not set up**. Shows the current version, for example `v4`. |
| **Always-on memories** | How many memories are in the always-on list, "of" how many active memories you have. The bar shows how full the always-on list is. |
| **Enforced rules** | How many of the two enforced rules are set: quiet hours, and a never-contact list. |
| **Learning** | **On** or **Paused**, and the date Cooper last read back over your conversations ("last read …"). |

Agents only follow your profile when **Profile** says **Active**. A profile that is mid-setup, waiting for your confirmation, or switched off with `/profile off` shows **Not set up**, and agents ignore it.

## Set up your profile in chat

The quickest way to set up your profile is to let an agent ask you. Setup is two short questions and one open box, in your private chat with an agent.

### Step 1: Start setup
On the Cooper AI Profile page, click **Walk me through it** (it reads **Change it in chat** once your profile is active). Chat opens. Open your private chat with any agent (in **New message**, pick the agent under **Agents** and click **Chat with agent**) and type `/profile`.

The agent replies: "Starting your profile. … will ask a few short questions here; answer in your own words, say "skip" to skip one, "stop" to pause."

If you type `/profile` in a group or someone else's conversation, Cooper opens your private chat with the agent and sends you the link. If several agents are in the conversation, it asks which one, for example `/profile @Blake`.

### Step 2: Say who you are
The agent asks about your role and company, what you run day to day, and any other languages you use with crews or clients. Your name, company and timezone already come from your account, so the agent confirms them instead of asking.

### Step 3: Say how you want to sound
The agent asks how long and how formal your emails should be, how you greet people and sign off, whether bullet lists are welcome, and whether answers in chat should be short or detailed.

The agent may offer to work out the email part from your sent mail. It only looks if you say yes. It reads your sent mail from the last 90 days (at most 8 threads), shows you its guess in two lines and asks if it is right. This needs a connected Gmail or Outlook mailbox. See [Connections](https://docs.cooperbuild.ai/account/connections.md) and [Email signature](https://docs.cooperbuild.ai/account/email-signature.md).

### Step 4: Add anything else, in your own words
The last step is one open question: anything to check with you first, anyone never to contact, hours not to call or text, how to sound on the phone for you, and what to do when something is unclear. Write as much or as little as you like, or say "skip". Cooper keeps exactly what you write.

### Step 5: Check the preview and confirm
The agent shows the text agents will read, in full, and asks "Look right? Say yes, or tell me what to change." Say yes to switch the profile on, or say what to change. Nothing takes effect until you say yes.

Say "skip" to skip any question. Say "stop" to pause. Your answers are kept, and `/profile` picks up where you left off. If you don't come back for 48 hours, the setup resets to the start but your answers stay.

> **Note**
>
> Setup runs only in your own private chat with an agent. If you never set up a profile, agents in your private chats add a one-line offer to the end of an answer, at most once per conversation per week: "I can tailor emails, calls and answers to how you work. Type **/profile** to set that up (about two minutes), or **/profile off** if you'd rather I didn't ask."

## Set up or change your profile on this page

You can fill in or correct every part of your profile on this page, without using chat.

### Step 1: Change the fields
Fill in the sections on the left: **Who you are**, **How I write for you**, **How I answer you here**, **How I sound on a call**, **In your own words**, **What I must not do** and **When unsure**. Each section is described below.

### Step 2: Watch the preview
The **What agents read** panel on the right updates a moment after you stop typing. It shows exactly what agents would read if you saved now, and its label reads "unsaved".

### Step 3: Save
Click **Save profile** at the top, or in the **Unsaved changes** box. Cooper shows "Saved — agents will use it from your next message." The button then reads **Saved** and is greyed out until you change something again.

While you have unsaved changes, a box under the preview says "Unsaved changes. Agents keep working from v… until you save." Click **Discard** to go back to your saved answers.

To clear a choice in a row of options, such as **Short**, **Medium** or **Full detail**, click the option that is already selected.

Saving from this page switches a profile on if you never had one. It does not switch on a profile that is mid-setup in chat, waiting for your confirmation, or switched off with `/profile off`. See [Troubleshooting](#troubleshooting).

## Who you are

The **Who you are** section ("Name, company and timezone come from your account") has two fields:

- **Your role**, for example "Project Manager".
- **What you run**, for example "Maple Court (MC-24) and the Harbor Lofts TI".

Your name, company and timezone are not typed here. Cooper takes them from your account and your workspace, so they are always up to date. To change your name, see [My details](https://docs.cooperbuild.ai/account/my-details.md).

## How I write for you (email)

The **How I write for you** section ("Email sent under your name") controls emails agents draft for you.

| Setting | Options | What agents read |
|---|---|---|
| **Length** | **Short**, **Medium**, **Full detail** | Short: 3–6 sentences, one ask per email. Medium: enough to give context, still one ask per email. Full detail: do not cut for the sake of brevity. |
| **Tone** | **Plain**, **Friendly**, **Formal** | Plain and direct, not formal. Plain and friendly, not formal. Formal and professional. |
| **Bullet lists** | **Never**, **3+ items only**, **Anywhere** | No bullet lists, write in sentences. No bullets unless listing 3+ items. Bullets are fine wherever they help. |
| **Greeting** | Free text, for example `Hi <first name>,` | The greeting to open with. |
| **Sign-off** | Free text, for example "Thanks, Dana" | The sign-off to close with. |

The email part of the profile is headed with the name your emails are sent as. That is the from-name of your own connected mailbox, or your account name if you have none. See [Email signature](https://docs.cooperbuild.ai/account/email-signature.md).

## How I answer you here (chat)

The **How I answer you here** section ("Chat and search") shapes how agents answer you.

| Setting | Options | What agents read |
|---|---|---|
| **Detail** | **Terse**, **Balanced**, **Detailed** | Terse by default, full detail only when asked for a breakdown. Enough detail to act on, no more. Detailed: show the working, not just the answer. |
| **Order** | **Numbers first**, **Context first** | Numbers first, then the why. Or: explain before quoting numbers. |
| **Units** | **Imperial**, **Metric** | Which units to use. |
| **Currency** | Free text, for example "USD" | Which currency to quote in. |

## How I sound on a call

The **How I sound on a call** section ("When an agent phones for you") applies when an agent places a phone call on your behalf.

- **How it introduces itself**: the exact opening line, for example "Hi, this is Blake — I'm an assistant calling for Dana Ruiz." The agent is told to introduce itself exactly like this.
- **Pace**: **Unhurried** (leave room for them to talk) or **Brisk** (to the point).
- **What to say when pressed**: what the agent says when the other person pushes for something it can't answer, for example "I'll have Dana confirm."
- **Never promise on your behalf**: things the agent must never promise, for example "a price" or "a delivery date". Type one and click **Add** (or press Enter). Click the **×** on a chip to remove it.

On a call, the agent also gets up to three short notes it remembers about the person it is calling, if you have any. To have agents place calls, your workspace needs AI calling switched on. See [Phone](https://docs.cooperbuild.ai/connect/phone.md).

## In your own words

The **In your own words** box ("Read exactly as written") is for anything that matters and has no box of its own: what to check with you first, anyone never to contact, hours not to call or text, how to sound on the phone, what to do when something is unclear. It is the last question setup asks.

- You can write up to 1,500 characters. The counter shows how many you have used.
- Agents read your text word for word, under the heading "In …'s own words".
- Only about the first 600 characters go to agents. Cooper cuts at the end of a sentence. Put the most important things first.
- Your text is kept in full on this page and in your export.

Cooper also reads the box for rules it can act on, and fills the matching fields when they are empty. Under the box, **Picked up** shows what it found, for example **Quiet hours**, **Never contact**, **Check with you first**, **Call pace**, **Call tone**, **How it introduces itself**, **Never promise**, **When pressed**, **When unsure**, **Units** or **Currency**. If it found nothing, it says "Nothing here needs enforcing — it is kept as written."

It only lifts a rule from a clear sentence, such as "Never contact Mark Ellison, he's the owner's rep" or "No calls or texts between 7pm and 6am". A field you filled in yourself always wins over the box.

## What I must not do

The **What I must not do** section is marked **Enforced** with an amber bar ("These stop a send. Everything else on this page guides one.").

| Rule | How to set it | What it does |
|---|---|---|
| **Never contact** | Type a name, with the role in brackets if you like, for example "Mark Ellison (owner's rep)", and click **Add**. Up to 20 people. | When an agent drafts an email for you to someone whose name or email address matches, Cooper refuses before the draft is written: "You asked me never to contact Mark Ellison (owner's rep). I have not sent anything. Change this in Settings → Cooper AI Profile if that is out of date." The names are also in the text agents read. |
| **Quiet hours** | Pick a start time and an end time. The window can run past midnight, such as 19:00 to 06:00. | Agents read "Quiet hours 19:00–06:00 (your timezone): no calls or texts on their behalf." Email is not affected: it waits in an inbox. |
| **Check with you first** | Type what needs your OK, for example "sending anything to a client", and click **Add**. Up to 10. | Agents read "Confirm with … before: …". |

Only the name and role of each never-contact person are stored. Cooper never keeps their email address or phone number here ("Name and role only — nothing else about someone else is ever stored."). Matching ignores capital letters and extra spaces, and a name shorter than 3 characters is never matched.

If your profile is active and quiet hours are empty, a banner at the top says "Quiet hours are not set. An agent can place a call or send a text on your behalf at any hour. Email is unaffected — it waits in an inbox." Click **Set 7pm–6am** to fill in 19:00 to 06:00, then click **Save profile**.

![The In your own words box with Picked up chips, above the amber What I must not do section with Never contact, Quiet hours and Check with you first](https://docs.cooperbuild.ai/screenshots/account/ai-profile-boundaries.png)

*Screenshot: Your own words and the enforced rules. 1: In your own words, 2: Picked up, 3: the Enforced mark, 4: Never contact, 5: Quiet hours, 6: Check with you first.*

> **Warning: What is checked before a send**
>
> Today, Cooper's hard check runs when an agent drafts an email for you, and it checks the **Never contact** list. **Quiet hours** and **Check with you first** reach agents as rules in the text they read. Rules apply only while your profile is **Active**. If Cooper can't read your profile at that moment, the email is allowed rather than blocked.

## When unsure

The **When unsure** section ("Anything not covered above") tells agents what to do when a request is unclear.

| Option | What agents read |
|---|---|
| **Ask me first** | Ask first when anything is ambiguous. Do not guess. |
| **Act and tell me** | Make the sensible call and say what you assumed. |
| **Act on small, ask on big** | Make the sensible call for small things and say what you assumed. Ask first for anything that costs money, promises a date, or goes to a client. |

## See what agents read

The **What agents read** panel shows the exact text agents receive. The top right shows the saved version (`v3`) or "unsaved". The bottom shows how many of the 1,800 characters it uses. If nothing is filled in yet, it says "Nothing yet. Answer anything on the left and it appears here."

The text has sections such as **Who you work for**, **Emails (sent as …)**, **Calls on …'s behalf**, **Chat answers**, **Boundaries**, **When unsure** and **In …'s own words**. A section with no answers is left out.

When you finish setup in chat, Cooper also drafts a few short style lines from your answers, each starting with words like "Keep", "Use" or "Never". They appear in the text under the section they belong to. You can't edit style lines in the form; change them in chat or with **Edit as text**. Some setup answers have no box on this page, such as the languages you use, the name you sign off with and how you write dates. They still appear in the text and are kept when you save.

If the text would be longer than 1,800 characters, Cooper shortens it in this order: boundary notes first, then style lines from the end of each list, then your own words (halved, from the end). Your answers to the fields are kept; only if the text still doesn't fit are the last lines cut.

## Edit the profile as text

You can write the text agents read yourself.

1. In the **What agents read** panel, click **Edit as text**. The **Your profile** editor opens ("Editing the text directly").
2. Edit the text. The counter shows how many of the 1,800 characters you have used.
3. Click **Save**. Cooper shows "Profile saved."

While your hand-written text is in use, the page opens in the text editor, and the text "will not be regenerated from the fields while this is on."

To go back to the form, click **Back to the form**. Cooper says "Save the form to regenerate from your answers." Your hand-written text stays in use until you save the form, which rebuilds the text from your answers and replaces what you wrote. Accepting a suggested change, or asking an agent to change a setting, also rebuilds the text.

The text can't be empty. It also can't contain links, prompt markup, credentials, or wording that tries to change who the agent is or override its instructions.

## Review a change Cooper suggests

When you tell agents the same thing more than once, or state it once as a clear rule, Cooper may suggest changing your profile. For example, if you keep asking for shorter emails, it suggests setting **Length** to **Short**.

Cooper only suggests changes to email length, tone, greeting, sign-off and bullets, call pace and tone, chat detail and order, and style lines. It never suggests changes to who you are or to what you must not do. Only you can set those.

When a change is waiting, an agent sends you a chat message: "I'd like to change one line in your profile. …". The page shows a blue box, **A change is waiting for you**, with:

- the setting and the reason,
- **What you said**: your own words that led to the suggestion, with dates,
- **Now** and **Would become**: the profile text before and after.

Click **Accept** ("Applied to your profile.") or **Reject** ("Kept as it was."). You can also type `/profile review`, then `/profile accept` or `/profile reject` in Chat.

- Only one change waits at a time. It expires after 14 days if you don't decide.
- After you decide, Cooper won't suggest a change to the same setting for 14 days.
- After you reject the same setting twice, Cooper stops suggesting it.
- Cooper suggests at most 3 changes a week.
- Accepting rebuilds the profile from your answers. If you had written the text by hand, the hand-written text is replaced.

## See what agents remember about you

The **What agents remember about you** section at the bottom of the page lists the memories agents have saved about you. The header says how many there are and how many "travel with every message". If there are none yet, it says "Nothing yet — this builds up as you work".

Click **All**, **Boundary**, **Preference**, **Correction**, **Style** or **Fact** to filter the list. "Nothing of that kind." means no memory of that kind is listed.

Each row shows:

- the kind: **Style**, **Preference**, **Boundary**, **Correction**, **Fact**, **Relationship** or **Commitment** (boundaries and corrections are amber),
- the one-line summary, which you can click to see the full note and "From what you said: "…"", the words of yours it came from,
- the memory ID, such as `m_7fq2`,
- marks: "pinned", "searchable only" (not in the always-on list), and who saved it ("saved by user", "saved by agent" or "saved by extractor", which is background learning),
- **Pin** (or **Unpin**) and **Forget**.

The page lists your first 50 active memories, pinned ones first. Use `/memory list` in Chat to page through more, or **Export JSON** to get all of them.

![The What agents remember about you list with the kind filters, one memory expanded to show its full text and source quote, and the Pin and Forget buttons](https://docs.cooperbuild.ai/screenshots/account/ai-profile-memories.png)

*Screenshot: Memories. 1: kind filters, 2: a memory's kind, 3: an expanded memory with the words it came from, 4: the memory ID and marks, 5: Pin, 6: Forget.*

| Kind | What it holds |
|---|---|
| **Style** | How you write or speak. |
| **Preference** | How you want agents to behave. |
| **Boundary** | A must-not or a check-first. |
| **Correction** | Something you corrected an agent on. |
| **Fact** | A lasting fact about you, such as your role or what you own. |
| **Relationship** | Who matters to you and how. |
| **Commitment** | Something you said you would do, with a date. |

## Pin a memory

Click **Pin** on a memory to keep it in the always-on list for good. Pinned memories go to the top of the list, never fade, and are never archived automatically. Click **Unpin** to let it rank normally again. In Chat, type `/memory pin m_7fq2` or `/memory unpin m_7fq2`.

## Forget a memory

### Step 1: Click Forget
Click **Forget** on the memory.

### Step 2: Confirm
The **Are You Sure?** window shows the memory and the words it came from, and says "Agents will stop knowing this. It cannot be undone." Click **Forget it**, or **Cancel**.

Cooper shows "Forgotten: …". The memory leaves the list and the always-on list right away.

A forgotten memory is archived, not erased. It stays in your export, and an agent can still find it if it searches archived memories on purpose. To erase memories completely, use [Delete everything](#delete-everything).

In Chat, type `/memory forget m_7fq2`, or `/memory forget` followed by a few words from the memory, such as `/memory forget the sign-off`. If the words match more than one memory, Cooper lists them and asks which one. `/memory forget all` asks you to confirm with `/memory forget all confirm`.

## Correct something Cooper learned about you

You can't edit a memory's text on this page. To correct one:

1. Tell an agent in your private chat what is actually true, for example "That's wrong — I sign off with my first name only." Agents are told to save a correction that replaces the old memory.
2. Or click **Forget** on the wrong memory, and tell the agent the right version.

Corrections are always placed near the top of the always-on list and never fade.

If the wrong thing is part of your profile rather than a memory, change the field on this page and click **Save profile**.

## How Cooper learns about you

Agents can save a memory while they talk with you. On top of that, Cooper reads back over your conversations with agents in the background and saves what the agent missed:

- after every 6 of your messages in a conversation with an agent, or about 10 minutes after the first message it hasn't read yet,
- right after a call an agent placed for you ends. Cooper reads the call's summary and the commitments made, not the full transcript.

In a group, other people's messages are read only for context. Only your own words can become memories about you. Nothing is learned from a call where the agent acted for the person being called.

Cooper only saves things that will still be true next month: your role and what you own, who you work with and how, how you like to work, and commitments with a date. It skips:

- project facts, task status, dates, prices, invoices, vendors and schedules (those are Cooper records),
- other people's private details, such as their phone number, pay, health or home life (names and roles only),
- passwords, API keys, tokens, bank or card numbers, health information, pay, home addresses, personal phone numbers, and immigration or legal status,
- one-off requests, and anything you asked it not to remember.

Phone numbers and email addresses in a memory are removed automatically, except in a boundary. When background learning saves something in your private chat with an agent, a small note appears in the thread: "Remembered 2 things about how you work — /memory list to see". This note is never shown in group chats.

Every night Cooper also tidies your memories. It merges near-duplicates, archives commitments 7 days after their date, and archives notes that were never used, are older than 30 days and have faded. It never archives pinned memories or memories you saved yourself. Corrections and boundaries never fade.

Background learning uses your workspace's AI service and has a daily limit per person. Type `/profile status` in Chat to see when Cooper last read back, why it last skipped, and what it has spent today and this month.

## Pause or resume learning

In the **Learning** panel, click **Pause learning**. Cooper shows "Learning paused." While learning is paused:

- Cooper doesn't read back over your conversations,
- agents can't save new memories about you ("This person has paused what agents remember about them. Nothing was saved."),
- everything already remembered still applies.

Click **Resume learning** to switch it back on ("Learning switched back on."). In Chat, type `/memory pause` or `/memory resume`.

## Read my sent email

The **Learning** panel has a **Read my sent email** button (**Stop reading sent email** when it is on). It records whether you agree to Cooper learning from your sent email. Separately, during setup, an agent only looks at your sent mail if you say yes in that conversation.

## Export your profile

Click **Export JSON** at the top of the page. Your browser downloads `cooper-ai-profile.json`. It holds:

- your profile: its status, all your answers, style lines, the text agents read and its last 20 versions, and the history of suggested changes,
- every memory, including forgotten and replaced ones, with where it came from, the words it came from, and earlier versions of its text.

If the export fails, Cooper shows "Could not build the export."

## Delete everything

At the bottom of the page ("Deleting removes your profile and everything agents have learned about you. It cannot be undone."):

1. Type `DELETE` in the **Type DELETE** box.
2. Click **Delete everything**.

Cooper shows "Deleted. Agents no longer know anything about how you work." Your profile, every memory (including forgotten ones) and Cooper's record of what it has already read are permanently deleted. Agents stop using them from your next message. Export first if you want a copy.

To clear only your profile answers and keep your memories, type `/profile reset` in Chat, then `/profile reset confirm`.

## Manage your profile from Chat

You can type these commands at the start of a message in any Chat conversation. The reply is shown only to you, and nothing is posted to the room. See [Chat](https://docs.cooperbuild.ai/connect/chat.md).

| Command | What it does |
|---|---|
| `/profile` (or `/soul`) | Shows your profile text if it is active. Otherwise starts setup in your private chat with an agent. |
| `/profile edit identity`, `/profile edit style`, `/profile edit about` | Asks one setup question again. `emails`, `chat` and `tone` mean style; `boundaries`, `calls`, `voice` and `defaults` mean about. |
| `/profile review` | Shows the waiting change with before and after text. |
| `/profile accept`, `/profile reject` | Accepts or rejects the waiting change. |
| `/profile status` | Profile status and version, memory counts, whether learning is on, when Cooper last read back, and spend. |
| `/profile reset` | Clears your profile answers but keeps your memories. Asks you to type `/profile reset confirm`. |
| `/profile off` | Stops the setup offer and switches your profile off. Type `/profile` any time to set it up again. |
| `/memory` (or `/mem`) or `/memory list` | Lists your memories, 30 at a time. `/memory list 2` shows the next page. |
| `/memory search <words>` | Finds memories by meaning, including forgotten ones (marked as archived). |
| `/memory forget <id or words>` | Forgets one memory. `/memory forget all confirm` forgets all of them. |
| `/memory pin <id>`, `/memory unpin <id>` | Pins or unpins a memory. |
| `/memory pause`, `/memory resume` | Pauses or resumes learning. |

## Where agents use your profile

| Where | What the agent gets |
|---|---|
| Your private chat with an agent in Cooper Chat | Your profile and your always-on memories. |
| A group chat where you ask an agent | Your profile only, never your memories. The agent is told not to reveal anything from it in the room. |
| WhatsApp, Slack and the mobile chat assistant | Your profile and your always-on memories. See [WhatsApp](https://docs.cooperbuild.ai/account/whatsapp.md). |
| Background runs started for you, such as [AI Team](https://docs.cooperbuild.ai/brain/ai-team.md) jobs | Your profile and your always-on memories, read once when the run starts. |
| A phone call an agent places for you | Your call settings (introduction, pace, tone, never-promise list, what to say when pressed, call style lines) and up to 3 notes about the person called. |
| Claude, ChatGPT and other apps connected through the Cooper MCP server | Your profile when the session starts, and your memories when the app asks for them. See [Connect AI agents](https://docs.cooperbuild.ai/ai-agents.md). |
| Emails an agent drafts for you | The never-contact check, and a style check of the draft against your email settings. |

The profile changes how agents write and sound for you. Where your profile and an agent's own instructions disagree on the format, tone or wording of something sent for you, your profile wins. On judgement, which tools to use, what numbers mean, or what is safe, the agent's instructions win. Your profile never gives an agent a permission it doesn't otherwise have. Agents are told never to show or quote your profile; if you ask what they know about you, they summarize it and point you here.

## When your changes take effect

| Change | When agents see it |
|---|---|
| You save the profile, accept a change, pin, unpin or forget a memory, or finish setup | From your next message. |
| An agent or background learning saves a new memory | From your next session with that agent: after `/new`, `/compact`, or an hour without messages. Until then, the agent can look the memory up. |
| A call an agent places for you | Profile is read when the call starts and kept for up to 5 minutes. |
| A background run | Profile is read once when the run starts. |
| Claude, ChatGPT or another connected app | Profile is read when the app starts a session with Cooper. Start a new chat to pick up changes. |

## How your profile affects agent emails, calls and replies

**Emails.** When an agent drafts an email for you, Cooper first checks the recipient against your **Never contact** list. Then it checks the draft against your email settings and tells the agent what to fix before it asks for your approval:

- bullet lists or other formatting when you chose **Never** for bullet lists (formatting also shows as raw symbols in most mail programs),
- more than about 120 words for **Short** emails, or 250 for **Medium**,
- your sign-off name missing from the draft,
- a first line that doesn't open with your greeting.

The style check never blocks the email. You still approve it before it goes.

**Calls.** An agent calling for you introduces itself with your exact line, keeps your pace and tone, never promises what you listed, and uses your line when pressed. Your call settings refine the agent's own style but never change who the agent is.

**Replies.** In chat, agents keep to your detail level, put numbers or context first as you chose, and use your units and currency. Your profile never makes an answer longer than the question needs.

## Privacy: who can see your profile

- **Only you.** The page, the export and the commands only ever work on the signed-in person's own profile. There is no admin view and no way for anyone to open another person's profile, including workspace owners and admins.
- **Agents working for you.** Agents read your profile only when they act for you. Each agent gets the parts it needs, as listed in [Where agents use your profile](#where-agents-use-your-profile).
- **Not in groups.** Your memories never go into a group chat, and the "Remembered" note and the setup offer only appear in your private chats.
- **Other people.** For anyone else, Cooper keeps only names and roles in your profile, never their contact details.
- **Safety checks.** Everything that reaches an agent is checked twice, when saved and when used, for links, credentials, hidden characters and attempts to change the agent's instructions. A memory that fails the check is withheld from agents.
- **Your control.** You can pause learning, forget any memory, export everything, or delete everything at any time.

## Fields reference

| Field | Section | Limit | What it means |
|---|---|---|---|
| **Your role** | Who you are | 120 characters | Your job title. |
| **What you run** | Who you are | 200 characters | The projects or areas you own. |
| **Length** | How I write for you | Short, Medium, Full detail | How long emails should be. |
| **Tone** | How I write for you | Plain, Friendly, Formal | How formal emails should be. |
| **Bullet lists** | How I write for you | Never, 3+ items only, Anywhere | When bullet lists are welcome. |
| **Greeting** | How I write for you | 80 characters | How emails open. |
| **Sign-off** | How I write for you | 80 characters | How emails close. |
| **Detail** | How I answer you here | Terse, Balanced, Detailed | How much detail answers carry. |
| **Order** | How I answer you here | Numbers first, Context first | What comes first in an answer. |
| **Units** | How I answer you here | Imperial, Metric | Measurement units. |
| **Currency** | How I answer you here | 8 characters | Currency code, such as USD. |
| **How it introduces itself** | How I sound on a call | 220 characters | The exact opening line on calls. |
| **Pace** | How I sound on a call | Unhurried, Brisk | How fast the agent talks and moves on. |
| **What to say when pressed** | How I sound on a call | 200 characters | The line when someone pushes for an answer. |
| **Never promise on your behalf** | How I sound on a call | 8 items, 120 characters each | What the agent must never promise. |
| **In your own words** | In your own words | 1,500 characters (about 600 reach agents) | Anything else, kept word for word. |
| **Never contact** | What I must not do | 20 people, name and role 120 characters each | People agents must never contact for you. |
| **Quiet hours** | What I must not do | A start and end time | No calls or texts for you in this window. |
| **Check with you first** | What I must not do | 10 items, 160 characters each | What needs your OK first. |
| **When unsure** | When unsure | Ask me first, Act and tell me, Act on small, ask on big | What to do when something is unclear. |
| Profile text (**Edit as text**) | What agents read | 1,800 characters | The text agents read, written by hand. |

## Limits

| Limit | Value |
|---|---|
| Text agents read | 1,800 characters |
| **In your own words** | 1,500 characters stored, about 600 sent to agents |
| Always-on memory list | 2,400 characters, about 30 lines |
| Active memories | 500. Beyond that, the weakest facts and relationships are archived. |
| A memory's summary / full text | 80 / 600 characters |
| Memories shown on this page | 50 |
| Waiting changes | 1 at a time, expires after 14 days |
| Suggested changes | At most 3 a week, 14 days apart for the same setting, none after 2 rejections |
| Profile versions kept | 20 |
| Setup left unfinished | Resets to the start after 48 hours, answers kept |

## Permissions

Everyone can open and change their own Cooper AI Profile. No role permission controls it, and admins can't grant or remove access. Nobody can see or change another person's profile.

Some things the profile relies on are set up by others:

- Agents in Chat need your role to include **Chat** → **AI Agents in Chat**. See [Chat](https://docs.cooperbuild.ai/connect/chat.md).
- Calls placed by agents need AI calling switched on for your workspace. See [Phone](https://docs.cooperbuild.ai/connect/phone.md).
- Setup's style drafting and background learning use your workspace's AI service. If none is set up, setup still works with plain built-in wording, but background learning skips.
- Cooper can switch personal profiles off for a whole deployment. Chat commands then reply "Personal profiles are not switched on for this workspace yet."

## Tips and best practices

- **Set quiet hours and a never-contact list first.** They are the only rules meant to stop a send rather than guide it.
- **Use the fields for rules, the box for nuance.** A field is exact. The box is for things like "Mrs. Ortega works nights, so never call her before 9am."
- **Put the important things first in your own words.** Only about the first 600 characters reach agents.
- **Correct agents when they get it wrong.** "Actually, I never use bullet points" becomes a correction that ranks near the top and never fades.
- **Pin the few memories that matter most.** Pinned memories never drop out of the always-on list.
- **Read the preview before you save.** **What agents read** is exactly what agents get.
- **Prefer the form to Edit as text.** Hand-written text is replaced the next time the form is saved or a change is accepted.
- **Export before you delete.** **Delete everything** can't be undone.

## Troubleshooting

### An agent wrote in the wrong tone or length

Check that **Profile** in the status band says **Active**. If it says **Not set up**, agents ignore your profile; see "I saved my profile but it still says Not set up" below. Then check **Tone**, **Length** and **Bullet lists** under **How I write for you**, and read the **Emails** part of **What agents read**. If you changed it during a conversation, your change applies from your next message. If the agent still gets it wrong, tell it in chat, for example "Keep emails to three sentences". It saves that as a correction.

### Cooper learned something wrong about me

Find the memory under **What agents remember about you** and click its summary to see the words it came from. Click **Forget**, then **Forget it**. You can't edit a memory's text, so tell the agent the right version in your private chat, for example "That's wrong — I run Harbor Lofts, not Maple Court." Agents save it as a correction that replaces the old one. To stop Cooper learning for a while, click **Pause learning**.

### I saved my profile but it still says Not set up

Saving the page switches a profile on only if you never started one. If you started setup in chat and didn't finish, or typed `/profile off`, the profile stays off. Type `/profile` in your private chat with an agent, check the preview it shows, and say yes. The profile then switches on with your saved answers.

### An agent emailed or called someone on my never-contact list

Cooper checks the list when an agent drafts an email for you, and only while your profile is **Active**. The check matches the recipient's name or email address against the names you entered, so use the name the person is saved under in Cooper. For calls and texts, the list reaches the agent as a rule in your profile rather than as a hard check.

### An agent called or texted during my quiet hours

Check that **Profile** says **Active** and that both quiet-hours times are filled in. Quiet hours are shown to agents in the timezone from your account. Quiet hours reach agents as a rule in the text they read; today, Cooper's hard check before a send covers email and the never-contact list.

### I removed someone from Never contact, but they came back after saving

Your **In your own words** text still mentions them, for example "never contact Mark". When a field is empty, Cooper fills it from the box on save. Remove the sentence from **In your own words**, then click **Save profile**. The same applies to quiet hours, check-first items and call settings that the box can fill.

### I can't remove my quiet hours

The page has no button to clear quiet hours, and saving with an empty start or end time gives an error. Set both times again, or type `/profile reset` and then `/profile reset confirm` in Chat to clear your whole profile (your memories are kept) and set it up again.

### My hand-written profile text disappeared

Hand-written text is replaced when you save the form, accept a suggested change, or ask an agent to change a setting. The page warns "It will not be regenerated from the fields while this is on." Click **Export JSON** to find your earlier text among the last 20 versions, then click **Edit as text** and paste it back.

### An agent doesn't know something I just told it

New memories from the current conversation reach the agent's always-on list from your next session, after `/new`, `/compact` or an hour without messages. Until then the agent can still look the memory up. Profile changes you save on this page apply from your next message.

### Nothing new appears under What agents remember about you

Check that **Learning** says **On**. Cooper reads back after every 6 of your messages to an agent, or about 10 minutes after the first unread one, so new memories can take a few minutes. Type `/profile status` in Chat; "Last skipped because" tells you why it didn't learn, for example because learning is paused, there was nothing new, or your workspace has no AI service set up. Cooper also saves only lasting things about you, not project details.

### A memory I saw in chat isn't on this page

This page shows your first 50 active memories. Type `/memory list` in Chat to page through all of them, or `/memory search` followed by a few words. Forgotten and replaced memories don't show on this page but are in **Export JSON**.

### Error: Keep it under 1800 characters — yours is …

Your hand-written profile text is too long. Shorten it to 1,800 characters or fewer and click **Save** again.

### Error: The profile cannot be empty.

You tried to save an empty hand-written profile. Type some text, or click **Back to the form** and save the form instead.

### Error: That profile contains a link (or refers to the system prompt, or looks like it contains a credential)

Hand-written profile text is checked like anything else that reaches an agent. Remove links, passwords and keys, and wording such as "ignore your instructions" or "you are now…", then save again.

### The setup offer keeps appearing at the end of agent answers

It appears at most once per private conversation per week while you have no profile. Set up your profile with `/profile`, or type `/profile off` so agents stop asking.

### Chat says "Personal profiles are not switched on for this workspace yet."

Cooper AI profiles are switched off for your deployment. Ask your Cooper administrator.

## For AI agents

Eight MCP tools work with the person's Cooper AI Profile and memories. Every tool acts only on the signed-in user's own data (the `tenantOrgId` and `userId` of the session). No parameter can name another person, so there is no role permission to check: every user can call them on themselves. None of them can read or change another user's profile, including for admins.

### Which tool to use

| Situation | Tool |
|---|---|
| An external client (Claude Desktop, ChatGPT and similar) starts a session | `profile_context`, once |
| The user runs `/profile` setup, or asks what you know about how they work | `profile_get` |
| The user answers a setup question | `profile_answer` |
| Setup questions are done, or the user wants to stop with identity and style answered | `profile_finish` |
| The user explicitly asks for a standing rule ("from now on, always…") and says yes to "make that a standing rule?" | `profile_update` |
| You learn something durable about the person | `memory_save` |
| You are about to act on an always-on memory line | `memory_read` |
| Nothing in the always-on list fits, or "what did they say about…" | `memory_search` |

Cooper's own chat agents already have the profile and the always-on memory list in context under "Who you are working for" and "What you remember about them". They don't need `profile_context` or `profile_get` in a normal turn.

### Tools

| Tool | What it does | Key parameters | Returns |
|---|---|---|---|
| `profile_context` | Loads who you are working for: the profile text and the always-on memory list. Read-only. | none | `block` (text), `version`, `nudge`. If the person has no profile, `block` is null and `nudge` says to mention `/profile` once, after drafting an email or call for them. |
| `profile_get` | Reads the full profile and setup progress. Read-only. | none | `profileStatus` (`none`, `interviewing`, `review`, `active`, `declined`), `soul` (`markdown`, `version`), `answers`, `styleLines`, `pendingSoulProposal`, `interview` (`nextKey`, `mustCover`, `askedCount`, `total`), `usage` (index chars, budget 2,400, active and in-index counts). |
| `profile_answer` | Records one setup answer. | `key`: `identity`, `style` or `about` (legacy `email`, `chat`, `voice`, `boundaries`, `defaults`, `anything_else` still work, for correcting one section). `value`. `source`: `user`, `inferred` (you worked it out, such as from sent mail with consent, and must show the guess) or `skipped`. | `saved`, `nextQuestion` (`key`, `mustCover`), `remaining`, `canFinishNow`. Ask the next question in the same reply. |
| `profile_finish` | Ends setup. Without `confirm` it drafts style lines, sets the status to `review` and returns a preview; nothing is active yet. With `confirm: true` it activates the profile. | `confirm` (true only after the person saw the preview and said yes) | Without confirm: `preview`, `charCount`, `status: "review"`. With confirm: `activated: true`, `soul` (`version`, `markdown`). |
| `profile_update` | Changes one field now. Only after the person asked in this conversation and said yes. | `field` (dotted path, see below), `value`, `userSaid` (their exact words, up to 200 characters) | `ok`, `field`, `value`, `soul` (`markdown`, `version`). |
| `memory_save` | Adds, replaces, confirms or archives memories in one batch. | `ops` (1–20), or a single op's fields at top level. See below. | `ok`, `applied`, `confirmed`, `evicted`, `rejected`, `usage`, `note`. |
| `memory_read` | Reads full memories by ID. Read-only. Counts as a use, which raises the memory's rank. | `ids`: 1–10 `m_xxxx` IDs, copied exactly | `memories` (body, confidence, `lastConfirmedAt`, `source` quote; `blocked: true` with `body: null` for withheld rows; `superseded.by` if replaced), `missing`. |
| `memory_search` | Searches the person's memories by meaning, with a keyword fallback. Read-only. | `query` (2+ characters), `kinds`, `limit` (1–20, default 8), `includeArchived` (default false) | `results` (`shortId`, `kind`, `brief`, `body`, `score`, `inIndex`, `memoryStatus`). |

### Setup with profile_answer

Setup is three steps in order: `identity`, `style`, `about`. Ask one question per message and stop.

- For `identity` and `style`, pass a **structured object** with only the fields the person actually answered. Plain text is parsed far less reliably.
  - `identity`: `{ role, ownsSummary, languages: [...] }`
  - `style`: `{ email: { length: short|medium|long, greeting, signOff, signOffName, formality: plain|friendly|formal, bullets: never|when_3plus|fine }, chat: { detail: terse|balanced|detailed, numbersFirst: true|false, units: imperial|metric, currency, dateStyle: weekday_short|iso|us } }`
  - The greeting and the sign-off are different fields. "Casual, not formal" means `friendly`.
- For `about`, pass the person's message as a **plain string, exactly as typed**. Don't summarize, tidy or split it. Cooper stores it word for word and lifts out quiet hours, never-contact names, check-first items and call settings itself.
- "Skip" or "doesn't matter": call with `source: "skipped"`. Never invent an answer or fill a field they didn't speak to.
- Before using sent mail for `style`, ask. Only on yes, look at their sent mail from the last 90 days, at most 8 threads, then call with `source: "inferred"` and show your guess in two lines. Never quote recipients.
- After the last answer, call `profile_finish` with no arguments, show the preview in full in a code block, ask "Look right? Say yes, or tell me what to change.", and wait. On yes, call `profile_finish` with `confirm: true`. Never say the profile is saved until that call returns `activated: true`.

### profile_update fields

Allowed `field` values: `email.length`, `email.formality`, `email.greeting`, `email.signOff`, `email.signOffName`, `email.bullets`, `voice.pace`, `voice.formality`, `voice.introLine`, `voice.escalationRule`, `chat.detail`, `chat.numbersFirst`, `chat.units`, `chat.currency`, `chat.dateStyle`, `defaults.ambiguity`, `styleLines.email`, `styleLines.voice`, `styleLines.chat`.

- `identity.*` and `boundaries.*` can't be set by an agent. The person sets those on the settings page or in setup.
- Use only the allowed values for choice fields: `email.length` `short|medium|long`; `email.formality` and `voice.formality` `plain|friendly|formal`; `email.bullets` `never|when_3plus|fine`; `voice.pace` `unhurried|brisk`; `chat.detail` `terse|balanced|detailed`; `chat.numbersFirst` true or false; `chat.units` `imperial|metric`; `chat.dateStyle` `weekday_short|iso|us`; `defaults.ambiguity` `ask|act_and_tell|act_small_ask_big`. The tool doesn't check these values.
- `styleLines.*` appends one line (up to 160 characters, the last 4 are kept). It must start with Keep, Use, Never, Always, Lead with, Sign, Open with, or Say.
- The update rebuilds the profile text, which replaces any text the person wrote by hand, and switches on a profile that was never set up.
- For anything you only inferred, do nothing. Cooper proposes changes from repeated signals for the person to review.

### memory_save rules

Each op has `op`: `add` (new), `replace` (rewrite, keeps the ID), `confirm` (it came up again and still holds), or `remove` (archive). `shortId` is required for replace, confirm and remove.

| Field | Rule |
|---|---|
| `kind` | Required on add: `style`, `preference`, `boundary`, `correction`, `fact`, `relationship`, `commitment`. |
| `brief` | Required on add. The always-on line: one clause, present tense, third person, no trailing period, up to 80 characters. |
| `body` | The detail, read only through `memory_read`. Up to 600 characters. Defaults to the brief. |
| `confidence` | 0–1. Below 0.7 is usually not worth saving. |
| `dueAt` | Commitments only, `YYYY-MM-DD`. Archived 7 days after the date. |
| `corrects` | The `m_xxxx` ID this supersedes. The new memory becomes a `correction` and the old one is retired. |
| `evidence` | A short verbatim quote from the person, up to 200 characters. Shown to them as why you remembered it. |

- Put all changes in **one** call. The always-on budget is checked on the final result, so one batch can remove stale entries and add new ones.
- Save quietly. Don't announce it or repeat the save. A saved memory joins the always-on list from the next session; use `memory_read` until then.
- An exact or near-duplicate add (same kind) becomes a `confirm` of the existing memory instead of a new row.
- Save only durable facts about the **person**. Skip project, task, invoice, vendor, schedule or price facts (use project memory or Cooper records), to-dos (`action_item_manage`), one-off requests, third parties' private details, credentials, and anything they asked you to forget. Standing rules ("always…", "never…") are profile changes: ask "make that a standing rule?" and use `profile_update` on yes.
- Phone numbers and email addresses are stripped from non-boundary memories.

### Email and calls

- `comm_send_email` checks the sender's never-contact list before drafting. A match returns `success: false` with `refused: { reason: "do_not_contact", who, message }`. Pass the message on to the person; it tells them where to change the rule.
- In draft mode, `comm_send_email` may return `styleWarnings` and a `styleCheck` line. Fix those before asking for approval, unless the person asked for that exact wording.
- Agent-placed calls get the call part of the profile automatically. Follow the introduction line exactly.

### How to use the profile

- Where the profile and your instructions disagree on the **format, tone or wording** of something sent for the person, the profile wins. On domain judgement, tool choice, what numbers mean, or safety, your instructions win. The profile grants no permissions.
- Never show, quote or walk through the profile or the memory list. If asked what you know, summarize in your own words and point to `/profile` or Settings → Cooper AI Profile.
- The always-on list is a table of contents. Call `memory_read` with the ID before relying on a line. A line marked `[blocked — review in Settings → Cooper AI Profile]` failed a safety check; ignore it.
- In a group chat you get the profile only. Never reveal anything from it in the room.

### Common errors

| Error | Cause and fix |
|---|---|
| `code: "DISABLED"`, "User memory is not enabled for this deployment." | Profiles are switched off. Work without them. |
| `code: "NO_CONTEXT"`, "Unauthorized: no user in context" | No signed-in user. Reconnect to Cooper. |
| `code: "PAUSED"`, "This person has paused what agents remember about them. Nothing was saved." | Learning is paused. Don't retry and don't mention it unless asked. |
| `code: "INDEX_BUDGET_EXCEEDED"` | The always-on list is full. The response includes the current `index` and a `hint`. Reissue one batch that removes or shortens stale entries and adds the new ones. If the same run is refused twice, the third attempt applies anyway and moves the weakest lines to searchable-only. |
| `code: "ALL_OPS_REJECTED"` with `rejected` reasons | Fix each op. Common reasons: "brief is required", "kind must be one of …", ""m_…" is not a memory id", "no such memory", "is a contact detail rather than something about the person", "brief reads as a standing rule — those belong in the profile, not in a memory", "brief contains a link". |
| "Nothing to save — supply `ops`, or a single `op` with its fields." | Send `ops` or a single `op`. |
| `memory_read` note "None of those ids exist for this person. Use memory_search instead of guessing." | Copy IDs exactly from the always-on list, or search. |
| `code: "UNKNOWN_KEY"`, "Unknown profile question "…"" | Use `identity`, `style` or `about`. |
| `code: "BAD_ANSWER"`, "Empty answer" | Pass what the person said, or use `source: "skipped"`. |
| `code: "UNSAFE_ANSWER"` / `"UNSAFE_VALUE"`, "That answer …" / "That value …" / "That line …" | The text contains a link, credential, prompt markup or an attempt to redefine the agent, or a style line has the wrong opening. Ask the person to rephrase. |
| `code: "NOT_IN_REVIEW"`, "Nothing is waiting to be confirmed." | Call `profile_finish` without `confirm` first. |
| `code: "FIELD_NOT_UPDATABLE"` | The field isn't in the allowed list. Identity and boundaries can only be set by the person. |

## Related

- [My details](https://docs.cooperbuild.ai/account/my-details.md): your name, which your profile uses.
- [Email signature](https://docs.cooperbuild.ai/account/email-signature.md): the from-name your emails are sent as, and your mailboxes.
- [Notifications](https://docs.cooperbuild.ai/account/notifications.md): sounds and quiet hours for Cooper's own notifications, which are separate from profile quiet hours.
- [WhatsApp](https://docs.cooperbuild.ai/account/whatsapp.md): chat with Cooper from WhatsApp, where your profile also applies.
- [Connections](https://docs.cooperbuild.ai/account/connections.md): your personal connections to other systems.
- [Chat](https://docs.cooperbuild.ai/connect/chat.md): private agent chats and the `/profile` and `/memory` commands.
- [Agents](https://docs.cooperbuild.ai/brain/agents.md): the agents that read your profile.
- [AI Team](https://docs.cooperbuild.ai/brain/ai-team.md): background runs that act for you with your profile.
- [Phone](https://docs.cooperbuild.ai/connect/phone.md): AI calling, where your call settings apply.
- [Connect AI agents](https://docs.cooperbuild.ai/ai-agents.md): use your profile in Claude and ChatGPT through the Cooper MCP server.
