Chatwoot

Open-source omnichannel customer support platform with AI-powered agents, live chat, and self-hosting — a full Intercom and Zendesk alternative.

34.1Kstars
8Kforks
Custom / Unknown
Ruby

Chatwoot is a modern, open-source customer support platform built for teams that want full control over their data and infrastructure. It consolidates live chat, email, WhatsApp, Facebook, Instagram, Telegram, Twitter/X, Line, and SMS into a single unified inbox, eliminating the need to switch between tools when customers reach out across different channels.

At its core, Chatwoot is powered by a Ruby on Rails backend and a Vue 3 frontend communicating over ActionCable for real-time updates. The platform’s built-in AI agent — called Captain — assists human agents by suggesting replies, summarising conversations, fixing grammar, and changing tone, all from within the compose window. Captain can also answer common queries autonomously using a connected knowledge base, reducing repetitive workload for support teams.

Beyond real-time conversations, Chatwoot includes a fully integrated Help Center portal where teams can publish FAQs and guides to enable customer self-service. Automation rules, agent capacity management, CSAT surveys, team reports, and SLA enforcement round out the operational toolset needed to run a customer support organisation at scale.

With official one-click deployment options for Heroku, DigitalOcean Kubernetes, and first-class Docker Compose support, Chatwoot is designed from the ground up for self-hosted production deployments. An enterprise tier adds advanced features like Assignment V2 for workload balancing, custom roles, SAML SSO, and audit logs for organisations with stricter compliance requirements.

What You Get

  • Omnichannel Inbox - Centralises conversations from website live chat, email, WhatsApp, Facebook Messenger, Instagram, Twitter/X, Telegram, Line, and SMS into one dashboard with real-time synchronisation across all agents.
  • Captain AI Agent - An embedded AI assistant that suggests replies, summarises conversations, improves tone and grammar, and can autonomously resolve routine queries using connected knowledge base articles before handing off to human agents.
  • Help Center Portal - A built-in documentation portal where teams can publish and manage FAQs, how-to guides, and support articles, complete with a customer-facing frontend that integrates with the live chat widget for in-context self-service.
  • Automation Rules & Conversation Workflows - A rule engine that auto-assigns conversations based on availability, applies labels, sends canned responses, enforces required custom attributes at resolution time, and auto-resolves inactive tickets.
  • Contact Management & Segmentation - Full contact profiles with interaction history, custom attributes, segments, pre-chat forms, and campaign tools for proactive outreach to targeted customer groups.
  • Reports & CSAT - Operational dashboards covering conversation volume, agent performance, inbox throughput, label metrics, and CSAT scores, with downloadable CSV exports and review notes for contextualising satisfaction data.
  • Slack & Shopify Integrations - Respond to customer messages directly from Slack without leaving the workspace; view customer order history and product details from Shopify inside active conversations.
  • Private Notes & @Mentions - Internal collaboration layer that lets agents leave context-rich notes and tag teammates on any conversation without the customer seeing the exchange.
  • Agent Capacity Management - Configurable workload limits per agent to prevent burnout, with Assignment V2 in the enterprise tier for fairer distribution and team-safe routing.
  • Webhooks & REST API - Trigger real-time HTTP POST notifications on conversation events and use the documented REST API to build custom integrations, embed Chatwoot data in internal tools, or automate bulk operations.

Common Use Cases

  • SaaS product support at scale - A subscription software company routes all live chat, email, and WhatsApp inquiries from thousands of users through a single Chatwoot inbox, uses Captain to auto-answer how-to questions, and escalates unresolved threads to senior agents with one click.
  • E-commerce order support - An online retailer connects Chatwoot to Shopify so agents can see the customer’s order history directly inside the chat window, reducing time-to-resolution without switching between tabs.
  • Multilingual global support team - A startup with customers in dozens of countries deploys Chatwoot with Google Translate integration and multi-language canned responses, serving agents working across different time zones from a shared inbox with auto-responders covering out-of-hours periods.
  • Self-service knowledge base deflection - A fintech company publishes an in-app Help Center with over 200 articles, linking relevant guides in chat responses to deflect repetitive tier-1 tickets and give Captain the content it needs to answer queries automatically.
  • Enterprise compliance-aware deployments - A regulated financial services firm self-hosts Chatwoot on private Kubernetes infrastructure with SAML SSO, audit logs, and custom roles enabled through the enterprise tier to meet data residency and access-control requirements.
  • Developer-embedded support widget - A platform company embeds the Chatwoot JavaScript SDK on their product’s dashboard, pre-populates the widget with the logged-in user’s identity, and pipes conversation events via webhooks into their internal data warehouse for analytics.

