What Chatwoot Does
Chatwoot covers the entire customer communication workflow:
- Live Chat Widget: Embeddable chat widget for your website with customizable branding
- Omnichannel Inbox: Unified inbox for chat, email, WhatsApp, Facebook Messenger, Instagram DM, Twitter, Telegram, LINE, and SMS
- Team Collaboration: Agent assignment, team routing, internal notes, and canned responses
- Automation: Rule-based automation for routing, labeling, and auto-responses
- CRM Contacts: Customer profiles with conversation history, custom attributes, and notes
- Reporting: Agent performance, conversation metrics, CSAT scores, and SLA tracking
- Bot Integration: Connect with Dialogflow, Rasa, or custom AI bots for automated responses
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Chat Widget │────▶│ Rails API │────▶│ PostgreSQL │
│ + Dashboard │ │ + Sidekiq │ │ + Redis │
│ (Vue.js) │ │ (Ruby) │ │ │
└──────────────┘ └──────┬───────┘ └──────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌──────┴──┐ ┌─────┴───┐ ┌─────┴───┐
│WhatsApp │ │Facebook │ │ Email │
│ API │ │ API │ │ (IMAP) │
└─────────┘ └─────────┘ └─────────┘Self-Hosting
Docker Compose
services:
chatwoot-web:
image: chatwoot/chatwoot:latest
command: bundle exec rails s -b 0.0.0.0 -p 3000
ports:
- "3000:3000"
environment:
SECRET_KEY_BASE: your-secret-key
FRONTEND_URL: http://localhost:3000
DATABASE_URL: postgresql://chatwoot:chatwoot@postgres:5432/chatwoot
REDIS_URL: redis://redis:6379
RAILS_ENV: production
depends_on:
- postgres
- redis
chatwoot-worker:
image: chatwoot/chatwoot:latest
command: bundle exec sidekiq
environment:
SECRET_KEY_BASE: your-secret-key
DATABASE_URL: postgresql://chatwoot:chatwoot@postgres:5432/chatwoot
REDIS_URL: redis://redis:6379
depends_on:
- postgres
- redis
postgres:
image: postgres:16
environment:
POSTGRES_USER: chatwoot
POSTGRES_PASSWORD: chatwoot
POSTGRES_DB: chatwoot
volumes:
- pg-data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
volumes:
pg-data:
redis-data:Key Features
Chat Widget Integration
<!-- Add to your website -->
<script>
(function(d,t) {
var BASE_URL="http://localhost:3000";
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>Automation Rules
Set up automatic workflows:
- Auto-assign: Route conversations to specific agents/teams based on channel, content, or customer attributes
- Auto-label: Tag conversations automatically based on keywords or patterns
- SLA Alerts: Notify agents when response time thresholds are approaching
- Auto-resolve: Close inactive conversations after a set period
Canned Responses
Pre-built reply templates for common questions:
/greeting → "Hi there! Thanks for reaching out. How can I help?"
/pricing → "Our plans start at $X/month. Here's a detailed comparison: [link]"
/refund → "I understand. I've initiated a refund for your order #..."API Integration
# Create a contact
curl -X POST http://localhost:3000/api/v1/accounts/1/contacts
-H "api_access_token: YOUR_TOKEN"
-H "Content-Type: application/json"
-d '{"name": "John Doe", "email": "john@example.com"}'
# Send a message
curl -X POST http://localhost:3000/api/v1/accounts/1/conversations/1/messages
-H "api_access_token: YOUR_TOKEN"
-d '{"content": "Hello! How can I help?", "message_type": "outgoing"}'Chatwoot vs Alternatives
| Feature | Chatwoot | Intercom | Zendesk | Freshdesk |
|---|---|---|---|---|
| Open Source | Yes | No | No | No |
| Self-hosted | Yes | No | No | No |
| Live chat | Yes | Yes | Yes | Yes |
| Yes | Add-on | Add-on | Add-on | |
| Yes | Yes | Yes | Yes | |
| AI bot | Integration | Built-in | Built-in | Built-in |
| Pricing | Free (self-host) | $74/seat/mo | $55/agent/mo | $15/agent/mo |
常见问题
Q: Chatwoot 适合多大规模的客服团队? A: 从 1 人到 100+ 人的客服团队都适用。自托管版本没有座位数限制。大团队建议使用 Kubernetes 部署以获得更好的扩展性。
Q: WhatsApp Business API 如何集成? A: Chatwoot 支持 WhatsApp Cloud API(Meta 官方)和第三方 BSP(如 360dialog)。你需要在 Meta Business 平台申请 WhatsApp Business API 访问权限,然后在 Chatwoot 中配置 Channel。
Q: 可以接入 AI 客服机器人吗? A: 可以。Chatwoot 支持 Dialogflow CX/ES 和 Rasa 的原生集成。也可以通过 Webhook 接入任何自定义 AI 服务(如 OpenAI、Claude)来实现智能回复。
来源与致谢
- GitHub: chatwoot/chatwoot — 28.4K+ ⭐
- 官网: chatwoot.com