Home Chatwoot 101
πŸš€

Chatwoot 101

Start here to understand Chatwoot, key concepts, and how the platform helps you manage customer conversations.
Pranav Raj Jithin
By Pranav Raj and 1 other
β€’ 9 articles

Chatwoot Glossary

A reference of common terms, features, and concepts used throughout Chatwoot. A Access Token Application APIs are designed to interact with a Chatwoot account from a user's perspective. So, to integrate apps and authenticate to these APIs, you will require a user access_token, which can be obtained from your Profile Settings. Account A workspace in Chatwoot that contains your inboxes, agents, contacts, conversations, and settings. A single Chatwoot installation can host multiple accounts. Administrator (Admin) Administrators are account users who have complete access to all the enabled features. They can also control all the account settings, unlike agents. Advanced Filters A way to build complex, multi-condition filters on conversations or contacts (for example, status + label + assignee + custom attribute). Filter groups can be saved as folders or segments for quick reuse. Agent An Agent is anyone from your team who can answer customer conversations. An agent has lesser account permissions as compared to the administrator. Agent Bot A bot that can be connected to one or more inboxes to handle the initial part of a conversation (greetings, qualification, FAQs) and hand off to a human agent when needed. Agent Status An agent can set themself as Online, Busy, or Offline through their Profile Settings. AI Assistant An AI-powered conversational agent (configured via Captain) that can answer customer questions using your Help Center content and your defined guardrails, and hand off to a human agent when required. API The APIs (Application Programming Interface) in Chatwoot enable you to connect more external systems than the UI offers. See the types of APIs in Chatwoot. Applications External apps that are natively integrated with Chatwoot. Setting these up lets you enhance your customer engagement toolset. E.g. you can build a chatbot using the native integration with the Dialogflow app. Archived articles Articles you don't want to be deleted, but are no longer relevant. Article A document created in the Help Center portal under a topic category that holds essential information about an aspect of a product. These articles can be shared in customer conversations. Assignee A person on your team who is assigned a conversation β€” usually assumes its responsibility and sends answers to it. Assignment Policy A rule that controls how new conversations are distributed to agents in an inbox or team (for example, round robin or balanced load), so that work is shared automatically rather than picked up manually. Audio Notifications On the dashboard, Chatwoot alerts you of new events (like new messages and conversations) by playing an alert tone. You can customize your preferences in Profile Settings. Audit Logs A record of significant administrative actions performed in an account (user changes, settings updates, role changes, etc.), available to administrators for compliance and traceability. Author (Article) The author of a Help Center article, chosen from the Agents list. Their name and thumbnail appear on the published article page. Automation A set of rules an Admin defines for the account to automate specific tasks. Examples include assigning agents or teams, adding labels, snoozing conversations, etc. Actions are triggered based on events and conditions you define. B Bots Bots automate parts of a conversation, such as greeting a customer when they first message. See also: Agent Bot, AI Assistant, Captain. Bulk Actions The ability to perform an operation on multiple conversations or contacts at once β€” assigning an agent, applying a label, resolving, snoozing, or deleting in one step instead of repeating the action per record. Business Hours You can set the working hours for any channel/inbox within Chatwoot. Whenever your agents associated with a particular inbox are outside their working hours, Chatwoot will show a custom message to the customer. C Campaigns Campaigns let you create outbound messages for your customers and web visitors. Two types: - Ongoing: Outbound messages in website live chat based on conditions, e.g. if a user visited the Pricing page and stayed for 3 minutes, send a message offering advice. - One-off: SMS or email campaigns sent to a group of contacts. Canned Responses Saved reply templates that can be sent to a conversation quickly using a shortcode. Captain Chatwoot's AI suite. Captain powers AI Assistants for end customers and Copilot for agents, and is configured from a dedicated console where you connect knowledge sources, set guardrails, and define handoff rules. Categories (Help Center) You can divide a Help Center portal into categories and write specific articles under each. Categories appear as sections (in a grid layout) when your Help Center is live. Channel/Inbox A channel is a mode of communication your customer uses to talk to you. An inbox is an instance of a channel β€” for example, an email inbox, a website live chat, a WhatsApp number, etc. Companies A grouping of contacts that belong to the same organization. Useful for B2B support so you can see all conversations and contacts associated with a single customer company. Contacts The contacts on your account store information on the people who have ever messaged you, plus any list you upload manually. Contact Segments A saved filter group for your contacts. Content Templates Pre-approved message templates used on channels like WhatsApp and SMS, where you must send a structured message (with optional variables and media) to start or re-engage a conversation outside the messaging window. Conversation Continuity The ability for a customer to keep the same conversation thread when they reply over a different channel β€” for example, replying by email to a website-chat transcript so the message lands in the same conversation. Conversation Participants Agents added to a conversation as collaborators alongside the assignee. Participants can follow the conversation, get notifications, and contribute privately without taking over ownership. Conversations Your chats with various customers are referred to as conversations in Chatwoot. Copilot An AI-powered assistant for agents inside the conversation view. Copilot can suggest replies, summarize threads, rephrase drafts, and pull answers from your knowledge base while the agent is composing. CSAT CSAT, short for Customer Satisfaction, is feedback your customers provide based on their satisfaction with your support team. It is usually a rating system (with optional textual feedback). These ratings can be averaged out for certain periods to find the "CSAT score" for your team. You can track CSAT scores under the CSAT Reports section on your dashboard. Custom Attributes Track custom info/facts about conversations and/or contacts. Standard facts are name, email, location, etc. Custom Attributes are things like subscription plan, signup date, most ordered item, etc. Custom Role A role with a configurable set of permissions, beyond the default Administrator and Agent roles. Used to fine-tune what specific users can access β€” conversations, contacts, reports, knowledge base, etc. D Dashboard The primary area of work displaying all the vital information and features to work with and interact on conversations. Dashboard Apps A dashboard app is an external application brought onto your dashboard for quick access to customer data. For example, if you have a customer-orders tracking app, you can embed it on your dashboard with this feature. Draft Article An article that is a work-in-progress but not published. Draft Reply If you're composing a reply or a private note to a teammate and leave the screen or refresh the page, your text will be right where you left it. Chatwoot saves the data and preserves your unsent messages as drafts. E Email Notifications Chatwoot sends you an email whenever a particular activity occurs in your account, like a new conversation being created or assigned to you. You can personalize your email notification preferences from Profile Settings. F First Response Time (FRT) A metric (also used in reports) that calculates the total time taken to send the first reply to a customer's message by a particular agent, team, or inbox. Folder (conversation) When you group your conversations with the help of filters, you can save them as custom folders. Saved folders appear on the left sidebar of your dashboard for quick access. Forward to Email When you set up an Email channel, your incoming support emails to your primary inbox (such as Gmail) need to be forwarded to Chatwoot. This is achieved with the Forward to Email setting under the Email channel settings. H Help Center You can create and manage a complete customer-facing portal from your dashboard. Primarily, you can manage your knowledge base and product articles from this portal and use these articles directly in your conversations. (This glossary is itself an example of a Help Center article.) I IMAP IMAP (Internet Messaging Access Protocol) allows you to read your email messages from your email inbox. Enable this option from the Email channel settings. Import (contacts) You can manually add contacts to your contacts list on Chatwoot by uploading a CSV file. You can include standard as well as custom contact details. Incoming Messages Any new message sent by a customer is an incoming message. K Knowledge Base A set of product articles and documentation created to help your customers. You can manage your knowledge base with the Help Center from your dashboard. L Labels A digital sticker for your conversations, used to categorize them. Labels are created on the account level and can be used across. Examples: bug-report, new-customer, spam, feature-request. Live Chat Live chat customer support is a way for customers to interact with the support team in real time, via a chat widget integrated into a company's website or app. M Macro A set of sequential saved actions β€” labelling a conversation, sending an email transcript, sending an attachment, etc. β€” that you can define from your Chatwoot Settings. You can make a personal macro or one available for your team. Macros are run from the chat sidebar. Markdown Chatwoot uses markdown language in its messages and Help Center articles. Mentions You can tag a fellow teammate on private notes to notify them about a matter you want to discuss. You can also view (only) the conversations that mention you by using the Mentions view on the dashboard. Metadata (Help Center articles) You can write a meta title, description, and tags for your Help Center articles to be displayed in search engine results. All metadata can be managed from the article's sidebar. Metrics Objective numbers/goals or KPIs you can track about your support team. Examples: CSAT score, First Response Time, Response rate. You can track many metrics about your conversations, agents, and teams using the Reports section. Mobile SDK A set of tools and resources developers use to create mobile apps for iOS or Android. The SDK has libraries and utilities to help you integrate Chatwoot with an app. Mute You can mute a conversation to stop receiving alerts for it. N Notifications There are four types of notifications in Chatwoot β€” audio, email, push, and Slack. You can customize your preferences from Profile Settings and set up the Slack integration. O Open A conversation status implying that a conversation is ready to be picked up by an agent. Outgoing Messages Any message sent from the Chatwoot dashboard is an outgoing message. P Pending A conversation status that indicates the conversation is not yet ready for an agent to pick up β€” typically used when an AI assistant or bot is still handling the customer. Personal Message Signature A personal signature, if configured, is appended to all messages you send from your email inbox by default. Set up your signature from Profile Settings. Portal A single Help Center instance is called a portal. You can create multiple portals from a single account β€” for example, one for product documentation and another for internal processes. Pre-chat Form A form shown to website visitors before they start a live chat, used to collect details like name, email, or the reason for contact. Configurable per inbox. Private Notes Private Notes are available within your conversation window. You can privately discuss customer queries with teammates before replying. Push Notifications If enabled, Chatwoot will send push notifications whenever a specific event occurs (new message, new conversation, etc.). Customize your preferences in Profile Settings. R Reports A set of reports on Chatwoot, each providing an overview of certain analytics associated with your account. Resolution Count A metric (also used in reports) that calculates the total conversations resolved in a period by a particular agent, team, or inbox. Resolution Time A metric (also used in reports) that calculates the total time taken to resolve a conversation by a particular agent, team, or in a specific inbox. Resolved A conversation status applied when a conversation is ready to conclude. S SLA (Service Level Agreement) A policy that defines target response and resolution times (FRT, NRT, RT) for conversations, optionally aligned with business hours. Chatwoot tracks SLA breaches and surfaces them in reports and conversation views so teams can prioritize at-risk conversations. SMTP Simple Mail Transfer Protocol (SMTP) is a setting that enables you to send messages from Chatwoot through your email inbox. Enable this option from your Email channel settings. Snoozed A conversation status applied when you need to wait a certain period or need a reply from the customer to continue the conversation. T Teams A team is a group of specific agents on your account who handle a certain type of conversation. For example, an Engineering team for tech queries, a Finance team for billing queries, and a Customer Success team for product queries. U Unassigned A conversation state applied by default when a conversation hasn't been assigned to an agent yet β€” manually or automatically. Unattended A dashboard view that lists all conversations that are not yet been responded to. V Voice Channel An inbox type for handling phone calls (e.g. via Twilio Voice). Voice conversations are tracked alongside chat and email, with call statuses such as incoming, outgoing, and missed. W Webhook A configurable HTTP callback Chatwoot fires on specific events (new conversation, new message, status change, etc.) so external systems can react in real time. Widget The embeddable live chat widget you place on a website to capture visitor conversations into a Website inbox. Configurable for colors, position, pre-chat form, and visibility rules.

