All integrations

Kapso

ChannelProvider official

Managed WhatsApp conversations, media, buttons, and history through Kapso.

Read the full channel docs

Install

Install eve, Chat SDK, the Kapso adapter, and a state adapter:

bash
npm install eve@latest chat @kapso/chat-adapter @chat-adapter/state-memory

The in-memory state store is for local development. Use Redis or PostgreSQL in production. This adapter is built and maintained by Kapso.

Quick start

Create agent/channels/kapso.ts:

ts
// agent/channels/kapso.tsimport { createKapsoAdapter } from "@kapso/chat-adapter";import { createMemoryState } from "@chat-adapter/state-memory";import { chatSdkChannel } from "eve/channels/chat-sdk";
export const { bot, channel, send } = chatSdkChannel({  userName: "My Agent",  adapters: {    kapso: createKapsoAdapter({      kapsoApiKey: process.env.KAPSO_API_KEY!,      phoneNumberId: process.env.KAPSO_PHONE_NUMBER_ID!,      webhookSecret: process.env.KAPSO_WEBHOOK_SECRET!,    }),  },  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;

See the Kapso adapter documentation for supported events, capabilities, and credentials.

Configure

Connect a WhatsApp number in Kapso, set KAPSO_API_KEY, KAPSO_PHONE_NUMBER_ID, and KAPSO_WEBHOOK_SECRET, then point the Kapso webhook at /eve/v1/kapso. Use this provider-managed option when you do not want to integrate directly with the WhatsApp Cloud API. See the Chat SDK channel docs for eve session dispatch, state, streaming, and human-in-the-loop behavior.