Try Chatwoot, an open source customer relationship platform

Chatwoot is an open source alternative to Intercom, Zendesk, Salesforce Service Cloud, and other proprietary communications platforms.
65 readers like this.
Digital images of a computer desktop

Chatwoot is an open source customer relationship platform built with Ruby and Vue.js. It was written from scratch to allow customer-relations teams to build end-to-end platforms for ticket management and support.

This article looks at Chatwoot's architecture, installation, and key features.

Chatwoot's architecture

Chatwoot requires the following components to function properly:

  • Chatwoot web servers
  • Chatwoot workers
  • PostgreSQL database
  • Redis
  • Email service (e.g., SMTP, SendGrid, Mailgun)
  • Object storage (e.g., AWS S3, Azure, Google Cloud Storage, MinIO)

The Chatwoot server and workers are the core components that integrate with everything else. PostgreSQL and Redis are specific, required components.

The other components, like the email server and object storage, are loosely coupled, so you can use any compatible system. Therefore, you could choose any SMTP server, self-hosted or SaaS, as your email service. Similarly, for object storage, you can use public cloud platforms like AWS S3, Azure Blob Store, GCS, or private cloud platforms like MinIO.

Install Chatwoot

Chatwoot is available on common platforms, including Linux virtual machines, Docker, and as a single-click install application on Heroku and CapRover. This how-to looks at the Docker installation process; for other platforms, refer to Chatwoot's documentation.

To begin, ensure Docker Compose is installed on your machine. Then, download the env and docker-compose files from Chatwoot's GitHub repo:

# Download the env file template
wget -O .env
# Download the Docker compose template
wget -O docker-compose.yml

Open the env file and fill in the env variables REDIS_PASSWORD and POSTGRES_PASSWORD; these will be the passwords for Redis and PostgreSQL, respectively. Then update the same PostgreSQL password in the docker-compose.yaml file. 

Now, prepare PostgreSQL:

docker-compose run --rm rails bundle exec rails db:chatwoot_prepare

Deploy Chatwoot:

docker-compose up -d

You should now be able to access Chatwoot at http://localhost:3000.

Chatwoot features

Fill in the details on the welcome page to create the admin user. After that, you should land on the Conversations page.

The following are Chatwoot's key features:


Chatwoot supports a wide range of platforms as messaging Channels (including website widgets, Facebook, Twitter, WhatsApp, email, and others). To create an integration, click on the Inboxes button on the left-hand sidebar. Then select the platform you want to integrate with.

Each platform has its own set of human agents, teams, labels, and canned responses. This way, Chatwoot allows a unified interface for talking to customers, but each channel is as customizable as it can be in the background.


Organizations take customer response service-level agreements (SLAs) very seriously—and rightly so. Chatwoot has an integrated dashboard that gives a birds-eye view of the most important metrics, like total messages, response times, resolution times, etc. Administrators can also download reports for specific agents.


Chatwoot also captures contact details from each incoming message and neatly arranges this information on a separate page called Contacts. This ensures all contact details are available for further follow-up or even syncing with an external, full-fledged customer relationship management (CRM) platform.


Channels enable integrations with external messaging systems so that Chatwoot can communicate using these systems. However, what if you want a team to be notified on Slack if there is a new chat message on Chatwoot?

This is where Integration Webhooks come into the picture. This feature allows you to integrate Chatwoot into external systems so that it can send out relevant information.

Learn more

Chatwoot provides many of the key communications features customer relations teams want. To learn more about Chatwoot, take a look at its GitHub repository and documentation.

What to read next
User profile image.
Nitish is interested at the intersection of open source, system software and startups. He loves to read and explore anything open source. In his free time, he likes to read motivational books. He is currently working on building Parseable - an open source object storage, log storage, management and observability platform.

Comments are closed.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.