Last updated on Apr 27, 2026

Getting Started with Chatwoot

Welcome to Chatwoot. This tutorial will help you set up your account and understand the basics you need to start supporting customers. It is designed for first-time users, so you can follow along without any prior experience. By the end, you will have a working Chatwoot workspace and a clear idea of how to use it for day-to-day customer communication. What you will learn In this tutorial, we will cover: - Setting up your Chatwoot account - Configuring the basic workspace settings - Understanding inboxes, conversations, contacts, and agents - Responding to customers from a shared inbox - Following simple practices for better customer communication The goal is to help you understand how Chatwoot fits into your support workflow, not just where each feature is located. Who this tutorial is for This tutorial is useful for: - Teams setting up Chatwoot for customer support, sales, or engagement - Founders, operators, and support teams moving customer conversations into one place - Anyone preparing to invite teammates or go live with customers What you will have by the end After completing this tutorial, you should be able to navigate your workspace, manage basic settings, respond to conversations, and know what to explore next as your team grows. Before you begin If you do not have a Chatwoot account yet, sign up for a free trial before starting. If you already have an account, continue to the first lesson. Let’s get started.

Last updated on Apr 28, 2026

Lesson 1: Your first Chatwoot conversation

Welcome to Chatwoot! This is the first stop in a hands-on series that takes you from a brand-new account to a fully running support desk. By the end of this lesson, you'll have a working website inbox and you'll have replied to your very first customer message. What you'll learn - What Chatwoot is and how it fits into your support stack - What channels and inboxes are, and how they relate - How a customer message becomes a conversation on your dashboard - How to set up a website live chat inbox in under five minutes - How to send your first reply and resolve the conversation You'll need: A Chatwoot account (free trial works) and any website where you can paste a snippet of code. Don't have a site handy? You can test on a local HTML file. What is Chatwoot? Chatwoot is a single dashboard for every customer conversation your business has β€” email, website live chat, WhatsApp, Instagram, Facebook, SMS, Telegram, and more. Instead of switching between five different apps and losing track of who said what, your team works out of one place, with shared context, history, and tools. Think of it as your team's shared inbox for customers β€” but with the automation, reporting, and AI helpers a real support team needs. Channels and inboxes (the one concept to understand first) A channel is a type of communication β€” Email, Website, WhatsApp, SMS, etc. An inbox is a specific instance of a channel that's connected to your account. For example: - "support[@]acme.com" is an email inbox - The chat widget on acme.com is a website inbox - Your +1-555-… WhatsApp number is a WhatsApp inbox You can have as many inboxes as you need, even multiple of the same type (one website inbox for marketing, another for billing). Every message that comes in lives inside an inbox, and every inbox can have its own agents, business hours, greeting, and routing rules. Tip: Don't overthink your inbox layout on day one. Start with one, get comfortable, then split it up as your team grows. How a message becomes a conversation Here's the lifecycle of a single customer message β€” keep this in mind as you go through the rest of the product: 1. Customer sends a message on one of your channels (e.g. types into your website widget). 2. Chatwoot creates a conversation in the matching inbox. The conversation starts in the Open status or in Pending status if Captain is connected. 3. An agent is assigned β€” automatically (via assignment policy) or manually. 4. Agent replies from the dashboard. The reply goes back to the customer over the same channel they wrote in on. 5. The conversation is resolved when the issue is handled. It's not deleted β€” the full history stays searchable, attached to the contact. Conversations have four common statuses: Open, Pending, Snoozed, and Resolved. You'll meet all of them as you go. Set up your first inbox: Website live chat We'll use the website channel because it's the fastest way to see Chatwoot working end-to-end. Step 1 β€” Open the inbox setup From the dashboard, go to Settings β†’ Inboxes β†’ Add Inbox. Step 2 β€” Pick "Website" You'll see a grid of channel types. Click the Website icon. Step 3 β€” Fill in the basics - Website Name β€” what your customers will see at the top of the chat widget (e.g. Acme Support). - Website Domain β€” the URL where the widget will live (e.g. https://acme.com). - Widget Color β€” pick something on-brand. - Welcome Heading & Tagline β€” the first thing visitors read when they open the widget. Step 4 β€” Add agents Choose which teammates can reply to messages from this inbox. You can add or remove people later. Step 5 β€” Install the snippet Chatwoot will hand you a small JavaScript snippet. Paste it into your site's <head> (or just before </body>). Reload your page and you should see the chat bubble in the corner. No website yet? You don't need one to test. Go to Settings β†’ Inboxes, click the gear icon next to your new inbox to open its settings, then open the Configuration tab and click Open in Codepen on the script. A live widget will open in your browser where you can send messages straight away. Step 6 β€” Send a test message Click the chat bubble on your site, type "Hello from my first visitor!" and hit send. Step 7 β€” Reply from the dashboard Switch back to your Chatwoot dashboard. The new conversation will appear at the top of your conversation list with an unread badge. Click it, type your reply in the chat box at the bottom, and hit send. The customer will see it instantly in the widget. πŸŽ‰ You've just handled your first Chatwoot conversation. A quick tour of the conversation view Once you're inside a conversation, here's what each part does β€” at a glance: | Area | What it's for | | ---------------------------- | ------------------------------------------------------------------------------------- | | Reply box | Send public replies to the customer | | Private Notes | Discuss the conversation with teammates β€” the customer never sees these | | Right sidebar | Customer details, conversation actions, custom attributes, and previous conversations | | Conversation actions | Assign an agent, change status, snooze, add labels | | Conversation list (left) | Filter by status, assignee, inbox, label, or saved folder | You don't need to use any of these on day one. Replying from the chat box is enough to support real customers. Resolving the conversation When you're done helping the customer: 1. Click Resolve at the top of the conversation. 2. The conversation moves out of your Open queue and into Resolved. 3. If you've enabled CSAT, the customer is automatically asked to rate the experience. If the customer replies after resolving, the conversation automatically reopens β€” nothing falls through the cracks. Try these next (optional, 1 minute each) While you're here, poke at one or two of these so they're not strangers later: - Set your status to Online β€” top right avatar β†’ Online / Busy / Offline. - Send a private note β€” type @teammate looks like a billing issue in the Private Notes tab. - Add a label β€” try bug-report or feature-request from the top bar. - Snooze the conversation β€” useful for "waiting on customer" cases. Common first-day questions Will the customer see my name? Yes β€” your display name and avatar from Profile Settings appear on outgoing replies. Take a minute to set both before you reply to a real customer. What if I reply to the wrong person? You can delete a message you sent (on live chat widget, it is not supported in other channels). After that, send a follow-up correction β€” the original stays in dashboard with a deleted message for accuracy, the customer doesn't see it again. Can two agents work on the same conversation? Yes. One agent is the Assignee (owns the reply); others can be added as Conversation Participants to follow along and chime in. Is anything I type in the chat box sent immediately? No. Replies only send when you click Send (or hit ⌘/Ctrl+Enter). And if you navigate away mid-message, Chatwoot keeps a Draft Reply so you don't lose your work. What's next In Lesson 2, we'll go beyond the reply box: private notes, canned responses, labels, and how to keep your queue tidy as conversations pile up. Until then, your homework is simple: send yourself three test messages from the widget and reply to each one. Muscle memory beats theory. Welcome aboard. πŸ‘‹

Last updated on Apr 27, 2026

Lesson 2: Dashboard Basics

In Lesson 1 you sent your first reply. That's enough to support one customer. To support fifty without losing your mind, you need to know your way around the dashboard. This lesson is the map. What you'll learn - The four regions of the Chatwoot dashboard and what each one is for - How to find any conversation fast β€” by status, assignee, inbox, label, or text - The four conversation statuses and when to use each - The difference between Mine, Unassigned, All, Mentions, and Unattended views - How to set your availability and manage notifications - The keyboard shortcuts that pay for themselves on day one You'll need: Your inbox from Lesson 1 and at least one test conversation in it. (Send yourself two or three messages from the widget so the dashboard isn't empty.) The four regions of the dashboard Almost every screen in Chatwoot is laid out the same way. Once this clicks, the rest of the product becomes obvious. 1. Navigation rail (far left) Vertical strip of icons. Top to bottom: Inbox, Conversations, Captain (if AI is enabled), Contacts, Reports, Campaigns, Help Center, and Settings. This is how you switch pages β€” everything else changes based on where you are here. 2. Conversation list (middle-left) A scrollable list of conversations with filters and tabs at the top. This is where you live during a shift. 3. Conversation view (center) The actual messages plus the reply box. Tabs at the top let you switch between Reply, Private Note, and (where supported) Email mode for outbound messages. 4. Context panel (right) Everything you might need to know about the customer β€” contact details, previous conversations, custom attributes, conversation actions (assign, label, team, status), and any dashboard apps you've added. Tip: You can collapse the right panel. Useful on small screens or when you're focused purely on the message thread. The conversation list, in detail This is the panel you'll spend the most time scanning. Three things to learn: Tabs at the top: who owns what | Tab | Shows | | -------------- | ----------------------------------------------- | | Mine | Conversations assigned to you | | Unassigned | Conversations no agent has picked up yet | | All | Every conversation in the inbox(es) you can see | Most teams build their day around Mine (work the queue you own) and Unassigned (grab the next one when Mine is empty). Status filter: where in the lifecycle Right under the tabs, switch between: - Open β€” the customer is waiting on a reply - Pending β€” bot or AI is handling it, not yet ready for a human - Snoozed β€” set aside until a date/time or until the customer replies - Resolved β€” done Two more views you should know about - Mentions β€” conversations where a teammate @-mentioned you in a private note. Treat this like email β€” check it daily. - Unattended β€” assigned conversations that still haven't gotten a first reply. This is where managers find dropped balls. Both live in the navigation as separate views, not under the Mine/Unassigned/All tabs. Filters, folders, and search Quick filters (left sidebar) Below the Conversations entry in the nav, you'll find a tree: - Inboxes β€” filter by a specific channel (just Email, just Website, etc.) - Labels β€” filter by a label you've applied (bug-report, vip, etc.) - Teams β€” filter by the team handling the conversation - Folders β€” filters you've saved Folders Anytime you build a useful filter, click Save filter as folder and give it a name. It appears under Folders for one-click access. Examples worth saving on day one: - VIP customers waiting β€” label vip + status Open - Stuck in pending β€” status Pending + last activity > 1 day - My snoozed β€” assignee Me + status Snoozed Search The search bar at the top of the dashboard searches across conversations, messages, contacts, and articles. Conversation statuses, and when to use which You'll set conversation status many times a day. Pick the right one and your queue stays honest. | Status | Use it when… | What it does | | ------------ | --------------------------------------------------------------------------- | ------------------------------------------------------------------- | | Open | The customer is actively waiting | Default state β€” visible in everyone's queue | | Pending | Captain or a bot is handling, and the conversation isn't ready for an agent | Hides from agent default views | | Snoozed | You're waiting on the customer or internal team | Auto-reopens on customer reply or timer | | Resolved | The issue is handled | Drops out of Open; can reopen automatically if the customer replies | Rule of thumb: if you wouldn't want to see this conversation again today, snooze it. The Open queue is for things that need attention now. Your status: Online, Busy, Offline Bottom left of the dashboard, click your avatar to set: - Online β€” you're available; auto-assignment sends you new work - Busy β€” you're around but heads-down; the system avoids assigning new conversations to you - Offline β€” you're done for the day; new work goes to others Your status is also visible to teammates, so they know when to ping you. Auto-offline: Chatwoot will mark you offline automatically if you close the tab or go idle, so you won't accidentally hold conversations after logging off. My Inbox My inbox in the navigation shows in-app notifications: new assignments, mentions, conversation creations, and SLA alerts. Click any item to jump straight to the conversation. Notifications You also have four notification channels you can configure from Profile Settings β†’ Notifications: - Audio β€” alert sound on the dashboard - Email β€” for things you'd want to see from your inbox - Push β€” browser push, even when the dashboard isn't open A common starting point: enable Push for Conversation assigned to me and Mention, leave audio on, skip the rest until they prove useful. Mini-exercise (3 minutes) Try these in order. They cement everything above: 1. Send yourself two new test messages from the widget so the queue isn't empty. 2. From the dashboard, open the second one and assign it to yourself. 3. Apply a label called practice. 4. Snooze it until tomorrow morning. 5. Click into Mine, then Snoozed β€” your conversation should be there. 6. Build a filter: status = Open, label = practice. Save it as a folder called Practice queue. If everything in that list felt natural, you're ready to actually run a shift. Common questions Why don't I see all my team's conversations? You only see inboxes you've been added to. If a conversation is missing, you may not be a member of that inbox β€” ask an admin. My queue feels overwhelming. What do I work first? Default order: Mentions β†’ Unattended β†’ Mine (Open) β†’ Unassigned. Mentions and unattended are signals that something is off; Mine is your committed work; Unassigned is "new fuel" once the first three are clear. A conversation I resolved came back. Did I do something wrong? No β€” that's by design. If a customer replies after you resolve, Chatwoot reopens the conversation automatically so it doesn't get lost. Feeling confident about the dashboard? That probably took 5 minutes! Let us understand all the core features next. Go to Lesson 3A now.

