Chatwoot is an open-source customer engagement platform that provides businesses with tools for live chat, customer support, and messaging.

It allows businesses to communicate with their customers through various channels, including website chat, social media messaging, and email, all from a unified platform.

The ChatWoot Project

The base branch is develop. If you are looking for a stable version, please use the master or tags labelled as v1.x.x.

Why ChatWoot?

  • Unified Inbox: Chatwoot offers a unified inbox where businesses can manage conversations from different channels in one place. This includes website chat, Facebook Messenger, Twitter Direct Messages, WhatsApp, and more.

  • Live Chat: Businesses can embed a live chat widget on their website, allowing visitors to initiate conversations in real-time. Agents can respond to these messages directly from the Chatwoot dashboard.

  • Multi-channel Support: Chatwoot supports multiple communication channels, enabling businesses to engage with customers wherever they are. This includes popular messaging platforms like Facebook Messenger, WhatsApp, Twitter, and SMS.

  • Automation: Chatwoot provides automation features such as chatbots and canned responses to streamline customer interactions and provide timely responses.

  • Integration: Chatwoot can be integrated with other business tools and platforms, such as CRM systems, helpdesk software, and analytics tools, to create a seamless customer support workflow.

SelfHosting ChatWoot

ChatWoot with Docker

We will use the ChatWoot Docker Image.

Pre-Requisites - Get Docker 馃悑

Important step and quite recommended for any SelfHosting Project - Get Docker Installed

It will be one command, this one, if you are in Linux:

apt-get update && sudo apt-get upgrade && curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh && docker version

Just follow the following steps:

  • Download the following configurations files:
# Download the env file template
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
# Download the Docker compose template
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
  • Adjust the .env file and docker-compose.yml - Add a Password for Postres and Redis
  • Execute the following commands to deploy locally.
#add redit and postg pass
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
docker compose up -d

Now you will have ChatWoot available at: localhost:3000 - basically the port you picked in the .yaml

ChatWoot with Cloudflare Tunnels

If you want to expose Chatwoot safely to the internet - You can use Chatwoot together with Cloudflare Tunnels

Make sure to have Cloudflare Tunnel container running - Then just add this to the docker-compose.yml

Check how to expose ChatWoot with Cloudflare 馃敟
version: '3'

services:
  base: &base
    image: chatwoot/chatwoot:latest
    env_file: .env ## Change this file for customized env variables
    volumes:
      - /data/storage:/app/storage
    networks: #ADD THIS
      - chatwoot_network

  rails:
    <<: *base
    depends_on:
      - postgres
      - redis
    ports:
      - '127.0.0.1:3000:3000'
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    entrypoint: docker/entrypoints/rails.sh
    command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']
    networks: #ADD THIS
      - chatwoot_network
      - cloudflare_tunnel

  sidekiq:
    <<: *base
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
    networks: #ADD THIS
      - chatwoot_network

  postgres:
    image: postgres:12
    restart: always
    ports:
      - '127.0.0.1:5432:5432'
    volumes:
      - /data/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      # Please provide your own password.
      - POSTGRES_PASSWORD=tecomeco
    networks: #ADD THIS
      - chatwoot_network

  redis:
    image: redis:alpine
    restart: always
    command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
    env_file: .env
    volumes:
      - /data/redis:/data
    ports:
      - '127.0.0.1:6379:6379'
    networks: #ADD THIS
      - chatwoot_network

networks: #ADD THIS
  chatwoot_network:
  cloudflare_tunnel:
    external: true

ChatWoot with AI


FAQ

How to Configure Cloudflare Tunnel with Docker

Check this guide if you are interested to know how to safely deploy services through Cloudflare Zero Trust Tunnels.

What is a Customer Engagement Platform?

  • Focuses on facilitating interactions and engagement with customers across various touchpoints, channels, and stages of the customer journey.
  • Provides tools for communication, support, and collaboration to enable businesses to interact with customers in real-time and nurture relationships.
  • Offers features such as live chat, social media messaging, email marketing, customer support ticketing, and omnichannel communication.
  • Aims to enhance customer satisfaction, retention, and loyalty by providing personalized and responsive interactions.
Similar, but not same as a CRM 馃憟
  • Focuses on managing and organizing customer data, interactions, and relationships to improve sales, marketing, and customer service efforts.
  • Centralizes customer information, including contact details, communication history, purchase history, and preferences, in a unified database or platform.
  • Provides features for lead management, sales pipeline tracking, contact management, and customer segmentation.
  • Enables businesses to analyze customer data, track sales opportunities, forecast revenue, and automate sales and marketing processes.
  • Typically used by sales teams to manage customer interactions, track leads, and optimize sales efforts.

F/OSS Alternatives

CEP’s

  • Tiledesk - is an Open Source Live Chat platform with integrated Chatbots written in NodeJs and Express. Build your own customer support with a multi-channel platform for Web, Android and iOS.
  • Chasqkiq - A full featured Live Chat, Support & Marketing platform, alternative to Intercom, Drift, Crisp, etc from cience.com

CRM’s

Some Open Sourced CRM’s you can Self-Host 馃憟
  • SuiteCRM
  • Odoo
  • ESPOCRM

ERP’s

AI

Some AI that can be used together with Chatwoot.

  • EmbedChain
  • Khoj - Your AI second brain. A copilot to search and chat (using RAG) with your knowledge base (pdf, markdown, org). Use powerful, online (e.g gpt4) or private, offline (e.g mistral) LLMs. Self-host locally or have it always accessible on the cloud. Access from Obsidian, Emacs, Desktop app, Web or Whatsapp
  • Open Assistant - OpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so.
  • Copilot Kit
  • Botpress

How to Embed ChatWoot to a Website

Chatwoot + Astro 馃憟