You can now find conversations and reply to them. This lesson is about the tools that turn ten minutes of typing into a thirty-second action — the features that good agents use _every single conversation_ without thinking about it.

We'll focus on the in-conversation toolkit: private notes, canned responses, labels, macros, conversation actions, and participants. Lesson 3(b) will cover the data-and-context side: contacts, custom attributes, bulk actions, and advanced filtering.

## What you'll learn

- How to talk to your team _inside_ a conversation without the customer seeing it
- How to reply in two keystrokes using canned responses
- How to keep your queue organized with labels (and what to actually label)
- How to chain three or four routine steps into a single click using macros
- How to assign, route, snooze, and prioritize from the conversation actions panel
- How to pull teammates into a conversation as participants without handing it off

**You'll need:** A test conversation in your inbox (carry over the one from Lesson 2) and admin access to set up at least one canned response and one macro.

---

## 1. Private Notes — your team's sidebar

A **private note** is a message inside a conversation that _only your team_ can see. The customer never sees it, never gets notified, and it never leaves Voxys Connect.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCQTVNSVFVPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--8c1b33a4c7fe687f50238cf7a78dc154d4399b64/private-notes.gif)

Use it for:

- "Looping you in — this looks like a billing edge case."
- "FYI, I already refunded their last order. Don't double up."
- "Customer is a VIP, please prioritize."

### How to send one

1. Open a conversation.
2. Switch the reply tab from **Reply** to **Private Note** (top of the message composer).
3. Type your note. The composer turns yellow so you don't mix them up with public replies.
4. Hit **Send**.

### @mentions inside notes

Type `@` and start typing a teammate/team's name. Selecting them does two things:

- They get a **notification** (in-app, push, and optionally email).
- The conversation shows up in their **Mentions** view.

_**Rule of thumb:** if you'd otherwise Slack a teammate about the conversation, write a private note instead. The context stays attached to the conversation._

---

## 2. Canned Responses — your reply shortcuts

A **canned response** is a saved reply template you trigger with a short code. Instead of retyping "Thanks for reaching out! Could you share your account email so I can look this up?" thirty times a day, you save it once as `/email-ask` and trigger it with two characters.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCR1pMSVFVPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--d5b3bcb339902ed88ff215cea5d197198d34d4e4/canned-responses.gif)

### Setting one up

1. Go to **Settings → Canned Responses → Add Canned Response**.
2. Fill in:

- **Short Code** — what you'll type to trigger it (e.g. `email-ask`)
- **Content** — the template body. Markdown works.
3. Save.

### Using one in a conversation

In the reply box, type `/` followed by the short code (`/email-ask`). A picker pops up — hit Enter and the full template fills in. Edit if needed, then send.

### What to make canned responses for (start with these five)

- A friendly greeting / opener
- Asking for an account email or order number
- "We're looking into this and will get back to you within X hours"
- A closing line you use to wrap conversations
- A link to your most-shared docs article (refund policy, pricing, install guide — whatever your top hit is)

> 
> **Tip:** Canned responses are _templates_, not robots. Personalize the first sentence — using the customer's name and one detail from their message — before you send.
> 
> 

---

## 3. Labels — the digital sticky notes

A **label** is a tag you attach to a conversation. Labels are account-wide and reusable. Used well, they're how you find patterns ("we got 12 `billing-bug` reports this week") and how you build saved folders ("show me all open `vip` conversations").

### Adding a label to a conversation

- From the **conversation actions panel** on the right: click **Add Label** and pick or create one.
- Or use the keyboard: hit `Cmd+K` to find the shortcut for label-add.

### How to think about labels

Labels work best when you keep the list short, opinionated, and consistent. Three categories cover most teams:

| Category | Example labels | Why |
| --- | --- | --- |
| Topic | billing, bug-report, feature-request, onboarding | What the conversation is about |
| Customer signal | vip, at-risk, enterprise | Who you're talking to |
| Workflow | needs-engineering, needs-followup, escalated | What needs to happen next |

  

_**Anti-pattern:** ten labels that mean almost the same thing (`bug`, `bugs`, `bug-report`, `defect`, `issue`). Pick one and delete the rest. Run a label cleanup once a quarter._

---

## 4. Macros — chained actions in one click

A **macro** is a saved sequence of actions. Where a canned response is just text, a macro can do _several things at once_: send a reply, add a label, assign a team, snooze the conversation — all in a single click.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCQ0ZPSVFVPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--99b80ed019cfa19f318d450a5889ca1c60c29f5b/macros.jpg)