Last updated on Apr 27, 2026

Lesson 3 (a): Mastering core features

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 Chatwoot. 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. 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. 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 | 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. - 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}}, 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.

Last updated on Apr 27, 2026

Lesson 3 (b): Working with Customer Context

Lesson 3(a) was about what you do inside a conversation. This lesson is about what you know about the person on the other end and how to use that knowledge to give better, faster, more personal support. The shift in mindset: stop thinking of each conversation as an isolated message thread. Start thinking of it as the latest entry in a long relationship with a specific human being, one who has a name, a history, an account, and a set of facts you should know before you reply. What you'll learn - How to read a contact record at a glance - How to use a customer's previous conversations to answer faster - What custom attributes are and how they make replies smarter - How to take action on dozens of conversations at once with bulk actions - How to turn complex filters into one-click saved folders and segments - How to find anything β€” fast β€” using global search You'll need: A few test conversations from the same contact (send 2-3 messages from the widget so you have history to play with). 1. The contact record β€” your customer's profile Every person who messages you becomes a contact. The contact record is the one place where everything you know about that person lives. What the contact record contains | Section | What's in it | | --------------------- | ----------------------------------------------------------------------------- | | Identity | Name, email, phone, profile photo, locale | | Company | Organization the contact belongs to (for B2B teams) | | Conversations | Every conversation they've ever had with you, across all channels | | Custom Attributes | Any custom data you track about this contact | | Notes | Free-form notes about the customer (separate from conversation private notes) | Two minutes that change every reply Before you reply to anything non-trivial, glance at three things in the contact panel: 1. Their name β€” use it in the reply. 2. Previous conversations β€” if they wrote in last week, you should know what about. 3. Custom attributes β€” plan, signup date, account ID. The "boring" facts are usually the ones that change your answer. Tip: "I see you wrote in last Tuesday about the same export bug β€” let me check on the fix" is the difference between a generic support reply and one that feels like you actually care. 2. Previous conversations β€” the history that already exists Inside any conversation, the right sidebar has a Previous Conversations section. It lists every prior thread with this contact, regardless of channel. Why this matters Customers don't think in conversation IDs. They think "I told you about this last month." If you can pull up that thread in one click, you save them the frustration of re-explaining and you save yourself the trouble of asking. How to use it well - Skim, don't read. Look at the resolved threads' subject lines and labels. You're looking for patterns (this customer always asks about exports) more than specifics. Use Captain to summarize previous thread to make it easier. - Look at recent labels. If the last three conversations are labeled billing, today's "quick question" probably isn't. - Open the most recent one in a new tab if you need full context β€” keep your current conversation open in the original tab. 3. Custom Attributes β€” the data your replies depend on A custom attribute is a field you define on contacts or conversations to track something specific to your business. Standard contact fields (name, email, phone) are universal. Custom attributes are the things only your business cares about: subscription plan, signup date, MRR, last login, account ID, customer tier. Two flavors - Contact custom attributes β€” facts about the person (e.g. Plan, Signup Date, Lifetime Value). - Conversation custom attributes β€” facts about the conversation (e.g. Order Number, Bug Severity, Refund Amount). Setting one up 1. Go to Settings β†’ Custom Attributes β†’ Add Custom Attribute. 2. Choose Applies To: Contact or Conversation. 3. Pick a type: Text, Number, Link, Date, List (dropdown), or Checkbox. 4. Name it and add a description. Save. The new attribute now appears in the right sidebar of every contact or conversation, ready to be filled in. How custom attributes make you faster - They populate canned response variables β€” {{contact.custom_attribute.plan}} in a template auto-fills the customer's plan. - They power filters β€” "show me all open conversations from Enterprise plan customers." - They drive automation rules β€” "auto-assign Enterprise customers to the senior team." *Where the data comes from: for SaaS, you'll usually populate custom attributes via the *identify API when a logged-in user opens the chat widget. Attributes you fill in by hand also stick. 4. Bulk Actions β€” handling many conversations at once Some days the queue is fine. Other days you come back from lunch to forty new conversations from the same outage. Bulk actions are how you process them at scale. How to trigger bulk mode In the conversation list, hover over a conversation and a checkbox appears on the left. Tick one and a selection bar shows up at the top. Tick more, or hit Select all, to act on the whole batch. What you can do in bulk - Assign agent or team - Add or remove labels - Change status (resolve, snooze, reopen) 5. Saved filters β€” folders and contact segments You met Folders briefly in Lesson 2. Now we'll go deeper, and meet their cousin: Contact Segments. Folders (for conversations) A folder is a saved conversation filter. It always reflects current data, open the folder and you see the latest matches, not a frozen snapshot. Build one: 1. Click Conversations β†’ Custom view β†’ New filter. 2. Add conditions: status, assignee, inbox, labels, custom attributes, dates, etc. Combine them with AND / OR. 3. Click Save filter and give it a name. It now lives under Custom Folders in the left rail, one click away. Contact Segments A contact segment is the same idea, applied to your contacts directory. "All contacts on the Enterprise plan who have written in this month" becomes a one-click view you can revisit any time. Build one: 1. Go to Contacts β†’ All Contacts β†’ Filter. 2. Add conditions on standard fields and custom attributes. 3. Click Save filter as segment. Folders compound. The folders you save in week one will still be saving you time in year two. Build them as you go. 6. Global search Click on search input on the navigation from anywhere in the dashboard to focus the global search bar. It searches across: - Conversations β€” by message text, subject, or ID - Contacts β€” by name, email, phone, identifier - Articles β€” your Help Center content When to use search vs. filters - Search when you remember a specific phrase, name, or number. "Did Sarah mention the export bug?" - Filters/folders when you want to see a category of conversations. "All open billing tickets." If you're typing the same search query more than twice a week, that's a filter waiting to be saved as a folder. Mini-exercise (6 minutes) 1. Create a contact custom attribute called Plan (List type, options: Free, Pro, Enterprise). 2. On your test contact, set Plan = Pro. 3. Update your /hi canned response from Lesson 3(a) to include {{contact.custom_attribute.plan}} somewhere β€” e.g. "Hi {{contact.name}}, thanks for reaching out about your {{contact.custom_attribute.plan}} plan." 4. Trigger /hi in a conversation. The plan should auto-fill. 5. Build a filter: Status = Open AND Plan = Pro. Save it as a folder named Pro queue. 6. Send yourself two more test messages, tick their checkboxes in the queue, and bulk-apply a label practice. If all six worked, you've graduated from "I can use Chatwoot" to "I can run a shift in Chatwoot." Common questions A contact has duplicate entries β€” same person, two records. Why? Usually they wrote in from two different channels (e.g. email and website chat) before the system could match them. Open one record and use Merge contact to combine them. Conversation history from both is preserved. Can I edit standard contact fields? Yes. Click any field in the contact panel and edit inline. Changes save immediately. Can i use custom attributes in filters? Yes, they appear as filter options for both conversations and contacts. They're also exposed in canned response variables. Are bulk actions in conversations reversible? The action itself cannot be reversed, but the outcome is reversible. You can re-assign, remove a label that was added etc, but the history of the previous action remains in the activity messages. Why do I see different contacts in different inboxes? You don't. Contacts are account-wide. But conversations are scoped to inboxes. If you can see only some inboxes, you'll see only some of that contact's conversations. Ask an admin if you think you're missing inbox access. What's next You've now mastered the core agent toolkit, from layout (Lesson 2) to in-conversation tools (3a) to customer context (3b). In Lesson 4, we'll zoom out from individual conversations to the systems that handle volume: automations, SLAs, business hours, and the routing rules that make sure the right conversation reaches the right agent before you even have to think about it.

