All integrations

WhatsApp

Channel

Customer messaging through WhatsApp Business Cloud via the Chat SDK.

Install

Install eve, the Chat SDK core (chat), the WhatsApp adapter, and a state adapter:

npm install eve@latest chat @chat-adapter/whatsapp @chat-adapter/state-memory

The in-memory state store is fine for local development; use a durable state adapter (Redis, PostgreSQL) in production so thread subscriptions survive restarts.

Quick start

Create agent/channels/whatsapp.ts. Register Chat SDK handlers on bot, call send to hand each turn to eve, and export the channel:

// agent/channels/whatsapp.tsimport { createWhatsAppAdapter } from "@chat-adapter/whatsapp";import { createMemoryState } from "@chat-adapter/state-memory";import { chatSdkChannel } from "eve/channels/chat-sdk";export const { bot, channel, send } = chatSdkChannel({  userName: "My Agent",  adapters: { whatsapp: createWhatsAppAdapter() },  state: createMemoryState(),});bot.onNewMention(async (thread, message) => {  await thread.subscribe();  await send(message.text, { thread });});bot.onSubscribedMessage(async (thread, message) => {  await send(message.text, { thread });});export default channel;

Credentials come from the createWhatsAppAdapter config or the adapter's environment variables; see the WhatsApp adapter docs.

Configure

The adapter mounts its webhook at /eve/v1/whatsapp. Point your WhatsApp Business Cloud webhook at it. The adapter owns provider auth, verification, and delivery, while eve owns session dispatch, streaming, typing, and human-in-the-loop. See the Chat SDK channel docs for routes, streaming, and state options.

Agents using WhatsApp