Overview
Chatwoot is a modern, open-source customer engagement platform that brings together all your customer communication channels into a single, unified inbox. Designed as a powerful alternative to proprietary solutions like Intercom, Zendesk, and Drift, Chatwoot helps businesses provide exceptional customer support while maintaining complete control over their data and infrastructure.
At its core, Chatwoot offers a beautiful, intuitive interface that makes managing customer conversations effortless. Support agents can handle inquiries from multiple sources—website chat widgets, email, Facebook Messenger, WhatsApp, Twitter, Telegram, and more—all from one dashboard. The unified inbox eliminates the need to switch between platforms, dramatically improving response times and agent productivity.
The platform's live chat widget can be easily embedded into any website with a simple script tag. It's highly customizable, supporting branded colors, custom messages, business hours, and multilingual configurations. The widget is lightweight, fast-loading, and includes features like pre-chat forms, agent availability indicators, and conversation history for returning visitors.
Chatwoot's automation capabilities help streamline repetitive tasks and ensure customers get quick responses. Custom bots can handle common inquiries, route conversations to the right team, collect customer information, and trigger workflows based on specific conditions. Canned responses allow agents to quickly send templated messages, while macros automate entire conversation workflows with a single click.
The platform provides powerful collaboration tools for teams. Multiple agents can work together on conversations with private notes, @mentions, and conversation assignments. Detailed analytics and reports track key metrics like response time, resolution time, conversation volume, and customer satisfaction scores (CSAT). Managers can monitor team performance and identify areas for improvement.
With robust API and webhook support, Chatwoot integrates seamlessly with your existing tech stack. Connect it to CRM systems, help desk software, analytics tools, or custom applications. The platform supports single sign-on (SSO), custom attributes for rich customer context, and extensive customization options to match your brand and workflows.
Whether you're a startup looking for an affordable customer support solution or an enterprise requiring a scalable, self-hosted platform with complete data sovereignty, Chatwoot delivers enterprise-grade features without the enterprise price tag. The active open-source community ensures continuous development, regular updates, and extensive plugin ecosystem.
Key Features
Unified Multi-Channel Inbox
Manage conversations from website chat, email, WhatsApp, Facebook, Twitter, Telegram, and SMS in one interface
Customizable Live Chat Widget
Branded chat widget with multilingual support, business hours, pre-chat forms, and mobile-responsive design
Team Collaboration Tools
Private notes, @mentions, conversation assignments, team inbox, and real-time collaboration features
Automation & Bots
Custom bots, canned responses, macros, workflow automation, and intelligent routing based on conditions
Comprehensive Analytics
Track response times, resolution times, CSAT scores, conversation volume, and team performance metrics
API & Integrations
RESTful API, webhooks, SSO support, and integrations with popular tools like Slack, Salesforce, and more
Mehlala ea ho sebelisa
• **Customer Support Teams**: Centralized platform for handling all customer inquiries across multiple communication channels
• **E-commerce Businesses**: Live chat for product questions, order tracking, and real-time customer assistance during checkout
• **SaaS Companies**: Provide in-app support with context-aware messaging and proactive customer engagement
• **Marketing Teams**: Capture leads through chat, qualify prospects, and route high-value conversations to sales teams
• **Educational Institutions**: Student support portal for answering questions, enrollment assistance, and campus services
• **Healthcare Providers**: HIPAA-compliant patient communication for appointment scheduling and general inquiries
• **Real Estate Agencies**: Immediate responses to property inquiries, virtual tour scheduling, and client relationship management
Installation Guide
**Installation on Ubuntu 22.04 LTS (Docker Method - Recommended):**
**1. Install Docker and Docker Compose:**
```bash
# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Install Docker Compose
sudo apt install docker-compose -y
# Add user to docker group
sudo usermod -aG docker $USER
newgrp docker
```
**2. Clone Chatwoot Repository:**
```bash
cd /opt
sudo git clone https://github.com/chatwoot/chatwoot.git
cd chatwoot
```
**3. Configure Environment:**
```bash
# Copy environment template
cp .env.example .env
# Edit configuration
nano .env
```
Set required variables:
```env
# Rails configuration
SECRET_KEY_BASE=$(openssl rand -hex 64)
FRONTEND_URL=https://chat.yourdomain.com
# Database
POSTGRES_HOST=postgres
POSTGRES_USERNAME=chatwoot
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DATABASE=chatwoot_production
# Redis
REDIS_URL=redis://redis:6379
# Email (SMTP)
SMTP_ADDRESS=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_DOMAIN=yourdomain.com
SMTP_ENABLE_STARTTLS_AUTO=true
```
**4. Deploy with Docker Compose:**
```bash
# Start services
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f
```
**5. Create Admin User:**
```bash
# Access Rails console
docker-compose exec rails bundle exec rails console
# Create admin account
user = User.create!(
name: 'Admin',
email: 'admin@yourdomain.com',
password: 'secure_password',
password_confirmation: 'secure_password'
)
user.confirm
AccountUser.create!(user: user, account_id: 1, role: :administrator)
```
**6. Configure Nginx Reverse Proxy:**
```bash
sudo nano /etc/nginx/sites-available/chatwoot
```
Add configuration:
```nginx
server {
server_name chat.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 90;
}
}
```
**7. Enable Site and Get SSL Certificate:**
```bash
sudo ln -s /etc/nginx/sites-available/chatwoot /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
# Install Certbot and get SSL
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d chat.yourdomain.com
```
**8. Access Chatwoot:**
- URL: https://chat.yourdomain.com
- Login with admin credentials created in step 5
- Complete setup wizard to create your first inbox
Configuration Tips
**Essential Configuration:**
1. **Environment Variables (.env):**
- `SECRET_KEY_BASE`: Generate with `openssl rand -hex 64`
- `FRONTEND_URL`: Your Chatwoot public URL
- `FORCE_SSL`: Set to `true` in production
- `RAILS_ENV`: Set to `production`
- `NODE_ENV`: Set to `production`
2. **Email Configuration:**
- Configure SMTP settings for email notifications
- Test email delivery after setup
- Set `MAILER_SENDER_EMAIL` for outgoing emails
- Configure `MAILER_INBOUND_EMAIL_DOMAIN` for email channel
3. **Storage Configuration (S3):**
```env
# Use S3 for file uploads
ACTIVE_STORAGE_SERVICE=amazon
S3_BUCKET_NAME=your-bucket-name
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_REGION=us-east-1
```
4. **Live Chat Widget Installation:**
```html
<!-- Add to your website's <head> or before </body> -->
<script>
(function(d,t) {
var BASE_URL="https://chat.yourdomain.com";
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.chatwootSDK.run({
websiteToken: 'YOUR_WEBSITE_TOKEN',
baseUrl: BASE_URL
})
}
})(document,"script");
</script>
```
5. **Custom Attributes for Rich Context:**
- Go to Settings → Custom Attributes
- Add attributes like `plan_type`, `signup_date`, `lifetime_value`
- Use in automation rules and agent context
6. **Automation Rules:**
- Settings → Automations → Add Automation
- Example: Auto-assign to team based on inquiry type
- Example: Send canned response for common questions
- Example: Tag conversations based on keywords
7. **Canned Responses:**
```
Shortcode: /greeting
Message: Hello {{contact.name}}! How can I help you today?
Shortcode: /hours
Message: Our support hours are Monday-Friday, 9 AM - 6 PM EST.
Shortcode: /ticket
Message: I've created ticket #{{conversation.id}} for your issue.
```
8. **Team Management:**
- Settings → Teams → Create teams by function (Sales, Support, Billing)
- Assign agents to multiple teams
- Configure team-specific inboxes
- Set auto-assignment rules per team
9. **API Integration:**
```bash
# Get API access token from Settings → Integrations → API
curl -H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
https://chat.yourdomain.com/api/v1/accounts/1/conversations
```
10. **Performance Optimization:**
- Enable Redis caching
- Configure CDN for static assets
- Set up database connection pooling
- Use Sidekiq for background jobs
- Enable gzip compression in Nginx
- Schedule regular database maintenance
**Best Practices:**
- Use teams and inboxes to organize conversations by department or product
- Set up automation rules to reduce repetitive tasks
- Create comprehensive canned responses library
- Monitor response and resolution time metrics
- Enable customer satisfaction surveys
- Regular backups of PostgreSQL database
- Keep Chatwoot updated for security patches
- Use custom attributes for personalized support context