### A real example: the "refund issued" macro

When you process a refund, you probably do all of these:

1. Send a templated message confirming the refund
2. Add a `refund-issued` label
3. Assign to the **Finance** team for record-keeping
4. Resolve the conversation

A macro bundles those four steps into a single button.

### Setting one up

1. Go to **Settings → Macros → Add a new Macro**.
2. Name it (e.g. _Refund issued_).
3. Add **actions** in order — the action picker has options like _Send Message_, _Assign Team_, _Add Label_, _Resolve Conversation_, _Send Email Transcript_.
4. Set **visibility**: _Private_ (just you) or _Public_ (whole team). Save.

### Running a macro

Open any conversation, scroll the right sidebar to **Macros**, pick yours, and click **Run**. Done.

_**When to write a macro:** any time you find yourself doing the same three or four actions back-to-back more than a few times a week. Five minutes setting up the macro saves you hours over a quarter._

---

## 5. Conversation Actions — the right sidebar in detail

The **conversation actions** panel (right side, top section) is where you change the state of a conversation. Quick tour:

| Action | Use it for |
| --- | --- |
| Assignee | Hand the conversation to a specific agent |
| Team | Route to a group (Engineering, Billing, CS) so any team member can pick it up |
| Conversation Status | Open / Pending / Resolved / Snoozed (covered in Lesson 2) |
| Priority | Low / Medium / High / Urgent — shows up in queue sorting and SLA calculations |
| Add Label | Apply one or more labels |

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCSDlPSVFVPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--db48e5b9b916261d6df3f31cffd5bc244a8b6a62/conversation-actions.jpg)

_**Status vs assignee:** changing **assignee** moves who's responsible; changing **status** moves where it sits in the workflow. They're independent — you can have a Resolved conversation with an assignee, or an Open conversation that's unassigned._

---

## 6. Conversation Participants — collaborate without handing off

Sometimes you need a teammate's eyes on a conversation, but you don't want to _give it to them_. That's what **participants** are for.

- **Assignee** = the one person responsible for replying.
- **Participant** = anyone else who's watching and can chime in.
- 

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCT1JPSVFVPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--46758000b4b5c586b9c95425039c5381f2a89276/conversation-participants.jpg)

### How to add one

In the conversation actions panel, click **Participants → Add** and pick teammates. They'll get notifications for new activity on the conversation, and it'll show up in their **Participating** view.

### When to use it

- A senior agent shadowing a junior agent's reply
- Pulling in an engineer for a technical thread without making them own customer comms
- Keeping a manager in the loop on an escalated case

> 
> **Don't** add the whole team as participants — that's notification spam. Two or three people max, with a reason.
> 
> 

---

## Mini-exercise (5 minutes)

1. Create one canned response. Use shortcode `hi` and content _"Hi {{_[_contact.name_](http://contact.name)_}}, thanks for reaching out — how can I help?"_. (The `{{contact.name}}` placeholder auto-fills the customer's name.)
2. Create one macro called _Wrap up_ that adds a `resolved-by-me` label and resolves the conversation.
3. Open your test conversation. Send a private note `@teammate trying out mentions`.
4. Trigger your `/hi` canned response.
5. Run the _Wrap up_ macro.

If all five worked, you've used the entire core toolkit.

---

## Common questions

**Can the customer ever see private notes or macro internals?**

No. Private notes and macro action steps (assign, label, etc.) are invisible to the customer. Only macro actions of type _Send Message_ go to the customer — and those look like normal replies.

**Can I edit a canned response after the fact?**

Yes. **Settings → Canned Responses**, click any row, edit, save. Existing usages (already-sent messages) aren't changed retroactively.

**What's the difference between assigning a team vs. an agent?**

Assigning to an **agent** says "this is yours specifically." Assigning to a **team** says "anyone on this team can pick it up." Most teams use team assignment for routing and agent assignment for ownership.

**Should I label every conversation?**

You don't have to label every conversation, but a quick label on closing — even just one — pays off enormously when you look at reports later. Make it a habit on resolve.

**Macros don't run automatically?**

Correct — macros are _manual_. If you want something to run automatically based on a trigger (like "auto-label any conversation containing the word 'refund'"), that's an **Automation Rule**, which we'll cover in a later lesson.

---

## What's next

In **Lesson 3(b): Working with customer context**, we'll switch focus from _what you do to a conversation_ to _what you know about the customer_: the contact record, custom attributes, previous conversations, bulk actions across many conversations at once, and saved filters that turn a chaotic queue into a focused workspace.