Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jAtInn71/chatwoot-costom/llms.txt

Use this file to discover all available pages before exploring further.

Chatwoot Custom is a production-ready overlay on top of the open-source Chatwoot customer support platform. It adds a microphone button to the chat widget that connects visitors to an ElevenLabs Conversational AI agent — and every spoken turn is automatically posted into the Chatwoot conversation so your support team sees the full context.

Quick Start

Get your instance running in under 10 minutes using Docker Compose

Voice Agent Setup

Configure your ElevenLabs agent per inbox from the Chatwoot dashboard

Widget Embedding

Add the chat widget with voice support to any website in one script tag

API Reference

Explore the widget API endpoints for voice config and transcripts

How it works

Chatwoot Custom keeps all modifications isolated in a custom/ directory — upstream Chatwoot files are never touched. This means you can pull new Chatwoot releases without merge conflicts.
1

Deploy with Docker

Pull the pre-built image or build locally with ./build.sh. A single docker compose up -d brings up Rails, Sidekiq, PostgreSQL, and Redis.
2

Create a web widget inbox

In the Chatwoot dashboard, go to Settings → Inboxes → Add Inbox → Website and complete the setup wizard.
3

Enable the voice agent

Open the inbox Configuration tab, scroll to Voice Agent, toggle it on, and paste your ElevenLabs Agent ID.
4

Embed the widget

Copy the one-line <script> snippet from the inbox configuration and paste it before </body> on your website. The voice button appears automatically.

Key features

Per-inbox voice config

Each inbox has its own ElevenLabs agent ID and provider settings — no environment variables needed at runtime

Automatic transcripts

Every voice turn is posted as a message in the Chatwoot conversation, visible to agents in real time

Overlay architecture

All customizations live in custom/ — safe to upgrade Chatwoot without conflicts

Soft session exit

Chat exit resets state without reloading the iframe, preserving host-page integrations
Voice features require HTTPS. Microphone access is blocked by browsers on plain HTTP origins outside of localhost. Use a tunnel such as ngrok or deploy behind your domain’s SSL certificate for live testing.

Build docs developers (and LLMs) love