Last updated on Apr 27, 2026

Lesson 4: Automation and Routing

So far, every action you've taken in Chatwoot has been manual, you clicked, you typed, you assigned. That works for 10 conversations a day. It collapses at a hundred. This lesson is about the systems that run while you sleep: business hours, auto-assignment, automation rules, and SLAs. Set these up once, and the dashboard does the routine work for you, landing the right conversation on the right agent at the right time, with the right urgency, before anyone has to think about it. What you'll learn - When to automate something and when not to - How to set business hours so customers know what to expect outside working time - How to auto-assign conversations to agents using assignment policies - How to write automation rules that label, route, and reply based on conditions - How SLAs put a clock on response and resolution times, and what happens when one's about to breach - How all four systems chain together to handle volume gracefully You'll need: Admin access to your Chatwoot account. Most of this lesson lives under Settings, which agents typically can't edit. A mindset before we start: when to automate Automation feels powerful, and that's the trap. The temptation is to automate everything on day one and end up with a tangle of rules that fight each other six months later. A simple test before you build any rule: "Have I done this exact same thing manually at least ten times in the last two weeks?" If yes, it's worth automating. If no, do it manually a few more times until you're sure of the pattern. Bad automation is worse than no automation β€” it routes things wrong, replies inappropriately, and erodes trust in the system. Build slow. Delete aggressively. Review your rules quarterly. 1. Business Hours β€” telling customers when you're around Business Hours define when your team is available, per inbox. They power three things: 1. Out-of-hours messages. Customers who write outside business hours see a custom message ("We're back at 9am EST tomorrow") instead of nothing. 2. SLA timers. When SLAs are configured to use business hours, the clock pauses overnight and on weekends β€” so a Friday-evening ticket isn't already 2 days "late" when Monday morning starts. 3. Reporting accuracy. Response time metrics can be calculated against working time, not wall-clock time. Setting them up 1. Go to Settings β†’ Inboxes, click your inbox, then the Business Hours tab. 2. Toggle Enable business availability for this inbox. 3. Pick your timezone. 4. For each day of the week, set the start and end times (or mark the day as unavailable). 5. Write your out-of-office message β€” keep it short and warm: "Thanks for reaching out! Our team is available Mon–Fri, 9am–6pm EST. We'll get back to you first thing tomorrow." 6. Save. 2. Auto-assignment β€” who gets the next conversation By default, new conversations land in Unassigned and an agent has to grab them. Good for tiny teams. Painful at any real volume. Chatwoot's auto-assignment picks an agent for each new conversation automatically. Two strategies: Round Robin The default. Conversations are distributed evenly across all online, available agents in the inbox. Simple, fair, and what most teams should start with. Balanced Assignment Distributes based on current load β€” the agent with the fewest open conversations gets the next one. Better for teams where some conversations take much longer than others. Setting it up 1. Settings β†’ Inboxes β†’ your inbox β†’ Configuration. 2. You will see an option to configure an assignment policy. 3. Save. What auto-assignment respects - Agent availability. Offline and Busy agents are skipped (Busy can be configured per workspace). - Inbox membership. Only agents added to that specific inbox are eligible. - Capacity (Enterprise / Custom Roles). You can cap how many open conversations one agent can hold at once. Tip: Auto-assignment routes the conversation initially. Reassignments (manual or via macro) override it. So you can let the system pick a default, and let humans intervene when context demands. 3. Automation Rules β€” the if-this-then-that engine If business hours and auto-assignment handle every conversation the same way, automation rules handle specific conversations specifically. They're the rule engine that listens for events, checks conditions, and runs actions. Anatomy of a rule Every automation rule has three parts: 1. Event β€” when does the rule consider firing? - Conversation Created β€” runs once, when the conversation first appears - Conversation Updated/Opened/Resolved β€” runs when something changes (status, assignee, label, custom attribute) - Message Created β€” runs on each new incoming or outgoing message 2. Conditions β€” who does it apply to? Filters on inbox, channel, content, contact attributes, custom attributes, business hours, etc. 3. Actions β€” what should happen? Assign agent or team, add labels, send messages, change status, run a macro, etc. Setting one up Settings β†’ Automation β†’ Add Automation Rule. Name it, pick the event, build the conditions (combinable with AND/OR), pick the actions (you can chain several), and save. Rules run in the order they're listed. Some rules worth building first | Rule name | Event | Condition | Actions | | ------------------------- | -------------------- | ---------------------------------------------- | -------------------------------------------------------- | | Route billing tickets | Conversation Created | Message contains invoice, charge, refund | Assign Team Finance; add label billing | | Flag VIPs | Conversation Created | Contact attribute Plan = Enterprise | Set Priority High; add label vip; assign senior team | Common pitfalls - Loops. A rule that sends a message, listening for Message Created, can re-trigger itself. We would not run automations on actions that were triggered by another automation. Always scope conditions tightly to avoid this. - Silent rules. It's easy to forget a rule exists. Make sure that you are checking the automation rules once every quarter to see if you should update something. Macros vs. Automation Rules: macros are manual, you click and run. Automation rules are automatic, they run on events. When you find yourself running the same macro on every conversation matching a pattern, convert it to an automation rule. 4. SLAs β€” putting a clock on response An SLA (Service Level Agreement) is a policy that says "this kind of conversation must get a response within X minutes and a resolution within Y hours." Chatwoot tracks the clock for you, surfaces conversations that are about to breach, and reports on how often you hit your targets. The three timers an SLA can track - First Response Time (FRT) β€” how long until the first agent reply - Next Response Time (NRT) β€” how long until each subsequent reply when the customer is waiting - Resolution Time (RT) β€” how long until the conversation reaches Resolved You can set any combination, with different thresholds. Setting one up 1. Settings β†’ SLA β†’ Add SLA. 2. Name it (e.g. Enterprise priority). 3. Set the targets β€” FRT: 15 min, NRT: 30 min, RT: 4 hours. 4. Choose whether the clock uses business hours or runs 24/7. 5. Save. Applying it to conversations SLAs aren't applied to every conversation by default β€” that would be noise. Apply them via Automation rule. What you see on the dashboard - A countdown on conversations with an active SLA, in the conversation list and the conversation header. - An SLA breach indicator when a target has been missed. - A dedicated SLA report showing hit rate, breach reasons, and trends. Don't over-promise. A 5-minute FRT SLA on every inbox sounds great until you breach it 80% of the time. Pick targets you can actually hit, and tighten as the team gets faster. 5. How they all chain together Here's a Tuesday-morning customer message flowing through the whole system, with no manual touch until step 7: 1. 9:03am. A customer on the Enterprise plan writes in via the website widget: "Our exports are failing again." 2. Business Hours check β€” yes, we're open. No auto-responder fires. 3. Auto-assignment (Round Robin) picks Sarah, who's online. 4. Automation rule "Flag VIPs" matches: contact's Plan = Enterprise. Sets priority High, adds label vip, applies the Enterprise priority SLA. 5. Automation rule "Route bug reports" matches the word failing. Adds label bug-report. 6. SLA timer starts. FRT countdown: 15:00. 7. Sarah opens the conversation. Everything she needs is already in place β€” priority set, labels applied, engineer looped in, countdown showing 14:42 left. She replies in two minutes. 8. SLA stops the FRT clock at 02:18 β€” well within target. What you'd otherwise do manually, read the contact panel, set priority, label, loop in engineering, mentally start a clock, has all happened before Sarah even saw the conversation. That's the whole point. Mini-exercise (8 minutes) You'll need admin access. We'll build a small-but-real automated workflow. 1. Set business hours on your test inbox: Mon–Fri, 9am–6pm in your timezone, with a friendly out-of-office message. 2. Enable auto-assignment with Round Robin. Add yourself as the only agent so you get every conversation. 3. Build an automation rule: - Event: Conversation Created - Condition: Message contains bug - Actions: Add label bug-report, Set priority High 4. Build an SLA: name it Standard, FRT = 30 min, RT = 24 hours, business hours on. 5. Apply the SLA to your test inbox by default. 6. Test it. Open the widget and send the message "I think I found a bug". 7. Check the resulting conversation: it should be auto-assigned to you, labeled bug-report, priority High, with an SLA countdown ticking. If all four pieces fired, you've automated more than most teams ever do. Common questions Will an automation rule run on conversations that already exist? No β€” rules run forward. They only fire on events that happen after you create or enable the rule. Existing conversations are unaffected. Can I disable a rule temporarily without deleting it? Yes. Each rule has an Active toggle in the automation list. Use this for seasonal rules ("Holiday autoresponder") that you want to keep configured but turn off most of the year. What happens if two rules both match the same conversation? Both run, in the order they're listed. Watch out for conflicting actions (e.g. one rule assigns Team A and another assigns Team B β€” last write wins). Do SLAs apply on weekends? Only if you've configured the SLA to ignore business hours. Default behavior pauses the clock outside working hours so you don't breach overnight. Can a customer see their SLA timer? No. SLA countdowns are agent-facing only. The customer just experiences faster responses. Does auto-assignment skip an agent if they're at capacity? Yes, when you've set capacity limits via Custom Roles or workspace config. Otherwise it distributes regardless of current load (Round Robin) or by load (Balanced).

