Chatwoot is an open-source alternative to Intercom and Zendesk, designed for businesses that need full control over their customer data while delivering omnichannel support. It combines live chat, email, WhatsApp, and social media messaging into a unified dashboard with AI automation and a knowledge base, making it ideal for teams scaling customer support without vendor lock-in.
Built with Ruby on Rails, Vue.js, and ActionCable, Chatwoot supports deployment via Docker, Heroku, DigitalOcean Kubernetes, and Helm charts. It integrates with Slack, Shopify, Dialogflow, and Linear, and offers a REST API for custom integrations, enabling enterprises to deploy it securely on their own infrastructure.
What You Get
- Omnichannel Inbox - Unify live chat, email, WhatsApp, Facebook, Instagram, Twitter, Telegram, Line, and SMS conversations into a single dashboard with real-time message synchronization.
- Captain AI Agent - AI-powered assistant that suggests automated responses and handles routine queries using natural language processing to reduce agent workload.
- Built-in Help Center Portal - Publish and manage FAQs, guides, and knowledge base articles with a customizable frontend to reduce ticket volume and empower self-service.
- Private Notes & @Mentions - Internal team collaboration with private notes on conversations and @mentions to assign follow-ups without customer visibility.
- Canned Responses & Auto-Responders - Pre-written reply templates and automated responses triggered by business hours, keywords, or customer behavior to speed up response times.
- Contact Segmentation & Custom Attributes - Store and filter customer data with custom fields and segments to enable targeted campaigns and personalized support.
- Slack Integration - Respond to customer messages directly from Slack channels without leaving your workspace.
- Shopify Integration - View customer order history and product details within Chatwoot conversations to provide context-aware support.
- Dialogflow Integration - Connect AI chatbots to handle tier-1 support queries and escalate complex issues to human agents.
- Automation Rules - Create rules to auto-assign conversations, apply labels, or send responses based on triggers like message content, customer segment, or channel.
- CSAT & Operational Reports - Generate reports on conversation volume, agent performance, response times, and customer satisfaction scores with downloadable exports.
- Webhooks - Trigger real-time event notifications (e.g., new message, closed ticket) to external systems via HTTP POST payloads.
Common Use Cases
- Running a SaaS support desk - A SaaS company uses Chatwoot to manage live chat, email, and WhatsApp inquiries from 10,000+ users, reducing response time with Captain AI and automated ticket routing.
- Managing e-commerce customer service - An online store integrates Chatwoot with Shopify to view order history during chats and uses pre-chat forms to collect shipping details before support begins.
- Operating a global support team - A multilingual startup deploys Chatwoot with Google Translate and multi-language canned responses to serve customers in 12 languages across time zones.
- Building a self-service knowledge base - A fintech startup creates a Help Center with 200+ articles to reduce support tickets by 40%, linking articles directly from chat responses.
Under The Hood
Architecture
- Rails-based monolithic backend with clear separation of concerns through Service Objects and ActiveRecord models that encapsulate complex business logic like contact merging and attachment handling
- Modular frontend architecture combining legacy Vue 2 components with modern Vue 3 composition API, supported by Storybook for consistent UI documentation
- Dependency injection via service classes and ActiveStorage reduces direct model coupling, while versioned API namespaces ensure stable client interfaces
- Event-driven patterns using ActiveJob and ActionCable decouple background processing from real-time UI updates
Tech Stack
- Ruby on Rails 7.1 backend with PostgreSQL (including pgvector for embeddings), Redis for caching and job queuing, and Puma as the application server
- Vue 3 frontend powered by Vite, Pinia for state management, and Vue Router, integrated seamlessly via vite_rails gem
- Comprehensive testing ecosystem with RSpec, Vitest, and RuboCop enforcing code quality across both backend and frontend
- Multi-channel communication integrations via dedicated gems for Twilio, Slack, Facebook Messenger, and Google Dialogflow
- Deployment via Heroku with multi-buildpack support and Dockerized environments ensuring consistency across stages
- Internationalization managed through Crowdin with YAML/JSON locale files and vue-i18n for frontend translations
Code Quality
- Extensive test coverage across unit, integration, and job-level tests with robust mocking and state assertions
- Strong separation of concerns achieved through service objects, job classes, and presenters that isolate business logic from controllers and views
- Consistent naming conventions and modular structure in both Rails and Vue codebases, with predictable store mutations and helper modules
- Robust error handling using controlled side effects and validation at the model and service layers rather than custom exceptions
- Type safety in Vue components through explicit prop definitions and comprehensive unit tests for utility functions
- Automated pipelines with granular test isolation, including external service mocks and edge-case validation
What Makes It Unique
- Native multi-channel messaging architecture unifies web, SMS, WhatsApp, and social media into a single conversation thread with intelligent contact deduplication
- Built-in SVG icon system with dynamic rendering and theming eliminates external dependency on icon libraries
- Real-time contact identity resolution prevents data fragmentation while preserving user intent during merges
- Live widget preview system with contrast-aware theming enables instant visual feedback for chat widget customization
- Storybook-based component documentation ensures design system consistency across dashboard and embedded widget interfaces
- SMS media attachment handling with direct file download and type detection removes reliance on third-party storage services