Skip to main content
Channels are the communication pathways your sender uses to deliver messages. Each channel has different capabilities, requirements, and use cases. This guide walks you through adding and configuring each channel.

Overview

A sender can have multiple channels configured, enabling features like smart routing and automatic fallback. Here’s a quick reference:
ChannelRequirementsSetup TimeSmart RoutingFallback
SMSPhone number with SMS capabilityInstantYesYes
WhatsAppWABA connection + phone number5-10 minYesYes
EmailVerified domain (DKIM records)10-30 minNoNo
TelegramBot token from BotFather5 minNoNo
InstagramMeta App + Business Account10-15 minNoNo
VoicePhone number with voice capabilityInstantNoNo
SMS and WhatsApp participate in smart routing and automatic fallback. Email, Telegram, Instagram, and Voice are standalone channels that must be explicitly selected.

Prerequisites

Before adding channels:
  1. API key or dashboard access - You need access to your Zavu Dashboard
  2. A sender profile - Create a sender first if you haven’t already
  3. Channel-specific credentials - See each channel section below

Adding Channels via Dashboard

1

Navigate to Sender Settings

Go to Senders in your Zavu Dashboard and select the sender you want to configure.
2

Open the Channels Tab

Click the Channels tab to view all available messaging channels and their current status.
3

Add a Channel

Click the Add button next to the channel you want to enable. Each channel has a specific setup flow.
4

Complete Configuration

Follow the channel-specific setup wizard to complete the configuration.

SMS Channel

SMS is the most straightforward channel to configure. It uses your sender’s phone number to send text messages.

Requirements

  • Phone number with SMS capability (purchased through Zavu or your own)
  • Phone number must be assigned to the sender

Setup via Dashboard

  1. Navigate to your sender’s Channels tab
  2. The SMS channel is automatically enabled when you assign a phone number with SMS capability to your sender
  3. Verify the status shows Active

Setup via API

When creating or updating a sender with a phone number that has SMS capability, SMS is automatically enabled:
import Zavu from "@zavudev/sdk";

const zavu = new Zavu({ apiKey: process.env.ZAVU_API_KEY });

const sender = await zavu.senders.create({
  name: "Support Line",
  phoneNumber: "+15551234567", // Phone with SMS capability
  setAsDefault: true,
});

console.log("Sender created:", sender.id);

Verifying SMS Status

Check if SMS is properly configured:
const sender = await zavu.senders.get({ senderId: "sender_12345" });
console.log("Phone number:", sender.phoneNumber);
// SMS is active if the phone number has SMS capability

WhatsApp Channel

WhatsApp requires connecting a WhatsApp Business Account (WABA) through Meta’s Business Platform.

Requirements

  • Phone number (Zavu number recommended, or your own)
  • Meta Business account
  • WhatsApp Business Account (created during setup)

Connection Options

Zavu Phone Number

Recommended. Use a phone number from your Zavu account. Best for dedicated business lines.

Own Phone Number

Register any phone number you own via SMS/call verification.

Setup via Dashboard

1

Open WhatsApp Setup

In your sender’s Channels tab, click Add next to WhatsApp.
2

Choose Connection Method

Select whether to use a Zavu phone number (recommended) or your own phone number.
3

Complete Meta Business Signup

Follow the Meta embedded signup wizard to create or connect your WhatsApp Business Account.
4

Verify Phone Number

Enter your phone number and verify it. For Zavu numbers, select Call verification (not SMS).
Zavu phone numbers receive verification codes via voice call. Always select Call verification for Zavu numbers.
5

Enter Verification Code

Enter the verification code displayed in the dashboard to complete setup.

After WhatsApp Connection

Once connected, your sender response will include WhatsApp details:
{
  "id": "sender_12345",
  "name": "Support",
  "phoneNumber": "+15551234567",
  "whatsapp": {
    "phoneNumberId": "123456789012345",
    "displayPhoneNumber": "+15551234567",
    "paymentStatus": {
      "setupStatus": "COMPLETE",
      "methodStatus": "VALID",
      "canSendTemplates": true
    }
  }
}
After connecting WhatsApp, configure your WhatsApp Business Profile and create message templates for outbound conversations.

Email Channel

Email requires domain verification to ensure deliverability and prevent spam filtering.

Requirements

  • A domain you control (e.g., yourcompany.com)
  • Access to DNS settings for the domain
  • Verification typically takes 10-30 minutes

Setup via Dashboard

1

Navigate to Email Domains

Go to Email Domains in your dashboard and click Add Domain.
2

Enter Your Domain

Enter your domain (e.g., yourcompany.com).
3

Add DNS Records

Add the DKIM records provided to your domain’s DNS:
selector1._domainkey.yourcompany.com  CNAME  selector1.dkim.zavu.dev
selector2._domainkey.yourcompany.com  CNAME  selector2.dkim.zavu.dev
selector3._domainkey.yourcompany.com  CNAME  selector3.dkim.zavu.dev
4

Wait for Verification

Zavu checks DNS records every 5 minutes. Status will change to Verified once complete.
5

Assign to Sender

In your sender’s Channels tab, enable email and select your verified domain.
DNS propagation typically takes a few minutes but can take up to 48 hours in some cases.

Email Configuration

Configure your email sender identity:
SettingExampleDescription
From Addressnoreply@yourcompany.comThe address emails are sent from
Reply-Tosupport@yourcompany.comWhere replies are directed

Receiving Inbound Email

To receive inbound emails, enable email receiving on your sender:
await zavu.senders.update({
  senderId: "sender_12345",
  emailReceivingEnabled: true,
});

