# Novu Chat SDK Adapter

> Bring your Chat SDK agent to Slack, Teams, WhatsApp, Telegram, and email: deliver multi-channel notifications from one trigger, resolve every channel to one unified subscriber, and drop in React connect components to put channels in front of your end-customers.

Canonical: https://novu.co/changelog/novu-chat-sdk-adapter/

Markdown: https://novu.co/changelog/novu-chat-sdk-adapter.md

Last updated: 2026-06-19T06:30:00.000Z

Bring your Chat SDK agent to Slack, Teams, WhatsApp, Telegram, and email: deliver multi-channel notifications from one trigger, resolve every channel to one unified subscriber, and drop in React connect components to put channels in front of your end-customers.

Published: 2026-06-19T06:30:00.000Z

Categories: Agent Communication, New Feature, Chat

The @novu/chat-sdk-adapter is now available. Wire it into your Chat SDK app and Novu manages credentials, identity, and delivery across Slack, Microsoft Teams, WhatsApp, Telegram, and email.

```bash
npm install @novu/chat-sdk-adapter
```

## Multi-channel notifications from one trigger

Define a workflow once in Novu with the channels you want, then fire a single trigger from any handler. Novu fans out to every step — Slack, email, WhatsApp, and more — and routes replies back through the same agent loop, so proactive notifications and conversational replies share one handler set.

```typescript
const ctx = getNovuContext(thread);

// One trigger delivers to every channel in the workflow.
await ctx.trigger("order-shipped", {
  payload: { orderId: "1234", trackingUrl: "https://example.com/track/1234" },
});
```

## One unified subscriber across every channel

Every channel resolves to a single Novu subscriber mapped to your own user, so your agent always knows who it's talking to — with email, phone, locale, custom data, and the canonical conversation history available inside any handler.

```typescript
const ctx = getNovuContext(thread);

const subscriber = await ctx.getSubscriber(); // email, phone, locale, custom data
const history = await ctx.getHistory();       // canonical transcript — ideal for LLM context
```

## Expose channels to end-customers with connect components

Drop the prebuilt SlackConnectButton from @novu/react into your app so your end-customers can install and connect their own Slack workspace to your agent — OAuth, credentials, and Slack Connect handled by Novu. Microsoft Teams and Telegram connect buttons are in pre-release.

```typescript
import { SlackConnectButton } from '@novu/react';

<SlackConnectButton
  integrationIdentifier={integrationIdentifier}
  connectionIdentifier={`${subscriberId}:${integrationIdentifier}:${agent.identifier}`}
  connectionMode="subscriber"
  connectLabel={`Install ${agent.name} ↗`}
  connectedLabel="Connected to Slack"
  onConnectSuccess={handleSlackOAuthSuccess}
/>
```

Get started with `npx novu connect --runtime chat-sdk`, or read the [connect components docs](<https://docs.novu.co/agents/custom-code-agent/setup-your-agent/connect-components>).
