All integrations

Dial

ChannelProvider official

Give your agent a phone number for SMS, MMS, iMessage, and voice transcripts.

Read the full channel docs

Install

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

bash
npm install eve@latest chat @getdial/chat-sdk-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 Dial.

Quick start

Create agent/channels/dial.ts:

ts
// agent/channels/dial.tsimport { createDialAdapter } from "@getdial/chat-sdk-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: {    dial: createDialAdapter({      apiKey: process.env.DIAL_API_KEY!,      fromNumberId: process.env.DIAL_FROM_NUMBER_ID!,      webhookSecret: process.env.DIAL_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 Dial adapter documentation for supported events, capabilities, and credentials.

Configure

Create a Dial number, set DIAL_API_KEY, DIAL_FROM_NUMBER_ID, and DIAL_WEBHOOK_SECRET, then point its webhook at /eve/v1/dial. Dial maps each phone-number pair to a thread and delivers SMS, MMS, iMessage, and voice transcripts. See the Chat SDK channel docs for eve session dispatch, state, streaming, and human-in-the-loop behavior.