# Chat

> Message teammates one-to-one or in groups, share files, photos, voice notes, polls and locations, call from a thread, and bring Cooper's AI agents into the conversation.

Source: https://docs.cooperbuild.ai/connect/chat
Last updated: 2026-10-05
Keywords: chat, messaging, messages, direct message, dm, group chat, team chat, instant messaging, mentions, threads, reactions, voice notes, polls, chat dock, message requests, invite link, ai agent chat, slash commands

Chat is Cooper's internal team messaging. You use it to talk to colleagues one-to-one or in groups, to share site photos, drawings and PDFs, and to run quick decisions with polls. Project managers link group chats to projects so everyone knows which job a group is about. Field staff use voice notes and live location. You can also reach contacts at other companies who use Cooper, and invite people who don't have an account yet.

Cooper's AI agents can join a conversation too. Type `@` and an agent's name, and the agent answers in the thread.

![Chat with the conversation list on the left, an open group conversation in the middle and Group info on the right](https://docs.cooperbuild.ai/screenshots/connect/chat-overview.png)

*Screenshot: Chat. 1: search, 2: filters, 3: new message, group or meeting, 4: call and search buttons, 5: message box, 6: Group info.*

## Key concepts

| Term | Meaning |
|---|---|
| **Conversation** | Any chat: a 1:1 with one person, a group, a thread inside a group, or a private chat with an AI agent. |
| **Direct message (1:1)** | A private conversation between you and one other person. Both people have the same rights. |
| **Group** | A conversation with several people (up to 512). Every group has one **Owner**, and can have **Admins** and **Members**. |
| **Thread** | A smaller group inside a group, for example "Vendors". Only the thread's members can see it. A thread can include people who aren't in the main group. |
| **Message request** | A first message from someone outside your organization, or an invitation to join a group. You choose **Allow** or **Ignore** (or **Join** or **Decline** for a group). |
| **Invite link** | A link that lets anyone in your organization join a group without being added one at a time. |
| **Agent** | One of Cooper's AI agents. You can mention an agent in any conversation, or open a private chat with one. |
| **Chat dock** | Small floating chat windows that let you keep chatting while you work on other pages. |
| **Pinned message** | A message shown in a banner at the top of a conversation for everyone in it. |
| **Starred message** | A message you saved for yourself. Only you see your stars. |

## Open Chat

In the sidebar, open **Connect** and click **Chat**. The page opens at `/chat`. When you open a conversation, the address changes to `/chat/<conversationId>`. A link that ends in `?m=<messageId>` scrolls to that message and highlights it.

Opening `/chat` shows your conversation list but does not open a conversation, so nothing is marked as read just by visiting the page. If no conversation is open, you see **Pick a conversation** and a **Start a conversation** button.

You can also reach Chat from anywhere in Cooper:

- The **Messages** chat bubble in the top header, next to the notification bell. See [Chat from any page](#chat-from-any-page-the-chat-dock).
- The unread badge on the **Chat** item in the sidebar.

You see Chat only if your role includes **Chat** → **Messaging**. Every role has it by default. See [Permissions](#permissions).

### How the Chat page is laid out

| Screen width | Layout |
|---|---|
| Wide screens (1536 px and wider) | Three panes: the conversation list, the open conversation, and the details pane. |
| Medium screens | The conversation list and the conversation. Details open as a slide-in panel titled **Conversation details**. |
| Narrow screens (under 768 px) | One pane at a time. Use the back arrow to return to the list. |

You can drag the edge of the conversation list (240–420 px) and of the details pane (260–460 px) to resize them.

## Find a conversation

The left pane (the rail) is titled **Messages** and shows your total unread messages.

### Step 1: Search
Click **Search conversations**, or press `/` when you aren't typing in a field. Type a name or words from the conversation. Press `Esc` to clear the search.

While you type, people also appear under the matching conversations, grouped as **In your organization**, **Your contacts on Cooper**, **Your contacts without an account** and **Agents**. Click **Message**, **Send invite** or **Chat with agent** on a person to start a conversation with them.

### Step 2: Filter the list
Click a filter above the list:

| Filter | Shows |
|---|---|
| **All** | Every conversation that isn't archived. |
| **Unread** | Conversations with unread messages. The pill shows how many. |
| **Groups** | Group conversations only. |
| **Stories** | Status stories from your team and your groups (shown when your workspace uses the Office). |
| **Archived** | Conversations you archived. |
| **Calls** | Your call history. Click a call to open its conversation. |

### Step 3: Use the keyboard
Press `↑` and `↓` to move through the list and `Enter` to open the highlighted conversation.

Pinned conversations appear under **Pinned** at the top. Everything else is under **Recent**.

### What a conversation row shows

- The name or group title, the time of the last message, and a preview of it.
- A green dot when the other person in a 1:1 is online, a group badge for groups, and a robot badge for agents.
- A blue ring around the photo when the person or group has a story you haven't seen.
- An `@` badge with the number of times you were mentioned, and an unread count.
- **Video call in progress** or **Audio call in progress** while a call is running. Missed calls show in red.
- For groups: the number of members, the linked project, and a **N threads** chip you can click to show the group's threads.
- For contacts at other companies: their company, and **Waiting to be accepted** or **Request declined** if they haven't allowed your request yet.

You can drag files onto a row. The conversation opens with the files attached but not sent.

## Start a direct message

### Step 1: Open New message
Click the pencil button at the top of the conversation list (**New message or group**) and choose **New message**.

### Step 2: Find the person
In **Search by name, email or phone number**, type part of their name, their email address or their phone number. Before you type, the panel lists your **Agents**, your **Recent** conversations and **Your teammates**.

### Step 3: Pick the person
Click **Open chat** next to a teammate. If you already have a conversation with that person, Cooper reopens it instead of starting a new one.

Search covers your teammates and your contacts. If someone is missing, type their full email address or phone number.

### Message a contact at another company

People at other companies who use Cooper appear under **Your contacts on Cooper**.

1. Click **Message** next to the contact.
2. Write and send your first message.

Cooper shows: "Request sent — they will see your message once they accept." The contact sees your message as a [message request](#answer-a-message-request). Until they allow it, the conversation shows **Waiting for them to accept**. If they ignore it, you see **They declined your request** and an **Ask again** button.

If the contact has never signed in to Cooper, the button reads **Message + email** and they also get an email.

### Invite someone who isn't on Cooper

### Step 1: Open the invite form
In **New message**, click **Invite someone by email**. The form also opens on its own when you type a full email address that matches nobody.

### Step 2: Enter their address
Type the email address in **name@company.com**. You can **Add a note**. The note is shown to them when they decide whether to reply.

### Step 3: Send
Click **Send invitation**. Cooper shows "Invitation emailed to …".

The email carries a link only. Your message text is never sent in the email. If the address already belongs to someone on Cooper, Cooper sends them a message request instead.

## See the invitations you sent

Click the pencil button (**New message or group**) and choose **Invitations you sent**.

The panel shows totals for **Waiting**, **Accepted** and **Declined**, and filters for **All**, **Waiting**, **Accepted**, **Declined** and **Cancelled**. Each row shows when you sent it and when they answered. **Opened** means they viewed the link.

- Click **Open** to go to the conversation.
- Click **Cancel invitation** on a waiting invitation. This also frees the person up to be invited again.

You see **Invitations you sent** only if your role includes **Chat** → **Chat Invites & Requests**.

## Answer a message request

Requests appear as cards above your conversation list, under **Message request** or **Message requests · N**.

- For a person: click **Allow** to accept, or **Ignore**.
- For a group invitation: click **Join** or **Decline**.

When you open a conversation from someone who isn't in your contacts, a strip at the top asks: "… is not in your contacts. Allow them to keep messaging you?" Click **Allow**, **Ignore** or **Block**. You can read their messages before you answer.

If you allowed someone and want them to stop, open the conversation menu (**⋮**) and click **Stop messages**. They can ask again later, and nothing is deleted.

## Create a group

### Step 1: Open New group
Click the pencil button (**New message or group**) and choose **New group**.

### Step 2: Choose the members
On **Who is in this group?**, search in **Search teammates, contacts or an email…** and click people to add them. Switch to **Teams** to add a whole team at once (teams come from **Connect** → **Groups**). Click **Next**.

People at other companies who have Cooper accounts can be added. People without a Cooper login can't be added to a group.

### Step 3: Name the group
On **Name your group**, enter a **Group name** (for example "Tower B — MEP coordination"). You can add a **Description** and a group photo.

### Step 4: Set permissions (optional)
Open **Permissions** to decide **Who can send messages**, **Who can add members** and **Who can edit group info**. Each is **Everyone** or **Admins only**. The form starts with **Everyone** for all three.

### Step 5: Create the group
Click **Create group**. You are added as the owner.

![The New group panel on step 2, Name your group](https://docs.cooperbuild.ai/screenshots/connect/chat-new-group.png)

*Screenshot: Creating a group. 1: group photo, 2: group name, 3: description, 4: permissions, 5: Create group.*

You see **New group** in the menu only if your role includes **Chat** → **Group Chats** with write access.

### Group fields reference

| Field | Required | What it means |
|---|---|---|
| Members | Yes | At least one teammate. A group holds up to 512 people, including you. |
| Group photo | No | An image file. You can add or change it later from **Group info**. |
| **Group name** | Yes | Up to 100 characters. Shown in everyone's conversation list. |
| **Description** | No | Up to 500 characters. What the group covers — scope, area, phase. |
| **Who can send messages** | No | **Everyone** or **Admins only**. With **Admins only**, other members can read and react but not post. |
| **Who can add members** | No | **Everyone** or **Admins only**. |
| **Who can edit group info** | No | **Everyone** or **Admins only**. Covers the name, photo and description. |

## Manage a group

Click the group's photo or name at the top of the conversation to open **Group info**. On wide screens it is already open on the right.

![The Group info panel for a group conversation](https://docs.cooperbuild.ai/screenshots/connect/chat-group-info.png)

*Screenshot: Group info. 1: Mute, Pin, Search and Add shortcuts, 2: About, 3: Members, 4: Shared media, Files and Links, 5: Settings, 6: Leave group.*

**Group info** contains:

- **Mute**, **Pin**, **Search** and **Add** shortcut buttons.
- **About**: the description. Click **Edit** to change the group name and description.
- **Members**, **Threads**, **Shared media**, **Files**, **Links** and **Call history**.
- Settings: **Permissions**, **Projects**, **Add files to the project**, **Blocked people**, **Notifications**, **Archive** and **Invite link**.
- **Leave group**, and **Delete conversation** or **Delete for everyone**.

### Change the group name, photo or description

1. In **Group info**, click **Edit** next to **About**. Change the **Group name** or **Description** and click **Save**.
2. To change the photo, click the camera badge on the group photo (**Change photo** or **Add photo**).

You can do this if you are the owner or an admin, or if **Edit group info** is set to **Everyone**.

### Add members

1. In **Group info**, click **Add** (or open **Members** and click **Add members**).
2. Search in **Search teammates, contacts or an email…** and select people.
3. Click **Add to group** (or **Add N members**).

People from outside the group's organizations get an invitation they can accept or decline. You can add members if you are the owner or an admin, or if **Add members** is set to **Everyone**.

### Make someone an admin, transfer ownership or remove someone

1. In **Group info**, open **Members**. Admins are listed under **Admins**, everyone else under **Members**.
2. Click a person. Their page shows their **Role** and when they were **Added**.
3. Under **Manage**, choose an action:

| Action | Who can do it | What happens |
|---|---|---|
| **Make admin** | Owner | They can add members and edit group info. |
| **Remove admin** | Owner | They stay in the group as a member. |
| **Transfer ownership** | Owner | They become the owner and you become an admin. Only the new owner can hand ownership back. |
| **Remove from group** | Owner (anyone); admins (members only) | They lose access to the group and its history from now on. Their past messages stay. |

Nobody can remove the owner. Click **Message** on a person's page to open a 1:1 with them.

### Change who can post, add people, edit info or use agents

1. In **Group info**, click **Permissions**. The row is shown to the owner and admins.
2. Click **Send messages**, **Add members**, **Edit group info** or **Use AI agents** (shown when AI agents are on for your workspace).
3. Choose **Everyone** or **Admins only**.

The change is saved as soon as you choose, and applies immediately for everyone in the group.

### Link a group to a project

1. In **Group info**, click **Projects**.
2. Click **Link a project**, search by name or number, and select the project.
3. Click **Done**.

A group can be linked to up to 20 projects. The owner and admins can link projects in a group. In a 1:1, either person can. You can only link projects your own organization owns. Projects linked automatically, because someone in the chat is the project's client, carry a **Client** tag. To unlink, hover over the project and click the remove icon.

When a project is linked, the owner and admins can turn on **Add files to the project**. Every image, PDF, document and video uploaded to the group from then on is added to the project automatically. Files already in the group stay where they are.

### Share an invite link

1. In **Group info**, click **Invite link**.
2. Click **Create invite link**.
3. Click **Copy link** and share it.

You can also use **Copy invite link** in the conversation menu (**⋮**).

Anyone in your organization who has the link can join the group as a member. The link has no expiry date. Click **Reset link** to make the old link stop working and get a new one, or **Turn off link** so nobody can join by link. Only the owner and admins can manage the invite link. Threads and 1:1s don't have invite links.

### Join a group from an invite link

When you open an invite link (`/chat/invite/<code>`), Cooper shows the group's photo, title, description, some of its members, and whether everyone can post. Click **Join group** to join, or **Not now**. If you are already a member, click **Open group**.

If you see "This invite link no longer works", the link was reset or turned off by a group admin, or it belongs to a different organization. Ask for a fresh link.

### Leave or delete a group

- **Leave group**: in **Group info** or the conversation menu (**⋮**). You stop getting messages and need to be added back (or use an invite link) to return. Your past messages stay. If the owner leaves, ownership passes to the longest-serving admin, or to the longest-serving member if there are no admins. Cooper suggests transferring ownership yourself first.
- **Delete conversation**: removes the group from your list and clears its history for you only. Other members keep their copy.
- **Delete for everyone**: shown to the owner. Deletes the group and its entire history for every member. This can't be undone.

## Use threads in a group

A thread is a smaller group inside a group, for example for the vendors or just your team. Only its members can see it, and you only see the threads you are in.

### Start a thread from a message

1. Hover over a message in the group, click **More message actions** (**⋯**) and choose **Share to thread**.
2. Pick an existing thread, or click **New thread**.
3. For a new thread, enter a **Thread name** (for example "Vendors"), select people from the group, and add **Anyone else** you need. You can **Add a note**.
4. Click **Share**, **Create & share** or **Create thread**.

People outside your company get an invitation first. They see only the thread and what is shared into it.

You can also open **Group info** → **Threads** and click **New thread**.

### Share an answer back to the main group

Inside a thread, click **Share to main group** in the strip at the top. Write what was decided and click to post it. People in the main group see only the answer. Thread members can open the discussion from it.

Messages discussed in a thread show **Discussed in …**, and answers posted back show **From …**.

## Send a message

Type in the message box and press `Enter`. Press `Shift`+`Enter` for a new line. `Ctrl`+`Enter` (or `Cmd`+`Enter`) always sends.

- Messages can be up to 8,000 characters. A counter appears near the limit.
- Your draft is saved per conversation, so it survives a page reload.
- If a message fails to send, it shows **Message not sent** with **Retry** and **Discard**. Messages written while you are offline show **Queued** and send when you reconnect.

### Format text

Select text to show **Bold**, **Italic**, **Strikethrough** and **Code** buttons. **Bulleted list**, **Numbered list** and **Heading** are always available. You can also type the formatting:

| Format | Type | Shortcut |
|---|---|---|
| Bold | `*text*` | `Ctrl`/`Cmd`+`B` |
| Italic | `_text_` | `Ctrl`/`Cmd`+`I` |
| Strikethrough | `~text~` | `Ctrl`/`Cmd`+`U` |
| Code | `` `text` `` | |
| Bulleted list | `- ` at the start of a line | |
| Numbered list | `1. ` at the start of a line | |
| Heading | `# ` at the start of a line | |

Click **Emoji** to insert an emoji.

### Mention someone

Type `@` or click **Mention a teammate**, then pick a person. Use `↑`/`↓` and `Enter` or `Tab` to choose. The list shows the conversation's members and, when they are turned on, AI agents.

In a group, choose **@all** to notify everyone in the group. Typing `@everyone` also inserts **@all**.

A mention reaches the person even when they have muted the conversation.

### Rewrite a message with AI

When your draft is 2,000 characters or less, click **Clean up this message** (the magic wand). Cooper rewrites the draft and shows **Rewritten**. Pick a different tone (**Clearer**, **Shorter**, **More formal** or **Warmer**) or click **Undo**. Mentions are kept as they are.

## Share files, photos and more

Click **Add an attachment** (the paperclip) and choose:

| Option | What it does |
|---|---|
| **Upload from computer** | Pick files from your device. |
| **Media library** | Reuse a file already in your organization. Opens filtered to the conversation's linked project; clear the filter to see everything. |
| **Location** | Send where you are, or share it live. |
| **Poll** | Ask the conversation to decide something. |
| **Action** | Ask someone in the conversation to do something. Creates an action item. |

![The attachment menu open above the message box](https://docs.cooperbuild.ai/screenshots/connect/chat-composer-attach.png)

*Screenshot: The message box. 1: Add an attachment menu, 2: Mention a teammate, 3: Record a voice note, 4: Clean up this message, 5: Send.*

### Attach files

- Up to 30 attachments per message, and up to 100 MB per file. Any file type is accepted.
- Paste a screenshot or file into the message box, or drag files onto the message box or the conversation.
- Nothing sends until you press **Send**. You can add text to the same message.
- A file that fails to upload shows **Upload failed**. Click **Retry upload** or remove it.

Photos show as a grid, PDFs show a first-page preview, and small text, Markdown and CSV files show their first lines. Click a photo or video to open the viewer. You can zoom (up to 8×), use the arrow keys to move between items, and **Download**. Documents open in Cooper's file viewer.

### Record a voice note

1. Click **Record a voice note** (the microphone). Allow microphone access if your browser asks.
2. Speak. A timer shows how long you have recorded. Recording stops on its own at 5 minutes.
3. Click **Stop and attach**, or **Discard**.
4. Click **Send**.

Voice notes play back at 1×, 1.5× or 2×.

### Create a poll

1. Click **Add an attachment** → **Poll**.
2. Enter the question in **What are we deciding?** (up to 300 characters).
3. Enter at least 2 options, and up to 12. Click **Add option** for more.
4. Turn on **Allow multiple answers** if voters may pick more than one.
5. Click **Create poll**.

A poll can't be edited after it is sent. Results show counts only, never who voted. To vote, click an option. With multiple answers, click **Save votes**. The person who created the poll, or an admin, can click **Close poll**.

### Share your location

1. Click **Add an attachment** → **Location**. Allow location access if your browser asks.
2. Check the map and address. Click **Refresh** if needed.
3. To keep updating as you move, turn on **Share live** and choose **15 min**, **1 hour** or **8 hours** in **Keep sharing for**.
4. Click **Send location** or **Start sharing**.

People can click **Open in Maps**. While you share live, you can click **Stop sharing** on the message.

## Work with a message

Hover over a message (or press and hold on a touch screen) to show **React to message**, **Reply to message**, **Forward message** and **More message actions** (**⋯**).

![The More message actions menu open on a message](https://docs.cooperbuild.ai/screenshots/connect/chat-message-actions.png)

*Screenshot: Message actions. 1: React, 2: Reply, 3: Forward, 4: More message actions menu.*

| Action | Where | Who can use it |
|---|---|---|
| React | Smiley button. Quick reactions are 👍 ❤️ 😂 🎉 👀 🙏; click **⋯** for every emoji. Click your reaction again to remove it. | Anyone |
| **Reply** | Quotes the message above your reply. Press `Esc` to cancel. | Anyone |
| **Forward** | See [Forward messages](#forward-messages). | Anyone |
| **Copy text** | **⋯** menu | Anyone |
| **Edit message** | **⋯** menu, or press `↑` in an empty message box to edit your last message. Edited messages show **edited**. | The sender, for text messages. There is no time limit. |
| **Share to thread** | **⋯** menu | Group members |
| **Select messages** | **⋯** menu. Pick several messages to forward together. | Anyone |
| **Pin message** / **Unpin message** | **⋯** menu. Shows at the top of the conversation for everyone. | Any member |
| **Star message** / **Remove star** | **⋯** menu. Saves it to your starred messages. | Anyone (stars are private) |
| **Download** | **⋯** menu, when the message has attachments. Several files download as a zip. | Anyone |
| **Message info** | **⋯** menu. Shows who has received and read it. | Groups |
| **Delete for me** | **⋯** menu. The message disappears from your view only. | Anyone |
| **Delete for everyone** | **⋯** menu. Everyone sees "This message was deleted". This can't be undone. | The sender; group owners and admins; you, for an agent's reply to your question. Also needs the **Delete** right in **Chat** → **Messaging**. |

In a group, click a person's photo or name on a message and click **Message** to open a 1:1 with them.

### Read receipts

Your own messages show ticks:

| Tick | Meaning |
|---|---|
| Clock | **Sending**, or **Queued** while you are offline |
| One tick | **Sent** |
| Two grey ticks | **Delivered** |
| Two coloured ticks | **Read** |
| Warning | **Not sent** |

In a group, open **Message info** to see who has **Read** it, who it was **Delivered** to, and who it is **Not delivered yet** to.

### Pinned messages

Pinned messages show in a banner at the top of the conversation, newest first. Click the banner to jump to the message. With several pins, use the arrows to move between them. Click **Unpin this message** to remove it.

### Forward messages

1. Click **Forward** on a message. To forward several, choose **⋯** → **Select messages**, click up to 20 messages, then click **Forward**.
2. Search for and pick one or more conversations.
3. Send. Forwarded messages show **Forwarded from …**.

The number of messages multiplied by the number of conversations can be at most 60.

## Search inside a conversation

1. Click **Search in conversation** (the magnifier) in the conversation header.
2. Type at least two characters in **Search this conversation…**.
3. Click a result to jump to the message.

Search shows up to 25 results. Press `Esc` to close it.

## See shared media, files and links

In **Group info** or **Contact info**, click **Shared media**, **Files** or **Links**. The panel has tabs for **Media**, **Files** and **Links**.

To download several photos at once, open **Media**, click **Select**, click the photos, then click **Download (N)**. Cooper creates a zip.

## Call from a conversation

Click **Audio call** or **Video call** in the conversation header. In a group, the buttons read **Start a group call** and **Start a group video call**, and you can choose who rings. A pre-join screen opens. Click **Call now**.

Everyone in a group can start a call. When calling isn't available, the buttons are greyed out and the tooltip says why. Conversations mirrored from Slack have no call buttons.

## Arrange a meeting from Chat

Click the pencil button (**New message or group**) and choose **New meeting**. The same **New meeting** form opens as in the Meetings module. You can schedule a meeting or start one now. See [Meetings](https://docs.cooperbuild.ai/connect/meetings.md).

Meetings that are about to start, or are happening now, also appear as a strip at the top of your conversation list, with **Join** and **Decline** buttons.

## Chat with AI agents

AI agents are available when your workspace has chat agents switched on, and your role includes **Chat** → **AI Agents in Chat**.

- **In any conversation:** type `@` and pick an agent, or type `@AgentName`. Only the first agent named in a message runs. Files you attach go to the agent too. Replying to an agent's answer asks that agent again.
- **In a private agent chat:** in **New message**, pick an agent under **Agents** and click **Chat with agent**. Every message you send goes to that agent.

While an agent works, you see a panel with its progress and a **Stop the agent** button. Only you see this panel. Others see "… is working — … · asked by …".

If an agent needs an answer from you, a question appears in place of the message box. Pick an option (press `1`–`9`), type your own answer, or click **Skip**.

Each agent answer has **See how this was answered**, which shows the tools and steps the agent used.

In a group, the owner or an admin can set **Use AI agents** to **Admins only** in **Permissions**.

### Slash commands for agents

Type a command at the start of a message and press **Send**. The reply is shown only to you.

| Command | What it does |
|---|---|
| `/new` | Start fresh — the agent forgets this chat up to now |
| `/reset` | Same as `/new` |
| `/compact` | Summarise older history, keep the gist |
| `/status` | Model, context in use, and cost so far |
| `/stop` | Stop the agent working here |
| `/model` | Show or set the model for this agent here |
| `/think` (or `/t`) | How hard the agent thinks: low, medium, high |
| `/agents` | Which agents you can use here |
| `/profile` (or `/soul`) | How agents write, call and answer for you |
| `/memory` (or `/mem`) | What agents remember about you |
| `/help` (or `/?`) | List the commands |

To target one agent, add its name, for example `/status @Blake`.

## Action items and Cooper cards in chat

### Ask someone to do something

Click **Add an attachment** → **Action** to create an action item in the conversation. Cooper may also spot action items in what people write. These show **Cooper spotted this**.

The person who owes the action item, and the person waiting for it, can:

- Click **Done** or **Started**.
- Click **Dismiss** on an item Cooper spotted.
- Click **Make a task** to create a project task tied to the action item. Finishing either one closes the other.
- Click the pencil (**Change who owes this**) to change who is **Doing it** and who is **Waiting for it**.

See [Action items](https://docs.cooperbuild.ai/connect/action-items.md).

### Records shared in chat

RFIs, projects, tasks, invoices, submittals and estimates can appear as cards with a status and an **Open** link. If you don't have access to the record, the card says so. Ask the sender for access.

### Cooper checks

When a message says something happened, for example "RFI #5 response received", Cooper compares it with the project records and adds cards under the message. The person who has to act gets buttons such as **Close RFI #5** or **Do all N**. Nothing changes in a record until someone presses a button. Click **Not now** to hide a card for a day.

## Mute, pin and archive conversations

Right-click a conversation in the list (or long-press it on touch), or open the conversation menu (**⋮**) in the header:

| Action | What it does |
|---|---|
| **Mute for 8 hours**, **Mute for 1 week**, **Mute until I turn it back on** | Stops notifications for this conversation. Mentions still reach you. Click **Unmute** to undo. |
| **Pin conversation** / **Unpin conversation** | Keeps the conversation at the top of your list. |
| **Archive** / **Move to inbox** | Hides the conversation until someone replies. Find it under **Archived**. |
| **Delete conversation** | Removes it from your list and clears its history for you. |

Muting, pinning and archiving are personal. Nobody else in the conversation can see them.

In **Group info** → **Notifications**, you can choose **Every message** or **Mentions and replies**, and set **Mute until**.

## Block someone

When someone who isn't in your contacts messages you, click **Block** in the strip at the top of the conversation. They can no longer message you, and the history stays.

Blocking is between you and that person. It applies everywhere you use Cooper, and doesn't remove either of you from any group.

To unblock, click **Unblock** in the conversation, or open **Group info** or **Contact info** → **Blocked people** and click **Unblock**.

## Get notified about new messages

- **Unread badges:** the **Chat** item in the sidebar, the **Messages** bubble in the header and the rail all show your unread message count.
- **Message sound:** click the speaker button at the top of the conversation list. Turn **Message sound** on or off, set the **Volume**, and click **Play test sound**. The sound plays for new messages in other conversations, only while Cooper is open, and is held back while you are on a call.
- **Browser notifications:** if you see "You won't be told when someone replies", click **Turn on notifications** and allow them in your browser. If your browser blocks Cooper notifications, click **Show me how**.
- **Push notifications** go to your phone and browser when you aren't online in Cooper.

If you see "Not connected — messages will send when you're back online", Cooper has lost its connection. Your messages send when the connection returns.

## Chat from any page (the chat dock)

You can chat without leaving the page you are on.

### Step 1: Open the Messages menu
Click the **Messages** chat bubble in the top header. Choose the **Unread** or **All** tab. Click **Mark all as read** to clear every unread badge.

### Step 2: Open a conversation
Click a conversation. It opens in a small window at the bottom right of the screen.

### Step 3: Work with the window
Drag the window by its title bar. Use **Minimize**, **Open full page**, **Collapse to button** or **Close**. Drag the top-left corner to resize it.

![The Messages menu open from the header, with a chat window docked at the bottom right](https://docs.cooperbuild.ai/screenshots/connect/chat-dock.png)

*Screenshot: The chat dock. 1: Messages in the header, 2: Unread and All tabs, 3: a docked chat window, 4: Open full page.*

- Up to 3 windows can be open. Opening a fourth closes the oldest.
- Collapsed windows become a round button at the bottom right. Click it to pick a conversation. Right-click it for **Open all chats** and **Close all chats**.
- Your open windows are restored when you reload the page.
- The dock isn't shown on the Chat page itself or on small screens. There, conversations open in Chat.

## Permissions

Two separate things control what you can do in Chat.

**Your role** decides whether you can use Chat at all. In **Settings** → **Roles**, the **Chat** module has four parts:

| Part | What it allows |
|---|---|
| **Messaging** | Read: open Chat and read conversations. Write: send, react, forward and upload. Delete: delete any message you are allowed to for everyone. |
| **Group Chats** | Read: see groups. Write: create groups and manage their members and settings. Delete: delete a whole group. |
| **Chat Invites & Requests** | Invite links, email invitations and message requests. |
| **AI Agents in Chat** | Use AI agents in conversations. |

Every role has all four by default. An admin can untick them for a role, for example to turn Chat off for site workers. Without **Messaging**, the Chat menu item, the Chat page and the header **Messages** bubble disappear.

**Your role in a group** decides what you can do inside that group:

| Action | Owner | Admin | Member |
|---|:---:|:---:|:---:|
| Send messages | Yes | Yes | Yes, unless **Send messages** is **Admins only** |
| Pin messages, start calls, leave | Yes | Yes | Yes |
| Change name, photo, description | Yes | Yes | Only if **Edit group info** is **Everyone** |
| Add members | Yes | Yes | Only if **Add members** is **Everyone** |
| Remove members | Yes | Members only | No |
| Make or remove admins, transfer ownership | Yes | No | No |
| Link projects, manage the invite link | Yes | Yes | No |
| Delete any message for everyone | Yes | Yes | No (own messages only) |
| Delete the group for everyone | Yes | No | No |

A role permission doesn't make you an admin of somebody else's group.

### Chat clean-up (message retention)

Chat messages and call transcripts are kept forever unless automatic clean-up is turned on. Only Cooper super admins can change this, in **Admin** → **Chat Clean-up**. They set **Keep chat messages for** and **Keep call transcripts for** (**Forever**, **90 days**, **6 months**, **1 year**, **2 years**, **7 years**, or a number of days, minimum 7). Clean-up runs nightly. Deleted messages, and the files attached to them, can't be recovered.

## Tips and best practices

- Link each project group to its project, and turn on **Add files to the project** so site photos and PDFs file themselves.
- Use **Mentions and replies** or mute busy groups. People can still reach you with an `@` mention.
- Use a thread for vendor or subcontractor discussions, so outsiders see only what is shared with them.
- Use a poll instead of a long back-and-forth when the group needs to decide something.
- Pin the message with the current plan, address or gate code so newcomers find it.

## Troubleshooting

### I can't see Chat in the sidebar

Your role doesn't include **Chat** → **Messaging**. Ask an admin to tick it for your role in **Settings** → **Roles**. If you open `/chat` without it, you see an Access Denied page.

### I can't find New group

Your role doesn't include write access to **Chat** → **Group Chats**. Ask an admin to grant it.

### The message box says only admins can post

The group's **Send messages** permission is set to **Admins only**. You still receive every message. Ask the group's owner or an admin to change it.

### I can't add someone to a group

Only the owner and admins can add members, unless **Add members** is set to **Everyone**. People without a Cooper login can't be added. Invite them from **New message** first. A group is full at 512 people.

### Someone at another company hasn't replied

Your message is a message request until they allow it. The conversation shows **Waiting for them to accept**. If it shows **They declined your request**, you can click **Ask again**.

### I don't see any AI agents when I type @

Chat agents may be switched off for your workspace, your role may not include **Chat** → **AI Agents in Chat**, or the group may have **Use AI agents** set to **Admins only**.

### My file won't attach

Each file can be up to 100 MB, and a message can carry up to 30 attachments. You can't add files while editing a message.

### I'm not getting notified

Check that the conversation isn't muted (a muted icon shows next to its name). Turn on browser notifications when Cooper asks, or click **Show me how** if your browser blocks them. Check that **Message sound** is on.

### This invite link no longer works

A group admin reset or turned off the link, or it belongs to a different organization. Ask for a fresh link.

## For AI agents

Use these CooperBuild MCP tools to work with Chat on the user's behalf. The user's role must include the matching **Chat** permission.

| Tool | Use it for | Key parameters |
|---|---|---|
| `chat_send` | Find chats and people (`find`), read recent messages (`read`), and send a message as the user (`send`). Sends immediately, with no preview. | `action`; `query`; `conversationId`; for `send`: `text` (up to 8,000 characters) and exactly one of `conversationId`, `userId` or `email`; optional `replyToMessageId` |
| `chat_group_manage` | Create a group (`create`), rename or change its description or image (`update`), link or unlink projects (`link_project`, `unlink_project`), change a member's role (`set_role`), transfer ownership (`transfer_owner`). | `title`; `userIds`, `names`, `emails`; `projectIds`; `role` (`admin` or `member`); `targetUserId` or `targetName`; `confirm: true` for `transfer_owner` (the first call only previews) |
| `chat_group_members` | List a group's members and what the user may do (`list`); add people (`add`). | `conversationId` or `query`; `userIds`, `names`, `emails` |
| `chat_agent_message` | An agent starts a 1:1 conversation with a staff user. Previews first. | `userId` or `email`; `text`; `agentId`; `reason`; `confirm: true` to send |

Rules to follow:

- Confirm the wording and destination with the user before calling `chat_send` with `send`, because it sends straight away. Don't use it to broadcast to a list of people.
- When `chat_group_members` adds people, report colleagues as **added** and people outside the organization as **invited** (they join only when they accept).
- No tool removes members, leaves a group, deletes a group or changes group permission settings. Send the user to **Group info** in Chat for those.
- `chat_agent_message` reaches staff users only, and is limited to a few agent-started messages per person per day. Use email or SMS tools for outside contacts.

Common errors:

| Error | Fix |
|---|---|
| `TARGET_REQUIRED` / `TARGET_AMBIGUOUS` | Give exactly one destination: `conversationId`, `userId` or `email`. |
| `PERSON_NOT_FOUND` | Use `chat_send` with `find` to look the person up first. |
| `NOT_ON_COOPER` | The person has no Cooper login. Ask the user whether to text or email them instead. |
| `NOT_ALLOWED` | The group's settings or the user's role don't allow it (for example, only admins can add members). Tell the user who can. |
| `NOT_A_MEMBER` / `MEMBER_AMBIGUOUS` | The named person isn't in the group, or the name matches several people. Use `chat_group_members` with `list` and pass `targetUserId`. |
| `NOTHING_TO_CHANGE` | Nothing to update. Permission settings can't be changed through this tool. |
| `CHAT_AGENTS_DISABLED` | Chat agents are switched off for the workspace in **Connected AI Services**. |
| `OUTREACH_CAP_REACHED` | The daily limit of agent-started messages to that person is reached. Try tomorrow. |

To point a user at a message, use `/chat/<conversationId>?m=<messageId>`.

## Related

- [Meetings](https://docs.cooperbuild.ai/connect/meetings.md) — arrange and hold video meetings, including from Chat.
- [Action items](https://docs.cooperbuild.ai/connect/action-items.md) — the action items you create and track in conversations.
- [Teams](https://docs.cooperbuild.ai/connect/teams.md) — add a whole team to a group at once.
- [Phone](https://docs.cooperbuild.ai/connect/phone.md) — call and text people outside Cooper.
- [Settings](https://docs.cooperbuild.ai/connect/settings.md) — where admins change role permissions.
