
Deploy Evolution API 2.3 + Chatwoot 4.19 + n8n 2.47
WhatsApp AI support desk: n8n bot answers, agents take over in Chatwoot
Chatwoot Postgres
Just deployed
Chatwoot Redis
Just deployed
n8n Postgres
Just deployed
n8n-worker
Just deployed
Just deployed
n8n-runner
Just deployed
Evolution API
Just deployed
Evolution Redis
Just deployed
n8n Redis
Just deployed
Evolution Postgres
Just deployed
Chatwoot
Just deployed
Deploy and Host Evolution API + Chatwoot + n8n on Railway
Evolution API + Chatwoot + n8n is a WhatsApp AI support desk. Evolution API connects a WhatsApp number by scanning a QR code, like WhatsApp Web, with no Meta Business approval. An n8n workflow, such as an AI agent with your docs, answers each message. Every conversation, including the bot's answers, is mirrored into Chatwoot, where your agents read along and take over.
About Hosting Evolution API + Chatwoot + n8n
Evolution API keeps WhatsApp sessions open and exposes them as a REST API with a web manager. One instance can use two of its integrations at once: n8n gets each incoming message on a webhook and its output goes back to the chat, and Chatwoot gets a copy of every message in an inbox, so agent replies go back to WhatsApp. Chatwoot needs PostgreSQL with pgvector, Redis and Sidekiq. n8n runs in queue mode, with a worker and a task runner.
This template deploys all three on Railway's private network, each app with its own PostgreSQL and Redis. Logins, the Chatwoot API token and every private address are created at deploy time and filled in as variables.
Common Use Cases
- AI agent answers WhatsApp customers; agents see every chat in Chatwoot
- Human takeover: an agent reply in Chatwoot is designed to pause the bot for that contact
- n8n hands a chat to a person: label, assign or note through the Chatwoot API
- Lead capture and order updates from n8n workflows
- Several WhatsApp numbers, each with its own inbox and workflow
Dependencies for Evolution API + Chatwoot + n8n Hosting
- PostgreSQL 18 (Evolution API, n8n) and PostgreSQL 16 with pgvector (Chatwoot)
- Redis (one per app: Evolution cache, Chatwoot jobs, n8n queue)
- n8n worker and task runner (official images, same version as n8n)
Deployment Dependencies
- Evolution API: https://github.com/evolution-foundation/evolution-api
- Chatwoot: https://github.com/chatwoot/chatwoot
- n8n: https://github.com/n8n-io/n8n
- Docs: https://doc.evolution-api.com, https://developers.chatwoot.com, https://docs.n8n.io
Implementation Details
What you set: ADMIN_EMAIL (Chatwoot) and N8N_INSTANCE_OWNER_EMAIL (n8n), the emails you log in with.
After deploy:
- Log in to Chatwoot with
ADMIN_EMAIL/ADMIN_PASSWORD, and to n8n withN8N_INSTANCE_OWNER_EMAIL/N8N_OWNER_PASSWORD. - In n8n, build a workflow: Webhook (POST, Basic Auth, respond with the Respond to Webhook node), your logic, then Respond to Webhook with
{"output": "reply"}. Publish it. - Open
https:///managerwithAUTHENTICATION_API_KEYand create a Baileys instance with a hard-to-guess name. - Integrations → Chatwoot: paste
CHATWOOT_URL, account1andCHATWOOT_TOKENfrom the Evolution API variables, and turn on Auto create. Evolution API creates the inbox. - Integrations → n8n: webhook URL =
PRIVATE_WEBHOOK_URLof n8n plus your path, your basic auth, trigger all, Stop bot from me on. - Scan the QR code, or request a pairing code with
GET /instance/connect/?number=.
Give a chat back to the bot with POST /n8n/changeStatus/ and {"remoteJid": "...", "status": "opened"}.
This template:
- Pins Evolution API 2.3.7 (newer images need a license activation), Chatwoot 4.19.1 CE and n8n 2.47.3
- Creates the Chatwoot admin, its API token and the n8n owner at deploy time, and closes Chatwoot's onboarding page
- Turns on only the n8n and Chatwoot integrations in Evolution API
- Puts private URLs and keys for Evolution API, Chatwoot and n8n in variables, ready to paste
- Runs n8n in queue mode with a worker and an external task runner
- Protects every public service: Evolution API key, Chatwoot and n8n logins; workers and databases stay private
Notes: In Evolution API 2.3.7, Chatwoot's callback /chatwoot/webhook/ has no API-key check, so keep instance names secret. The built-in EVOLUTION test channel's /webhook/evolution has no API-key check either, so production bots belong on WHATSAPP-BAILEYS instances. Send the n8n basic-auth password as basicAuthPass. Never change SECRET_KEY_BASE, ACTIVE_RECORD_ENCRYPTION_* or N8N_ENCRYPTION_KEY after the first deploy. Tested on 2026-11-10 with simulated messages: the bot answered, and its replies showed up in the Chatwoot conversation. An agent reply paused the bot in a simulated test where the contact and reply numbers matched; this is not yet confirmed with a paired phone. WhatsApp may ban numbers that send bulk or unsolicited messages. Evolution API, Chatwoot and n8n are not affiliated with WhatsApp or Meta.
Why Deploy Evolution API + Chatwoot + n8n on Railway?
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 + n8n 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.
Template Content
Chatwoot Postgres
pgvector/pgvector:0.8.7-pg16Chatwoot Redis
redis:8.2.11-alpinen8n Postgres
ghcr.io/railwayapp-templates/postgres-ssl:18n8n-worker
n8nio/n8n:2.47.3n8n-runner
n8nio/runners:2.47.3Evolution API
evoapicloud/evolution-api:v2.3.7Evolution Redis
redis:8.10n8n Redis
redis:8.10Evolution Postgres
ghcr.io/railwayapp-templates/postgres-ssl:18Chatwoot
chatwoot/chatwoot:v4.19.1-ce