Как подружить бэкенд с WhatsApp без лишней боли

Каждый, кто хоть раз пытался прикрутить WhatsApp к корпоративной CRM или написать бота для поддержки, знает этот специфический сорт страданий. Официальный Cloud API от Meta требует верификации бизнеса, привязки карт и тарифицирует диалоги. С другой стороны, библиотеки вроде Baileys дают свободу, но требуют оборачивать всё в собственный сервис, следить за сессиями и как-то разруливать очереди сообщений.
Недавно наткнулся на open-source проект Evolution API. Ребята взяли эту рутину на себя и упаковали работу с мессенджером в готовый REST API с поддержкой очередей и вебхуков.
На GitHub у репозитория уже почти 9.5 тысяч звёзд и больше 7 тысяч форков. Цифра внушительная, поэтому решил разобраться, как там всё устроено под капотом.
Что умеет сервис
По сути, Evolution API работает как шлюз между вашей инфраструктурой и WhatsApp. Вы отправляете обычные HTTP-запросы, а сервис берёт на себя протоколы мессенджера, хранение сессий и обработку входящих событий.
Что сразу бросается в глаза при изучении возможностей:
- Два режима подключения. Можно работать бесплатно через эмуляцию веб-версии на базе Baileys, сканируя QR-код телефоном. Если нужны официальные рельсы и большие объёмы, переключаетесь на официальный WhatsApp Cloud API.
- Готовые интеграции с популярными платформами. В коробку завезли нативную дружбу с Chatwoot (опенсорсный хелпдеск), Typebot, Dify для AI-агентов и n8n для автоматизаций.
- Обработка медиафайлов. Сервис умеет автоматически выгружать входящие картинки и документы в S3 или MinIO. Если пользователь прислал голосовое, сервис может сам прогнать его через Whisper от OpenAI и вернуть готовый текст.
- Доставка событий через очереди. Вместо спама обычными вебхуками, которые легко положить пиковой нагрузкой, события можно пушить в RabbitMQ, Apache Kafka, Amazon SQS, NATS или отдавать по WebSocket.
Архитектура и стек
Под капотом у проекта классический стек: TypeScript, Node.js версии 20+ и Express.
Схема данных крутится через Prisma ORM. Это приятный плюс, так как из коробки поддерживаются и PostgreSQL, и MySQL. Достаточно переключить переменную окружения DATABASE_PROVIDER. Для кэширования сессий и снижения нагрузки на базу создатели рекомендуют подключать Redis.
Схема взаимодействия выглядит логично:
Ваш бэкенд / CRM
↓
Evolution API
├── Каналы (Baileys / WhatsApp Cloud API)
├── Чат-боты (Typebot, Chatwoot, Dify, Flowise, n8n)
├── Брокеры событий (RabbitMQ, Kafka, SQS, NATS, Socket.io)
└── Хранилище файлов (локально, AWS S3, MinIO)
Безопасность держится на глобальных API-ключах через заголовок apikey, плюс для каждого инстанса WhatsApp генерируются отдельные токены авторизации.
Быстрый запуск
Самый безболезненный способ поднять сервис у себя, это, конечно, Docker:
docker pull evoapicloud/evolution-api:latest
docker run -p 8080:8080 --env-file .env evoapicloud/evolution-api:latest
Если нужно собрать руками из исходников:
git clone git@github.com:evolution-foundation/evolution-api.git
cd evolution-api
# Ставим пакеты
npm install
# Настраиваем конфиг
cp .env.example .env
# Применяем миграции Prisma
export DATABASE_PROVIDER=postgresql
npm run db:generate
npm run db:deploy
# Запускаем в продакшене
npm run build
npm run start:prod
После старта вы создаёте инстанс через REST-эндпоинт, получаете QR-код в виде base64 или картинки, сканируете его в приложении WhatsApp и начинаете слать сообщения через обычный POST /message/sendText.
Практические сценарии
Где такой шлюз реально экономит недели разработки:
- Подключение WhatsApp к техподдержке. Поднимаете Chatwoot, натравливаете на него Evolution API, и операторы отвечают клиентам из удобного веб-интерфейса.
- AI-боты первой линии. Связка с Dify или Typebot настраивается штатными переменными. Бот сам забирает сообщения, формулирует ответ и отправляет обратно.
- Системные уведомления и транзакционные рассылки. Статусы заказов из интернет-магазина, коды авторизации или алерты мониторинга. За счёт очередей RabbitMQ или SQS рассылка не убьёт ваш основной сервер.
Кому стоит попробовать
Evolution API пригодится командам, которым нужно быстро внедрить WhatsApp в бизнес-процессы и не хочется писать с нуля управление сессиями, транскрибацию войсов и интеграцию с S3.
Если у вас пет-проект или небольшой бизнес, бесплатного режима через Baileys хватит за глаза. Когда упрётесь в лимиты или понадобятся гарантии официального API, сможете переключить бэкенд на WhatsApp Cloud API внутри того же сервиса, не переписывая интеграции в своей CRM.
