---
title: Messenger
description: Facebook Messenger bots with templates, buttons, and reactions via the Chat SDK.
url: "https://eve.dev/integrations/chat-sdk-messenger"
docs_index: /llms.txt
type: channel
keywords:
  - chat sdk
  - messenger
  - facebook
  - bot
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

Channel integration for eve. Facebook Messenger bots with templates, buttons, and reactions via the Chat SDK.

## Install

Add this Chat SDK channel from eve's registry. This writes `agent/channels/messenger.ts` and installs Chat SDK and its adapter dependencies:

```bash
eve add channel/chat-sdk-messenger
```

## Quick start

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

```ts
// agent/channels/messenger.ts
import { createMessengerAdapter } from "@chat-adapter/messenger";
import { createMemoryState } from "@chat-adapter/state-memory";
import type { Message, Thread } from "chat";
import { chatSdkChannel, messageToUserContent } from "eve/channels/chat-sdk";

export const { bot, channel, send } = chatSdkChannel({
  userName: "My Agent",
  adapters: { messenger: createMessengerAdapter() },
  state: createMemoryState(),
  // Hand every message to eve, even mid-reply, so eve can steer the running turn.
  concurrency: "concurrent",
  // Messenger can't edit sent messages, so send each reply whole.
  streaming: false,
});

bot.onNewMention(async (thread: Thread, message: Message) => {
  await thread.subscribe();
  await send(messageToUserContent(message), { thread });
});

bot.onSubscribedMessage(async (thread: Thread, message: Message) => {
  await send(messageToUserContent(message), { thread });
});

export default channel;
```

Credentials come from the `createMessengerAdapter` config or the adapter's environment variables; see the [Messenger adapter docs](https://chat-sdk.dev/adapters/official/messenger).

## Configure

The adapter mounts its webhook at `/eve/v1/messenger`. Point your Messenger 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](/docs/channels/chat-sdk) for routes, streaming, and state options.

[Read the full channel documentation](/docs/channels/chat-sdk)

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)