Last updated on Apr 27, 2026

Lesson 5: AI Actions

Lesson 4 was about rules β€” if-this-then-that automation that runs without judgment. This lesson is about AI β€” the layer that brings judgment, language, and reasoning into your support stack. Captain, the AI Agent in Chatwoot doesn't just route conversations; it can read them, understand them, look up answers, and act on your behalf. There are two parts, and they do different jobs: - Captain AI Assistant: customer-facing AI that handles conversations on behalf of your team. - Captain Copilot : agent-facing AI that helps you handle conversations faster. This lesson covers both, plus the actions Captain can take inside your account. What you'll learn - The difference between Captain and Copilot, and when to reach for each - How to configure a Captain Assistant β€” knowledge, guardrails, response guidelines, behavior toggles - The seven built-in actions an Assistant can take inside Chatwoot - How custom tools let an Assistant call your APIs - How scenarios route conversations through conditional handoff workflows - How Copilot helps an agent inside a single conversation - The limits and guardrails worth understanding before you go live You'll need: An account with the Captain feature enabled. Captain is a premium, Enterprise-gated capability β€” if you don't see the Captain icon in the navigation rail, the feature isn't enabled on your plan/install. You'll also need to provide an OpenAI key at the system level (handled by your installation admin). Before we go anywhere, here is the mental model: | | Captain | Copilot | | -------------------- | ----------------------------------------------------------- | ------------------------------------------------------------- | | Who it talks to | Your customer | Your agent | | Where it appears | Inside the chat widget / inbox | In the conversation sidebar, message editor, bulk actions | | What it does | Handles the conversation directly, with handoff when needed | Suggests replies, answers agent questions, surfaces knowledge | | Visible to customer? | Yes, they're chatting with it | No, internal use only | | Goal | Deflect / resolve without a human | Help the human be faster | You can use one, the other, or both. Most teams start with Copilot and build AI Assistant on specific inboxes once they have visibility of the things that should automate. 1. Captain Assistants β€” the configurable AI A Captain Assistant is a named, configurable AI persona. You can create multiple Assistants β€” for example, a support Assistant for the website inbox and a sales Assistant for the WhatsApp inbox. Configuring an Assistant Go to Captain in the navigation and create a new Assistant. You'll set: - Name & description β€” for your team's reference - Product name β€” used in prompts so the AI talks about your product, not "the product" - Temperature β€” how creative vs. deterministic the responses should be (lower = more predictable, higher = more varied) - Feature toggles: - FAQ lookup β€” let the Assistant search your knowledge base before replying - Conversation memory β€” let it consider earlier messages in the same conversation - Contact attributes β€” let it factor in what you know about the contact (plan, signup date, etc.) Tip: start with a tightly scoped Assistant. "Answer questions about our pricing and refund policy. If asked anything else, hand off to a human." A narrow scope produces good results fast and earns trust. Widen later. Connecting an Assistant to an inbox An Assistant only handles customer conversations on inboxes you explicitly connect it to. From the Assistant's settings, choose which inboxes it should engage with. Conversations on those inboxes will be handled by the Assistant first; everywhere else stays human-only. Recommended starting point: create one Assistant, connect it to one low-stakes inbox (FAQ-style queries, not billing or technical bugs), and watch how it does for a week before expanding. 2. Knowledge β€” what the Assistant knows Out of the box, the Assistant knows nothing about your business. You feed it knowledge through documents. Three types of knowledge sources | Type | What it is | Limit | | -------- | -------------------------------------------------------- | ----------------------- | | URL | Crawl a public webpage (your docs, marketing site, blog) | Per-plan document quota | | PDF | Upload a file (manuals, internal docs, policies) | 10MB per file | | Text | Paste raw text directly | | When you add a document, Captain processes it into internal embeddings β€” a searchable representation. You'll see a status of syncing β†’ synced (or failed). Once synced, the FAQ lookup tool can pull from it during conversations. What to put in (and what to leave out) Good knowledge: - Help Center articles - Pricing pages - Refund / shipping / cancellation policies - Onboarding docs Bad knowledge: - Internal Slack threads (irrelevant chatter) - Blog posts about company values (won't help solve a support ticket) - Outdated docs (the AI will confidently quote them β€” keep your knowledge fresh) Garbage in, garbage out: the Assistant is only as accurate as your documents. Audit and re-sync regularly. If your refund policy changed in March and the synced PDF still says February, the AI will tell customers the wrong thing. 3. Actions β€” what an Assistant can do This is where Captain stops being a chatbot and starts being an agent. An Assistant can take actions inside your Chatwoot account β€” not just talk. Built-in actions | Action | What it does | | ---------------------------------- | --------------------------------------------------------------- | | FAQ Lookup | Search synced documents for relevant content | | Handoff to Human | Route the conversation to a human agent | | Add Contact Note (coming soon) | Write a note on the contact's profile | | Add Private Note (coming soon) | Drop an internal note in the conversation | | Update Priority (coming soon) | Set the conversation priority (Low / Medium / High / Urgent) | | Add Label (coming soon) | Apply a label to the conversation | | Resolve Conversation | Close the conversation when the customer's question is answered | The Assistant decides which action to take based on the conversation. It might answer a pricing question via FAQ Lookup, then add a pricing-inquiry label, then resolve. Or it might recognize an angry customer, set Priority to High, write a private note summarizing the issue, and hand off. Custom tools β€” calling your own APIs For anything beyond the built-ins, you can define custom tools: HTTP endpoints the Assistant can call. Each custom tool is: - A name and description - An HTTP GET or POST request to a URL you control - A parameter schema (what inputs the AI should fill in) - Authentication β€” Bearer token, Basic, or API key - Optional request/response templates for shaping the data This is how you wire Captain into your own systems. Examples: - "Look up the customer's order status" β†’ POST to your orders API - "Check inventory for SKU X" β†’ GET to your inventory service - "Issue a credit" β†’ POST to your billing system Custom tools are gated behind their own feature flag and capped at 15 per account. Treat that limit as a feature β€” it forces you to think about which tools really earn their place. Security note: the AI will call any tool you define. Scope tools tightly: read-only where possible, idempotent where not, and never expose actions whose blast radius you wouldn't trust to a brand-new agent. 4. Copilot β€” the agent's AI sidekick Copilot lives inside the conversation interface, on the agent's screen, and only the agent sees it. What Copilot does Open any conversation and look for the Copilot panel. You can: - Ask questions about the conversation β€” "What is this customer asking for?", "What's the right next step here?" - Get reply suggestions β€” Copilot drafts a response based on the conversation history and your knowledge base, and offers a USE button that drops the suggestion straight into your reply box. - Search your knowledge base in natural language β€” instead of remembering exact phrasing. Each Copilot conversation is a thread tied to the underlying Captain Assistant β€” so Copilot uses the same knowledge, guardrails, and response guidelines. Configure your Assistant well and Copilot benefits automatically. How it differs from Captain in practice Captain replies to the customer directly. Copilot drafts something the agent reviews, edits, and decides whether to send. The agent stays in the loop. For most teams, this is a much safer place to start with AI. Practical workflow: treat Copilot's suggestions as a first draft, not a final reply. Read it, edit it, personalize it. The minute you start sending Copilot output verbatim, your replies start sounding like everyone else's. Captain vs. Agent Bots β€” quick clarification Chatwoot has had Agent Bots for a long time β€” webhook-based bots that handle the start of a conversation and hand off. Agent Bots are open-source, free, and not AI. They're rule-driven, scripted bots. Agent Bots = scripted, OSS, free, deterministic. Captain Assistants = AI, Enterprise, premium, language-driven. Most new accounts will want Captain. Agent Bots are still useful for simple deterministic flows (collecting an email, gating a conversation behind a few questions). How it all fits together (a worked example) A customer messages your website widget at 2am: "How do I cancel my subscription?" 1. The widget is connected to an inbox where Captain is enabled. 2. Captain reads the message, runs FAQ Lookup, and finds the cancellation policy in your synced docs and replies. 3. The customer replies. Captain calls a custom tool lookup-account with that email and gets back the account status. 4. Captain confirms the account, walks the customer through the cancellation, applies the cancellation label, sets Priority = Low, and Resolves the conversation. 5. The next morning, your team sees a clean resolved conversation with a private note Captain wrote summarizing the interaction. Reports show a deflected ticket. The customer got an answer at 2am instead of waiting twelve hours. That's the whole AI promise in one example. Set up well, it's transformative. Common questions Will Captain reply to every message on connected inboxes? Yes β€” that's the design. Captain engages with incoming conversations on inboxes it's connected to. If you only want it on certain conversations, you'd handle that with inbox separation. Can I review Captain's replies before they go to the customer? Not natively. Captain replies directly. If you want a human-in-the-loop pattern, use Copilot instead β€” agent drafts with AI assistance, agent sends. Does Captain learn from conversations? Memories feature in Captain suggests the knowledge gaps from the conversation. You can approve the generated FAQs so that the knowledge of Captain updates regularly. What happens when Captain doesn't know the answer? It will collect some additional information depending on the context and will Handoff to Human. Is the customer told they're talking to AI? That's a product/policy choice on your side. There's no enforced disclosure. Many teams configure their welcome message to say something like "I'm Acme's AI support assistant β€” I can resolve common questions instantly, or hand you to a human anytime." Can custom tools have side effects (write actions)? Yes β€” POST endpoints can mutate state. This is how you let the Captain cancel subscriptions, issue credits, etc. Treat write tools the same way you'd treat handing a junior agent a write-enabled API key: scope tightly, log everything, and put irreversible actions behind a confirmation step in your scenario. My account doesn't have Captain. Can I get it? Captain is gated to paid plans only. If you're self-hosting, you can enable it on premium support plans or higher.