Under The Hood

Architecture Chatwoot follows a modular monolith pattern built on Ruby on Rails, where controllers stay thin and complex business logic is delegated to dedicated Service Objects. Each domain — contacts, conversations, automations, Captain AI — has its own service layer, making it straightforward to trace the execution path for any feature. The frontend is a Vue 3 single-page application that communicates with Rails over a versioned REST API and receives push events through ActionCable WebSockets, keeping the inbox real-time without polling. An enterprise directory mirrors the core app structure, layering paid features on top of base models through Rails engine conventions rather than modifying open-source code directly. Background work is handled by Sidekiq job classes that consume from Redis queues, decoupling heavy operations like email delivery, contact imports, and AI inference from the synchronous request cycle.

Tech Stack The backend runs Ruby on Rails 7.1 with PostgreSQL as the primary data store — including the pgvector extension used for Captain’s embedding-based knowledge retrieval. Redis handles both Sidekiq job queuing and ActionCable’s subscription management. The frontend is built with Vue 3 and Vite, using Pinia for state management alongside legacy Vuex stores that are progressively being migrated. ProseMirror drives the rich-text reply composer. Real-time voice calls are supported via the Twilio Voice SDK. The JavaScript SDK shipped to customer websites is independently bundled as a sub-50 KB asset via Vite’s library mode. Tests run through RSpec on the Ruby side and Vitest on the JavaScript side, with ESLint, Prettier, and RuboCop enforcing code style across both layers.

Code Quality Chatwoot maintains comprehensive test coverage across its Ruby codebase with nearly 850 RSpec spec files covering unit, integration, and job-level tests with external services mocked via WebMock and FactoryBot. The frontend has extensive Vitest coverage with approximately 360 spec files. Continuous integration runs CircleCI pipelines that enforce both test suites and linting before merge. Error handling is explicit and layered: model-level validations catch data integrity issues early, service objects return structured results rather than raising unpredictable exceptions, and API controllers respond with consistent error envelopes. Naming conventions are consistent across both codebases, and the Histoire component explorer documents the design system interactively.

What Makes It Unique Chatwoot’s most distinctive technical achievement is its native omnichannel architecture — each communication channel (WhatsApp, email, Facebook, SMS) is implemented as a first-class inbox type with shared conversation and contact abstractions, so agents interact with a uniform UX regardless of the underlying transport. The Captain AI integration is woven directly into the compose workflow rather than bolted on as an external sidebar, with context from the active conversation, contact history, and indexed knowledge base articles all feeding the same inference call. The pgvector-backed embedding store enables semantic retrieval of relevant FAQ content for both Captain’s autonomous responses and the Help Center search. Finally, the independently bundled JavaScript SDK enforces a strict sub-300 KB budget for the full chat widget, making it practical to embed on performance-sensitive customer-facing sites.

Self-Hosting

Chatwoot uses a dual-license model: everything outside the enterprise/ directory is released under the MIT License, which allows unrestricted commercial use, modification, and redistribution with no copyleft obligations. The enterprise directory is governed by the Chatwoot Enterprise License, which permits modification and development use but requires a paid subscription from Chatwoot Inc for production deployments. For most teams self-hosting the open-source build, this distinction is invisible — the core omnichannel inbox, Captain AI, Help Center, automations, reports, and all channel integrations are available under MIT with no seat limits or license keys required.

Running Chatwoot in production means operating a moderately complex stack: a Rails application server (Puma), PostgreSQL, Redis, Sidekiq workers for background jobs, and ActionCable for WebSockets. Official Docker Compose files are provided for single-node deployments, and a Helm chart supports Kubernetes for teams that need horizontal scaling. You are responsible for database backups, Redis persistence, SSL termination, and version upgrades. Releases ship roughly monthly and occasionally include database migrations that must be run in order; skipping multiple versions can complicate upgrades. The team actively maintains upgrade guides, but the operational burden is higher than a typical stateless web app.

Chatwoot’s managed cloud tier at chatwoot.com removes infrastructure concerns entirely and adds enterprise-grade SLAs, managed upgrades, and built-in high availability. Beyond convenience, the cloud Business and Enterprise plans include features gated behind the enterprise license in self-hosted deployments: Assignment V2 for intelligent workload balancing, SAML SSO, custom agent roles, audit logs, CSAT review notes, and advanced reporting APIs. Teams evaluating self-hosting should assess whether the operational overhead justifies the cost savings and data-residency benefits compared to the managed offering, particularly given that the open-source core already covers the vast majority of customer support workflows.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search