Features Overview
Chatwoot provides a comprehensive suite of features designed to streamline customer support operations, enhance team collaboration, and deliver exceptional customer experiences. This page covers all major capabilities.Omnichannel Inbox
Manage all customer conversations from a single, unified inbox regardless of the communication channel.Supported Channels
Website Widget
Customizable live chat widget for your website
Connect support email addresses (IMAP/SMTP)
Facebook Messenger
Manage Facebook Page conversations
Handle Instagram Direct messages
Respond to Twitter DMs and mentions
WhatsApp Business API integration
Telegram
Telegram bot for customer support
Line
Line messaging platform support
SMS
Twilio SMS integration
TikTok
TikTok messaging support
API Channel
Build custom channel integrations
Channel Configuration
Each channel type has specific configuration options defined in:- Web Widget:
app/models/channel/web_widget.rb- Supports customizable colors, welcome messages, and pre-chat forms - Email:
app/models/channel/email.rb- IMAP/SMTP configuration with email forwarding - WhatsApp:
app/models/channel/whatsapp.rb- Business API integration with phone number validation - Telegram:
app/models/channel/telegram.rb- Bot token authentication - Facebook:
app/models/channel/facebook_page.rb- OAuth integration with Instagram support - Twitter:
app/models/channel/twitter_profile.rb- Twitter API v2 integration
Each channel is implemented as a polymorphic association through the
Inbox model (app/models/inbox.rb), allowing flexible channel management.Conversation Management
Powerful tools for organizing and handling customer conversations efficiently.Conversation Statuses
Conversations can be in one of four states (defined inapp/models/conversation.rb):
- Open: Active conversations requiring attention
- Pending: Awaiting customer response
- Resolved: Closed/completed conversations
- Snoozed: Temporarily hidden until a specified time
Priority Levels
Assign priority to conversations for better triage:- Low: General inquiries
- Medium: Standard support issues
- High: Important customer issues
- Urgent: Critical problems requiring immediate attention
Conversation Features
Assignment
Assign conversations to specific agents or teams
Labels
Categorize conversations with custom labels
Custom Attributes
Store additional metadata on conversations
Context
View full conversation history and customer details
Team Collaboration
Empower your support team with collaboration tools.Private Notes
Add internal notes visible only to team members. Use@mentions to notify specific agents.
Teams
Organize agents into teams for better workflow management:- Create multiple teams within an account
- Assign conversations to entire teams
- Set team-specific permissions
- Track team performance with reports
app/models/team.rb and app/models/team_member.rb
Agent Roles
Three role levels with different permissions:- Agent: Can manage conversations and access assigned inboxes
- Administrator: Full access to account settings and configuration
- Super Admin: Platform-level access (self-hosted installations)
Mentions & Notifications
Mention team members in private notes to get their attention:app/models/mention.rb and app/models/notification.rb
Automation
Automate repetitive tasks and workflows with powerful automation rules.Automation Rules
Create conditional automation based on:- Event Triggers: Conversation created, updated, message created, etc.
- Conditions: Status, assignee, labels, custom attributes, etc.
- Actions: Assign agent/team, add label, send message, send email, etc.
Implementation:
app/models/automation_rule.rb and app/services/automation_rules/
Auto-Assignment
Automatically assign conversations to available agents using:- Round Robin: Distribute conversations evenly
- Agent Availability: Only assign to online agents
- Capacity Limits: Respect maximum conversation limits per agent
- Assignment Policies: Create custom assignment rules per inbox
app/services/auto_assignment/ directory with services like:
agent_assignment_service.rbinbox_round_robin_service.rbround_robin_selector.rb
Canned Responses
Create pre-written responses for frequently asked questions:- Save time with quick replies
- Use shortcodes for instant insertion (
/shortcode) - Support for variables (contact name, agent name, etc.)
- Account-wide or personal canned responses
app/models/canned_response.rb
Macros
Chain multiple actions together into reusable macros:- Change status, priority, assignee
- Add labels and notes
- Send messages
- Apply multiple actions with one click
app/models/macro.rb
AI-Powered Features (Captain)
Chatwoot’s AI assistant helps automate and enhance support operations.Captain Capabilities
AI Assistant
Suggest responses and automate common queries
Label Suggestions
Automatically suggest labels based on conversation content
Audio Transcription
Transcribe voice messages automatically
Help Center Search
AI-powered search in knowledge base
Writing Assistant
Improve and refine agent responses
Copilot
Real-time assistance while handling conversations
app/models/account.rb):
Learn More About Captain
Read the complete Captain documentation
Contact Management
Build comprehensive customer profiles and manage contact data.Contact Profiles
Each contact has:- Basic Information: Name, email, phone, avatar
- Custom Attributes: Store additional custom fields
- Conversation History: View all past interactions
- Contact Notes: Add persistent notes about the contact
- Social Profiles: Links to social media accounts
- Contact Source: Track where the contact came from
app/models/contact.rb
Custom Attributes
Define custom fields to store additional contact data:- Attribute Types: Text, number, date, link, list, checkbox
- Required Fields: Mark attributes as required
- Default Values: Set default values for new contacts
- Contact & Conversation Attributes: Store data on both levels
app/models/custom_attribute_definition.rb
Contact Segments
Create dynamic segments based on contact attributes:- Filter contacts by custom attributes
- Build targeted campaigns
- Export segment data
- Track segment size and changes
Contact Actions
Merge Contacts
Combine duplicate contact records
Import Contacts
Bulk import from CSV files
Export Contacts
Download contact lists
Block Contacts
Block spam or abusive contacts
app/actions/contact_merge_action.rb and app/models/data_import.rb
Labels & Organization
Categorize and organize conversations with a flexible labeling system.Label Features
- Create custom labels with colors
- Apply multiple labels per conversation
- Filter conversations by labels
- Label-based reporting
- Team-specific label visibility
app/models/label.rb
Custom Views & Filters
Create saved views with custom filters:- Filter by status, assignee, team, labels
- Save frequently used filter combinations
- Share views with team members
- Quick access to important conversation subsets
app/models/custom_filter.rb
Campaigns
Proactively engage customers with targeted messaging campaigns.Campaign Types
- One-time Campaigns: Send messages to specific audience segments
- Triggered Campaigns: Automatically message based on user behavior
- Scheduled Campaigns: Send messages at specific times
Campaign Features
- Audience Targeting: Select contacts based on custom attributes and segments
- Message Scheduling: Schedule campaigns for optimal timing
- Campaign Analytics: Track delivery, open rates, and responses
- A/B Testing: Test different message variants
app/models/campaign.rb and app/builders/campaigns/campaign_conversation_builder.rb
Reports & Analytics
Gain insights into support operations with comprehensive reporting.Available Reports
Conversation Reports
Track conversation volume, trends, and resolution times
Agent Reports
Measure individual agent performance and productivity
Inbox Reports
Analyze performance by channel/inbox
Team Reports
Compare team performance metrics
Label Reports
Track conversations by category
CSAT Reports
Monitor customer satisfaction scores
Key Metrics
- First Response Time: Average time to first agent reply
- Resolution Time: Average time to resolve conversations
- Resolution Count: Number of conversations resolved
- Response Count: Total messages sent by agents
- Conversations Count: Total conversations handled
Live Dashboard
Real-time view of ongoing support operations:- Active conversations
- Agents online/offline
- Waiting conversations
- Response time metrics
app/models/reporting_event.rb and reporting services
Help Center (Knowledge Base)
Create a self-service portal for customers to find answers independently.Portal Features
- Multi-portal Support: Create separate portals for different products
- Categories & Sections: Organize articles hierarchically
- Multi-language: Publish articles in multiple languages
- SEO-friendly: Optimized URLs and meta tags
- Search: Full-text search across articles
- Public/Private: Control article visibility
app/models/portal.rb- Portal containerapp/models/category.rb- Article categoriesapp/models/article.rb- Knowledge base articles
Article Management
- Rich text editor for article content
- Article versioning and history
- SEO metadata (title, description)
- Article associations (related articles)
- Article analytics (views, searches)
Integrations
Extend Chatwoot with third-party integrations.Available Integrations
Slack
Manage conversations from Slack channels
Dialogflow
Add chatbot automation with Google Dialogflow
Webhooks
Receive real-time events via webhooks
Dashboard Apps
Embed custom apps in the agent dashboard
Shopify
View customer orders within conversations
Linear
Create and manage Linear issues
Google Translate
Translate messages in real-time
Webhook Events
Receive webhooks for events (configured inapp/models/webhook.rb):
conversation_createdconversation_updatedconversation_status_changedmessage_createdmessage_updatedcontact_createdcontact_updated
Dashboard Apps
Embed custom applications within Chatwoot:- Display external data in conversation sidebar
- Interact with third-party services
- Custom UI for specific workflows
app/models/dashboard_app.rb
Business Hours & Auto-Responders
Manage customer expectations with working hours and automatic responses.Business Hours
Define when your team is available:- Set hours for each day of the week
- Multiple time slots per day
- Timezone-aware scheduling
- Different hours per inbox
app/models/working_hour.rb
Auto-Responders
- Greeting Messages: Welcome customers when they start conversations
- Out of Office: Automatic replies outside business hours
- Away Messages: Custom messages when agents are unavailable
Customer Satisfaction (CSAT)
Measure customer satisfaction after conversations are resolved.CSAT Features
- Rating Scale: 1-5 star ratings
- Custom Questions: Add follow-up questions
- Response Collection: Gather detailed feedback
- CSAT Reports: Track satisfaction trends over time
- Per-inbox Configuration: Different CSAT settings per inbox
app/models/csat_survey_response.rb
Additional Features
Keyboard Shortcuts
Boost productivity with keyboard shortcuts:/- Open command barCmd/Ctrl + K- Quick navigationR- Resolve conversationE- Focus reply box?- View all shortcuts
Command Bar
Quick access to actions and navigation:- Search conversations
- Execute commands
- Navigate to settings
- Apply quick actions
Conversation Continuity
- Lock to Single Conversation: Prevent multiple conversations per contact
- Conversation Identifiers: Custom IDs for conversation tracking
- Conversation Participants: Track multiple participants in group conversations
app/models/conversation_participant.rb
Attachments
Support for various file types:- Images, documents, videos
- Cloud storage integration (Active Storage)
- Automatic thumbnail generation
- Virus scanning support
app/models/attachment.rb
Message Features
- Rich Text: Markdown support in messages
- Code Blocks: Syntax highlighting for code
- Email Templates: Branded email notifications
- Message Templates: Structured message formats
app/models/message.rb
Platform Apps
Chatwoot supports platform apps for extended functionality:- Install apps from marketplace
- Configure app permissions
- Custom app development
app/models/platform_app.rb and app/models/platform_app_permissible.rb
Advanced Configuration
Account Settings
Configure account-level settings:- Auto-resolve Duration: Automatically resolve inactive conversations
- Custom Attributes: Account-level custom fields
- Feature Flags: Enable/disable specific features
- Limits: Set usage limits (agents, inboxes, etc.)
Inbox Settings
Per-inbox configuration:- Auto-assignment rules
- CSAT survey settings
- Greeting messages
- Email collection
- Business hours
- Channel-specific settings
API Access
Chatwoot provides a comprehensive REST API:- Account Management: Create and manage accounts
- Conversations: Create, update, and list conversations
- Messages: Send and receive messages
- Contacts: Manage contact data
- Webhooks: Configure event notifications
- Custom Channels: Build custom integrations
API Documentation
Explore the complete API reference
Learn More
Quick Start Guide
Set up your first inbox and start managing conversations
Official Documentation
Browse detailed guides and tutorials
GitHub Repository
View source code and contribute
Community Discord
Join the community for support and discussions

