---
title: "Deploy Evolution API Typebot"
description: "WhatsApp chatbot flows from Typebot via Evolution API"
category: "Automation"
url: https://railway.com/deploy/deploy-evolution-api-typebot-chatbot
---

# Deploy Evolution API Typebot

WhatsApp chatbot flows from Typebot via Evolution API

**[Deploy Evolution API Typebot on Railway](https://railway.com/template/deploy-evolution-api-typebot-chatbot)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/deploy-evolution-api-typebot-chatbot/manifest.json

- **Creator:** onepush
- **Category:** Automation

## Template content

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### evolution-api

- **Image:** evoapicloud/evolution-api:v2.3.7@sha256:1bd8afc4a6cf48822e6cf02469aeae7bd35a12a6b616eacd1291926307f4d339
- **Health check:** /
- **Public domain:** Yes

## Documentation

# Deploy and Host self hosted Evolution API Typebot (Open-Source WhatsApp API) on Railway

Self-host Evolution API on Railway and switch on its built-in Typebot integration so WhatsApp numbers answer with your chatbot flows. It suits designers who already build flows in Typebot and want them talking to real numbers.

## About Hosting Evolution API Typebot open-source software on Railway (self hosted Evolution API Typebot template)

This template runs Evolution API v2.3.7 on Railway with Postgres and Redis attached, so chat history, contacts and instance records save to your own database instead of a vendor's.

## Why Deploy Evolution API Typebot, the Twilio alternative on Railway (Railway Free Trial)

Twilio bills per message and keeps the WhatsApp connection in its own account. Here you run the server, so the cost is hosting rather than a per-message markup. Start on the $5 trial, add TYPEBOT_ENABLED=true, and keep full control of the flow.

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 Typebot 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 Typebot self hosting

Railway ships the API, Postgres and Redis as one project; enabling Typebot is an env var and a redeploy.

| Provider | What You Get with Railway | What You Get with the Other Provider |
| --- | --- | --- |
| DigitalOcean | Managed Postgres, Redis and a public HTTPS domain for /manager and webhooks | A Droplet where you install Docker, Postgres, Redis and TLS yourself |
| AWS | Pinned image, health checks and a generated API key, no IAM or VPC work | ECS or EC2 plus RDS and ElastiCache, more control, more setup |
| Hetzner | Env var changes and redeploys, no server rebuild | Cheap VPS hardware, but you patch and back up everything |

## Common Use Cases for hosted Evolution API Typebot

- **Lead qualification:** Typebot asks budget and timeline as variables, then hands the lead to your team with the phone number attached. Use triggerType keyword so stray chats stay quiet.
- **Order status menu:** a button list takes the order number and replies on WhatsApp. Set a short expire so idle sessions close instead of holding stale state.
- **Booking with handoff:** collect the slot, then call changeStatus with paused when the customer asks for a person, so the bot stops talking over them.
- **Keyword campaigns:** one bot per instance, triggerValue as the campaign word, delayMessage for paced replies, and stopBotFromMe on so your own reply ends the flow.
- **Phone in variables:** pass remoteJid in the start call so the flow can personalize replies and dedupe leads.

## Dependencies for Evolution API Typebot Docker hosted on Railway

Three services: evolution-api (evoapicloud/evolution-api:v2.3.7, port 8080, health /, volume /evolution/instances), Postgres via DATABASE_CONNECTION_URI and Redis via CACHE_REDIS_URI. TYPEBOT_ENABLED is not set.

### Deployment Dependencies for Managed Evolution API Typebot Service (WhatsApp API)

You need a published Typebot flow plus its viewer URL and public name; those become the url and typebot fields. TYPEBOT_API_VERSION stays latest. AUTHENTICATION_API_KEY is generated and also logs you into /manager.

### Implementation Details for Evolution API Typebot (Using Evolution API official docker image)

Node.js and TypeScript over Baileys: inbound messages go to your Typebot viewer, replies come back to WhatsApp. Sessions live in /evolution/instances. TYPEBOT_START and TYPEBOT_CHANGE_STATUS can go to your webhook.

## How does Evolution API Typebot compare against other WhatsApp chatbot builders

The comparison comes down to who owns the number, the flow, and the hosting bill.

### Evolution API vs Twilio (Twilio Alternative)

- **Connection:** Twilio is official Cloud API only; Evolution API also runs Baileys on a QR scan, so you skip Meta review.
- **Bot wiring:** Twilio waits on your own code; Evolution API calls your Typebot viewer and posts replies back.
- **Where Twilio wins:** Meta-backed templates and deliverability, with no Baileys ban risk.

### Evolution API vs WATI (WATI Alternative)

- **Inbox vs API:** WATI ships an agent inbox; Evolution API is a headless HTTP API driven by Typebot.
- **Ownership:** You run Evolution API, Postgres and Redis; WATI runs everything and you just log in.
- **Where WATI wins:** Non-technical teams get a working dashboard on day one, no Docker or QR babysitting.

### Evolution API vs ManyChat (ManyChat Alternative)

- **Flow editor:** ManyChat bundles a drag-and-drop builder; here you build in Typebot and store the viewer URL.
- **Cost shape:** ManyChat bills by contact volume; here you pay for one server you size yourself.
- **Where ManyChat wins:** Instagram and Messenger channels, plus templates a non-coder finishes fast.

### Evolution API vs Botpress (Botpress Alternative)

- **Scope:** Botpress is a full bot platform with NLU; Evolution API is the WhatsApp pipe feeding Typebot.
- **Lock-in:** Flows stay as Typebot exports and messages sit in your Postgres, not a vendor's.
- **Where Botpress wins:** Built-in AI agents, analytics and a hosted studio, with no server upkeep.

## How to use Evolution API Typebot (the OSS self-hosted WhatsApp HTTP API)?

1. Add `TYPEBOT_ENABLED=true` to evolution-api and redeploy.
2. Open `/manager`, log in with the apikey, scan the QR.
3. Publish a flow in Typebot, note its viewer URL and public name.
4. Create the bot:

```bash
curl -X POST https://your-domain/typebot/create/inst -H "apikey: KEY" -H "Content-Type: application/json" -d '{"enabled":true,"url":"https://bot.typebot.io/x","typebot":"x","triggerType":"keyword","triggerValue":"help"}'
```

5. Message the number with `help`. Pause or close:

```bash
curl -X POST https://your-domain/typebot/changeStatus/inst -H "apikey: KEY" -H "Content-Type: application/json" -d '{"remoteJid":"5511999999999@s.whatsapp.net","status":"closed"}'
```

Status accepts opened, paused or closed.

## How to self host Evolution API Typebot on other VPS Services (Evolution API self hosting guide)

### Clone the Repository

Pull the upstream repo and move into it.

```bash
git clone https://github.com/EvolutionAPI/evolution-api
cd evolution-api
```

### Install Dependencies

You need Docker and Docker Compose, plus Postgres and Redis reachable from the host.

### Configure Environment Variables

Copy the example file and edit it.

```bash
cp .env.example .env
```

Set AUTHENTICATION_API_KEY to a long random string, DATABASE_PROVIDER=postgresql with DATABASE_CONNECTION_URI, CACHE_REDIS_URI, SERVER_URL to https://your-domain, and add TYPEBOT_ENABLED=true.

### Start the Evolution API Typebot Application

```bash
docker compose up -d
```

Then open https://your-domain/manager, log in with the API key, create an instance and scan the QR. Create the bot with POST /typebot/create/INSTANCE before your flows answer anything.

On Railway, the pinned image, Postgres, Redis, the API key, the volume and the /manager UI are all wired before the first boot.

## Official Pricing of Evolution API Typebot (Evolution API pricing)

Evolution API is free and open source, and so is Typebot. You pay for the servers they run on, not for a licence. Twilio, by contrast, adds a per-message fee on top of Meta's.

## Evolution API Typebot cloud vs self hosted comparison (Pricing, features, costs, and more)

Typebot cloud and a managed WhatsApp provider both bill monthly, and neither gives you the session files or the API key. Self hosting keeps the Typebot integration in your own stack, where you control the trigger keywords and expiry.

### Monthly cost of self hosting Evolution API Typebot on Railway

Expect about 5-15 USD/mo for the API plus Postgres and Redis at light use, and the Railway trial starts at 5 USD. Meta still bills per message if you switch an instance to the official Cloud API.

### System Requirements for Hosting Evolution API Typebot on a VPS

A small VPS with 1 to 2 GB of RAM runs the API, Postgres, Redis and your Typebot viewer, though 2 GB is safer once flows get busy.

## Frequently Asked Questions (FAQs)

### Why does the Typebot menu say disabled?

Because TYPEBOT_ENABLED is not set by this template. The upstream .env.example ships it as false, so the manager hides the Typebot screens until you add TYPEBOT_ENABLED=true to the evolution-api service variables and redeploy.

### Should I use the keyword or all trigger?

Use all when the bot should answer every incoming message on that number. Use keyword, with triggerOperator and triggerValue, when people also chat with humans there.

### How do I stop the bot for one contact?

Call POST /typebot/changeStatus/INSTANCE with that remoteJid and status paused or closed. Set stopBotFromMe to true if you also want the bot to step aside whenever you reply manually from the phone.

### How long do Typebot sessions last?

The expire field on POST /typebot/create/INSTANCE sets the minutes before a session times out, and keywordFinish ends it early when the contact types your stop word. Both are per bot, so different instances can behave differently.

### Can I pass variables into Typebot?

Yes. POST /typebot/start/INSTANCE takes a variables list of name and value pairs, so you can hand over the contact phone, a name or an order id before the first block runs.

### Does this work with the official Cloud API?

Yes, though the Typebot integration runs over whichever connection the instance uses. Baileys numbers are unofficial and can be banned for bulk sending, so use a dedicated number or the Cloud API instance type for business traffic.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/deploy-evolution-api-typebot-chatbot