Last updated on Apr 27, 2026

Lesson 6: Reports and Metrics

You can now run a queue (Lessons 1–3), you've automated the routine work (Lesson 4), and you've put AI to work on your behalf (Lesson 5). This lesson is about the other half of running a support operation: knowing what's working. Reports turn the firehose of conversations into numbers you can act on, how fast you reply, where conversations get stuck, who's handling what, and whether your customers are happy. What you'll learn - 9 reports Chatwoot offers and what question each one answers - The six core metrics that show up across most reports - How CSAT scoring actually works - How to read the live Overview and the conversation heatmaps - When to turn on the business-hours filter (and when not to) - How to export any report to CSV for deeper analysis You'll need: A few weeks of conversation data is ideal, reports on an empty account don't tell you much. If you're testing on a fresh install, send yourself a stream of test messages over a few sessions before exploring. Where reports live Click Reports in the navigation. You'll see tabs along the top for the different report types. Most reports follow the same layout: - Time-range picker at the top (last 7 days, 30 days, 3 months, 6 months, 1 year, or a custom range) - Group by option (day, week, month, year β€” automatically expands as your range grows) - Business hours toggle (more on this below) - Entity filter specific to the report (which agent, which inbox, which label, etc.) - The chart itself, with a CSV download button on most reports Once you understand the layout once, every report behaves the same way. The six core metrics Five of the reports β€” Conversation, Agent, Inbox, Team, and Label β€” show the same set of metrics, just sliced differently. Learn these once and the rest is just "the same thing, grouped by agent" or "the same thing, grouped by label." | Metric | What it measures | | --------------------------- | -------------------------------------------------------------------------------------------------------------------- | | Conversations Created | Total new conversations in the time window | | Incoming Messages | Messages sent by customers | | Outgoing Messages | Messages sent by your team | | Avg First Response Time | Average time from a customer's first message to your team's first reply | | Avg Resolution Time | Average time from a conversation being created to being resolved | | Resolutions Count | How many conversations reached Resolved status | | Avg Reply Time | Average time between a customer message and the next agent reply (across the whole conversation, not just the first) | Avg first response time and avg reply time are different. First response is one number per conversation. Avg reply time is the average across every exchange in every conversation which is a better measure of ongoing responsiveness, not just opening speed. The reports, one by one 1. Overview (Live) Question it answers: "What's happening right now?" The only real-time report. No date range β€” it always shows current state. - Open / Unattended / Unassigned / Pending counts for the whole account - Agent status distribution β€” how many of your agents are Online vs. Busy vs. Offline - Conversation traffic heatmap β€” a day-of-week Γ— hour-of-day grid showing when new conversations land - Resolution heatmap β€” same grid, but showing when conversations get resolved - Team-level conversation counts with optional team filter What to do with it: open it on a wall display for the team room. Use the heatmap to figure out staffing β€” if Tuesday 2pm is your busiest hour and Friday morning is dead, that's where shift planning starts. 2. Conversation Reports Question it answers: "How is the whole operation trending?" Account-wide totals for the six core metrics, plotted over time. This is the report you check weekly to spot trends, climbing reply times, growing volume, dropping resolution counts. 3. Agent Reports Question it answers: "How is each agent performing?" Same six metrics, scoped to one agent at a time. Pick an agent from the filter dropdown and see their personal numbers over the chosen window. A word of caution: agent metrics measure workload-weighted output, not effort. An agent handling complex enterprise tickets will look "slower" than one fielding password-reset volume. Always read these alongside CSAT and conversation context, never as a standalone score. 4. Inbox Reports Question it answers: "Which channel needs more love?" Same metrics, scoped to one inbox. This is how you compare email vs. live chat vs. WhatsApp on response times and volume and find the channel that's lagging. 5. Team Reports Question it answers: "How is each team performing?" Same metrics, scoped to one team (Engineering, Billing, Customer Success, etc.). Useful when teams own different conversation types and "average across the company" hides the picture. 6. Label Reports Question it answers: "What kinds of conversations are taking the longest?" Same metrics, scoped to one label. If you've been disciplined about labelling (Lesson 3a), this is where you find the gold: - Are bug-report conversations resolving slower than billing? - Has feature-request volume been growing? - Is vip conversation reply time within target? Label reports are only as good as your label hygiene. If your team labels inconsistently, this report will mislead. 7. CSAT Reports Question it answers: "Are customers actually happy?" CSAT surveys are sent to customers when their conversation is resolved (if enabled on the inbox). They're a 5-star scale. The report shows: - Total responses received - Satisfaction score β€” the percentage of responses that were 4 or 5 stars - Response rate β€” the percentage of surveys that got a reply - Rating distribution β€” how the responses break down across 1–5 stars - Individual responses β€” table of each survey response with the conversation, agent, inbox, rating, and any feedback text You can filter by agent, inbox, team, or specific rating β€” useful for finding all the 1-star feedback and reading it directly. 8. SLA Reports Question it answers: "Are we keeping the promises we made?" If you set up SLAs in Lesson 4, this is where you see how you're doing. - Hit rate β€” what percentage of conversations met the SLA targets - Breach count β€” how many missed - Total conversations in scope β€” the denominator - Per-conversation table β€” every SLA-tracked conversation with its policy, assigned agent, and hit/breach status with timestamps Filters: agent, inbox, team, SLA policy, labels. Full CSV export. The "why" matters more than the number. A 92% hit rate is fine; the 8% breach list is where you go to investigate. Sort by oldest breach and read the top ten β€” patterns will jump out (one agent, one inbox, one time of day). 9. Bot Reports Question it answers: "Is the bot actually helping?" For accounts using bots or AI assistants: - Bot resolutions β€” conversations the bot resolved without human handoff - Bot handoffs β€” conversations the bot escalated to a human agent A healthy ratio depends on your strategy. Some teams want a high resolution rate (bot handles common questions); others want a high handoff rate (bot is just triage). Decide what you're aiming for before judging the numbers. Common questions Why does my agent report show zero conversations even though I've been replying? Agent metrics attribute conversations to the assignee at resolution time. If you replied but the conversation was assigned to someone else (or unassigned), it doesn't roll up to you. Make sure conversations are assigned correctly. Can I schedule reports to be emailed weekly? Not natively, no. The CSV export is the official path for offline / scheduled use, combine it with a scheduler you use elsewhere. What's the difference between "Resolutions Count" and "Conversations Created"? Different conversations. Created counts conversations that started in the window. Resolutions counts conversations that were resolved in the window, they may have been created weeks earlier. The two numbers should be close in steady state; a big gap signals backlog growing or shrinking. What's next You've now covered every layer of running an operation in Chatwoot β€” from your first reply (Lesson 1), through the manual toolkit, automation, AI, and the metrics that tell you whether the whole thing is working (this lesson). That's the full operating loop: handle, automate, augment, measure.

Last updated on Apr 27, 2026