Telegram Channel

Telegram requires creating a bot through BotFather and connecting it to your sender.

Requirements

Create a Telegram Bot

1

Open BotFather

Open Telegram and search for @BotFather.
2

Create New Bot

Send /newbot and follow the prompts to name your bot.
3

Save Bot Token

BotFather provides a token like:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz
Keep your bot token secret. Anyone with this token can control your bot.

Setup via Dashboard

  1. Go to your sender’s Channels tab
  2. Click Add next to Telegram
  3. Paste your bot token
  4. Click Verify to confirm the bot is valid
  5. Click Save to complete setup
Zavu automatically registers the webhook with Telegram when you save.

Setup via API

// Telegram configuration is done via the dashboard
// The sender will include telegram details after setup:
const sender = await zavu.senders.get({ senderId: "sender_12345" });

// Send a Telegram message (requires user to message bot first)
await zavu.messages.send({
  to: "123456789", // Chat ID from inbound message
  text: "Thanks for reaching out!",
  channel: "telegram",
});
Telegram users must initiate contact with your bot first. You cannot message users who haven’t started a conversation.

Instagram Channel

Instagram messaging requires connecting through Meta’s Business Platform with your Instagram Business Account.

Requirements

  • Instagram Business Account (not personal)
  • Meta Business account
  • Meta App with Instagram Messaging permissions

Setup via Dashboard

1

Open Instagram Setup

In your sender’s Channels tab, click Add next to Instagram.
2

Connect Meta App

Follow the wizard to connect your Meta App and Instagram Business Account.
3

Grant Permissions

Authorize the required Instagram messaging permissions.
4

Select Instagram Account

Choose which Instagram Business Account to connect.

Sending Instagram Messages

await zavu.messages.send({
  to: "17841400000000000", // Instagram-scoped User ID
  text: "Thanks for your message!",
  channel: "instagram",
});
Instagram has a 24-hour messaging window similar to WhatsApp. You can only message users who have contacted your Instagram account within the last 24 hours.

Voice Channel

Voice enables sending text-to-speech messages and receiving voicemails from callers.

Requirements

  • Phone number with voice capability (purchased through Zavu)
  • Phone number must be assigned to the sender

Capabilities

Voice Messages

Send short text-to-speech messages to recipients. Your text is converted to natural-sounding speech.

Voicemail

Receive voicemails that are automatically transcribed and appear in your inbox.

Setup via Dashboard

1

Navigate to Voice Setup

In your sender’s Channels tab, click Add next to Voice.
2

Verify Phone Number

Ensure your assigned phone number has voice capability enabled.
3

Configure Voicemail

Set up your voicemail greeting message that callers will hear.

Sending Voice Messages

Send text-to-speech messages to recipients. The text is converted to natural-sounding speech and delivered as a voice call.
await zavu.messages.send({
  to: "+56912345678",
  channel: "voice",
  text: "Your verification code is 1 2 3 4 5 6",
});
For verification codes, speak digits individually (“1 2 3 4 5 6”) rather than as a number for better clarity.

Receiving Voicemails

When someone calls your Zavu number:
  1. The caller hears your voicemail greeting
  2. They leave a voice message
  3. The message is automatically transcribed
  4. It appears in your inbox with both audio and transcription
Configure webhooks to receive message.inbound events with channel: "voice".
Voicemails are automatically transcribed. You can access both the original audio recording and the text transcription in your inbox and via the API.

Verifying Channel Status

Check via Dashboard

Navigate to your sender’s Channels tab to see the status of each channel:
StatusMeaning
ActiveChannel is properly configured and ready
PendingSetup in progress or awaiting verification
ErrorConfiguration issue - check details
Not ConfiguredChannel has not been set up

Check via API

const sender = await zavu.senders.get({ senderId: "sender_12345" });

console.log("Sender ID:", sender.id);
console.log("Phone Number:", sender.phoneNumber);
console.log("WhatsApp:", sender.whatsapp ? "Connected" : "Not configured");
console.log("Email Receiving:", sender.emailReceivingEnabled);

Best Practices

Enable Multiple Channels

Configure both SMS and WhatsApp to enable automatic fallback when one channel fails.

Use Smart Routing

Let Zavu select the optimal channel to reduce costs by up to 80%.

Set Up Webhooks

Configure webhooks to receive inbound messages and delivery status updates.

Verify Before Sending

Test each channel with a single message before sending at scale.

Troubleshooting

SMS Issues

IssueSolution
SMS not sendingVerify phone number has SMS capability
Messages failingCheck 10DLC registration for US numbers

WhatsApp Issues

IssueSolution
Verification code not appearingSelect Call verification for Zavu numbers
Meta signup failsEnsure Facebook Business account has proper permissions
Can’t send messagesCheck if 24-hour window is open or use templates

Email Issues

IssueSolution
Domain not verifyingCheck DNS records are correctly configured
Emails going to spamVerify DKIM records are propagated
BouncesVerify recipient email addresses are valid

Telegram Issues

IssueSolution
Bot token invalidRegenerate token via BotFather using /token
Messages not arrivingVerify webhook is registered (automatic on save)
Can’t message userUsers must initiate contact first

Instagram Issues

IssueSolution
Connection failedVerify Instagram account is a Business Account
Messages failingCheck 24-hour messaging window
Permission errorsRe-authorize Meta App permissions

Voice Issues

IssueSolution
Voice not availableVerify phone number has voice capability
Message not deliveredCheck recipient answered the call
No transcriptionVoicemail may have been too short or unclear

Next Steps