
Deploy Evolution API Chatwoot
Connect WhatsApp to Chatwoot via Evolution API
evolution-api
Just deployed
/evolution/instances
Just deployed
/var/lib/postgresql/data
Redis
Just deployed
/data
Deploy and Host Evolution API Chatwoot (Open-Source WhatsApp API) on Railway
Deploys Evolution API v2.3.7 on Railway so you can link WhatsApp to Chatwoot. Chatwoot is off by default: set CHATWOOT_ENABLED=true on the evolution-api service and redeploy, or calls fail with 'Chatwoot is disabled'. For support teams routing WhatsApp into a shared inbox.
About Hosting Evolution API Chatwoot on Railway (self hosted Evolution API template)
This template runs Evolution API v2.3.7 with Postgres and Redis on Railway, keeping your WhatsApp session files, messages, and contacts under your control.
Why Deploy Evolution API Chatwoot on Railway (Railway Free Trial)
Twilio adds per-message fees on top of Meta's rates. Here you pay for hosting only. The $5 trial lets you test a real Chatwoot inbox before paying $5-15 monthly for light use.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Evolution API Chatwoot on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for Evolution API Chatwoot self hosting
Railway's template handles the Evolution API stack; a raw VPS leaves you to install everything.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | One-click deploy with Postgres, Redis, and a public URL preconfigured. | Manual Docker, Postgres, Redis, and reverse proxy setup on a Droplet. |
| AWS | Postgres and Redis services with pre-set connection variables. | VPC, security groups, IAM, and per-service config first. |
| Hetzner | Railway handles ops; you paste Chatwoot account ID and token. | Cheap compute, but you manage OS, networking, backups, and webhook. |
Common Use Cases for hosted Evolution API Chatwoot
- Shared inbox support: Put all WhatsApp numbers into one Chatwoot dashboard so agents assign, tag, and reply without WhatsApp Web.
- Agent replies from Chatwoot: With autoCreate, Evolution makes an API inbox, so replies in Chatwoot go out over WhatsApp and can be signed with the agent name.
- Reopen resolved chats: Set reopenConversation to reactivate a resolved Chatwoot thread when the customer messages again.
- Import contacts and history: Use importContacts and importMessages to pull existing WhatsApp contacts and chats into Chatwoot for context.
- Skip group noise: Set ignoreJids to ignore WhatsApp groups so only direct messages create Chatwoot conversations.
Dependencies for Evolution API Docker hosted on Railway
Evolution API on Railway needs Postgres for state, Redis for cache, and a separately deployed Chatwoot for the shared inbox integration. Chatwoot is off by default: add CHATWOOT_ENABLED=true to the evolution-api service or calls return "Chatwoot is disabled".
Deployment Dependencies for Managed Evolution API Service (WhatsApp API)
The template runs three services: evolution-api from evoapicloud/evolution-api:v2.3.7 on port 8080, Railway Postgres, and Railway Redis. For Chatwoot, set CHATWOOT_ENABLED=true, optionally CHATWOOT_MESSAGE_READ=true and CHATWOOT_MESSAGE_DELETE=true.
Implementation Details for Evolution API (Using the official Evolution API docker image)
The official image stores WhatsApp session files in /evolution/instances and checks health at /. You can sign messages with the agent name, reopen resolved conversations, and use ignoreJids to skip groups. Baileys is unofficial, so bulk sending risks a ban.
How does Evolution API compare against other WhatsApp API platforms
Evolution API vs Twilio (Twilio Alternative)
-
Self-hosted control: Evolution API runs on your Railway stack, keeping sessions and data on your infra. Twilio wins on zero server maintenance, but you pay per message and lose direct access.
-
Chatwoot integration: Evolution API's Chatwoot connector creates a shared inbox when enabled. Chatwoot also has a native Twilio WhatsApp inbox, but every message then carries Twilio and Meta fees.
-
Connection flexibility: Evolution API can use Baileys or Meta's Cloud API. Twilio only offers the official Cloud API.
Evolution API vs WAHA (WAHA Alternative)
-
Chatwoot out of the box: Evolution API ships a free Chatwoot connector with autoCreate, disabled by default. Check WAHA's docs for its current Chatwoot support.
-
Protocol options: WAHA runs WhatsApp Web engines; Evolution API supports Baileys and the official Cloud API.
-
Where WAHA wins: a focused HTTP API with a paid Plus edition backed by its maintainer.
Evolution API vs the official WhatsApp Cloud API used directly (WhatsApp Cloud API Alternative)
-
No Meta approval for quick start: Evolution API with Baileys needs only a QR scan. Direct Cloud API demands business verification and templates.
-
Chatwoot without middleware: Evolution API auto-creates a Chatwoot inbox with webhook back to your instance. Chatwoot can connect the Cloud API directly too, but only after Meta approval.
-
Risk difference: Baileys is unofficial and ban-prone for spam. Cloud API is compliant but charges per message.
Evolution API vs Z-API (Z-API Alternative)
-
Self-hosted, no per-instance fee: Evolution API is free software; you pay only Railway hosting. Z-API charges monthly per number.
-
Chatwoot native: Evolution API's Chatwoot connector is built in and free; with Z-API you rely on its own integrations or webhooks.
-
Where Z-API wins: Z-API is managed SaaS, so no Docker, Postgres, or Redis to run. Evolution API needs you to maintain those.
How to use Evolution API Chatwoot (the OSS WhatsApp API)?
- Add CHATWOOT_ENABLED=true to the evolution-api service variables and redeploy. Without it, API calls return "Chatwoot is disabled."
- In Chatwoot, copy your account ID from the URL and create a user access token under Profile settings.
- Open the Evolution manager, select your instance, and enter the accountId, token, and Chatwoot URL. Set autoCreate to true so Evolution builds an inbox whose webhook points to your-evolution-domain/chatwoot/webhook/your-instance.
- Agent replies in Chatwoot now go out over WhatsApp. Enable CHATWOOT_MESSAGE_READ and CHATWOOT_MESSAGE_DELETE to sync read receipts and deletions.
- Add ignoreJids for groups and remember Baileys ban risk if you bulk send from a number you care about.
How to self host Evolution API on other VPS Services (Evolution API self hosting guide)
Clone the Repository
Clone the source and enter the project directory:
git clone https://github.com/EvolutionAPI/evolution-api
cd evolution-api
Install Dependencies
The project runs with Docker, so no Node.js install is required. Copy the sample environment file:
cp .env.example .env
Configure Environment Variables
Edit .env and set at minimum:
AUTHENTICATION_API_KEY=your-key
DATABASE_PROVIDER=postgresql
DATABASE_CONNECTION_URI=postgres://user:pass@host:5432/db
CACHE_REDIS_URI=redis://host:6379
For Chatwoot, also add CHATWOOT_ENABLED=true; the account ID, token, and Chatwoot URL are set per instance later. See doc.evolution-api.com for the full list.
Start the Evolution API Application
Launch the stack with Docker Compose:
docker compose up -d
Then access the manager at your-domain/manager and log in with your global API key. Railway handles the multi-service setup for you: it wires Postgres, Redis, and the public domain, so you skip these steps entirely.
Official Pricing of Evolution API (Evolution API pricing)
Evolution API is free and open source. There is no paid edition of Evolution API itself; the project uses an Apache-2.0 based license and you self-host it.
Evolution API cloud vs self hosted comparison (Pricing, features, costs, and more)
Self hosting Evolution API gives you the same multi-instance Baileys or Cloud API connections without per-message markups. You only pay for the infrastructure. Managed options like Twilio add convenience and fees, while a Railway deployment keeps everything under your control.
Monthly cost of self hosting Evolution API on Railway
Running the Evolution API service plus Postgres and Redis on Railway typically costs about 5 to 15 USD per month at light usage. Railway's 5 USD free trial covers early testing. Meta's official Cloud API messages are billed separately per message by Meta.
System Requirements for Hosting Evolution API on a VPS
A modest VPS with 1 GB RAM and 1 vCPU handles a few instances for testing and small team inboxes. For multiple active instances or heavy webhook traffic, use 2 GB RAM and 2 vCPUs. Disk usage is low, but keep space for WhatsApp session files and imported message history.
Frequently Asked Questions (FAQs)
Why do I see "Chatwoot is disabled"?
Add CHATWOOT_ENABLED=true to your service variables and redeploy. It's off by default in v2.3.7.
How do I connect an instance to Chatwoot?
Use /manager or POST /chatwoot/set/your-instance with the apikey header and a JSON body including accountId, token, url, and autoCreate.
Do Chatwoot replies send on WhatsApp?
Yes, with autoCreate true. Evolution creates an inbox with a webhook to /chatwoot/webhook/your-instance.
How do I import messages and ignore groups?
Use ignoreJids to skip groups. Set importMessages true and daysLimitImportMessages, plus CHATWOOT_IMPORT_DATABASE_CONNECTION_URI for history.
Where do I find my Chatwoot account ID and token?
Copy your account ID from the Chatwoot URL and generate a user access token from Profile settings.
Is Baileys safe from WhatsApp bans?
No, it's unofficial. Bulk sending risks bans; use a dedicated number and the Cloud API for scale.
Template Content
evolution-api
evoapicloud/evolution-api:v2.3.7Redis
redis:8.2