Adding Channels to a Sender
Step-by-step guide to configure SMS, WhatsApp, Email, Telegram, Instagram, Messenger, and Voice channels on your sender
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:
| Channel | Requirements | Setup Time | Smart Routing | Fallback |
|---|---|---|---|---|
| SMS | Phone number with SMS capability | Instant | Yes | Yes |
| WABA connection + phone number | 5-10 min | Yes | Yes | |
| Verified domain (DKIM records) | 10-30 min | No | No | |
| Telegram | Bot token from BotFather | 5 min | No | No |
| Meta App + Business Account | 10-15 min | No | No | |
| Messenger | Facebook Page | 5 min | No | No |
| Voice | Phone number with voice capability | Instant | No | No |
Prerequisites
Before adding channels:
- API key or dashboard access - You need access to your Zavu Dashboard
- A sender profile - Create a sender first if you haven't already
- Channel-specific credentials - See each channel section below
Adding Channels via Dashboard
Navigate to Sender Settings
Go to Senders in your Zavu Dashboard and select the sender you want to configure.
Open the Channels Tab
Click the Channels tab to view all available messaging channels and their current status.
Add a Channel
Click the Add button next to the channel you want to enable. Each channel has a specific setup flow.
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
- Navigate to your sender's Channels tab
- The SMS channel is automatically enabled when you assign a phone number with SMS capability to your sender
- 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.ZAVUDEV_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.retrieve({ 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
Recommended. Use a phone number from your Zavu account. Best for dedicated business lines.
Register any phone number you own via SMS/call verification.
Setup via Dashboard
Open WhatsApp Setup
In your sender's Channels tab, click Add next to WhatsApp.
Choose Connection Method
Select whether to use a Zavu phone number (recommended) or your own phone number.
Complete Meta Business Signup
Follow the Meta embedded signup wizard to create or connect your WhatsApp Business Account.
Verify Phone Number
Enter your phone number and verify it. For Zavu numbers, select Call verification (not SMS).
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:
JSON{ "id": "sender_12345", "name": "Support", "phoneNumber": "+15551234567", "whatsapp": { "phoneNumberId": "123456789012345", "displayPhoneNumber": "+15551234567", "paymentStatus": { "setupStatus": "COMPLETE", "methodStatus": "VALID", "canSendTemplates": true } } }
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
Navigate to Email Domains
Go to Email Domains in your dashboard and click Add Domain.
Enter Your Domain
Enter your domain (e.g.,
yourcompany.com).Add DNS Records
Add the DKIM records provided to your domain's DNS:
Codeselector1._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.devWait for Verification
Zavu checks DNS records every 5 minutes. Status will change to Verified once complete.
Assign to Sender
In your sender's Channels tab, enable email and select your verified domain.
Email Configuration
Configure your email sender identity:
| Setting | Example | Description |
|---|---|---|
| From Address | noreply@yourcompany.com | The address emails are sent from |
| Reply-To | support@yourcompany.com | Where 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
- Telegram account
- Bot token from @BotFather
Create a Telegram Bot
Open BotFather
Open Telegram and search for @BotFather.
Create New Bot
Send
/newbotand follow the prompts to name your bot.Save Bot Token
BotFather provides a token like:
Code123456789:ABCdefGHIjklMNOpqrsTUVwxyz
Setup via Dashboard
- Go to your sender's Channels tab
- Click Add next to Telegram
- Paste your bot token
- Click Verify to confirm the bot is valid
- 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.retrieve({ 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",
});
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
Open Instagram Setup
In your sender's Channels tab, click Add next to Instagram.
Connect Meta App
Follow the wizard to connect your Meta App and Instagram Business Account.
Grant Permissions
Authorize the required Instagram messaging permissions.
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",
});
Messenger Channel
Messenger lets your sender receive and reply to Facebook Page conversations — including Facebook Marketplace chats — by connecting a Facebook Page.
Requirements
- A Facebook Page (admin access)
- Meta account login during setup
Setup via Dashboard
Open Messenger Setup
In your sender's Channels tab, click Add next to Messenger.
Connect with Meta
Log in with the Facebook account that manages your Page and grant the Page messaging permissions.
Select Facebook Page
Choose which Facebook Page to connect. Webhooks are subscribed automatically.
Sending Messenger Messages
await zavu.messages.send({
to: "24025631120151183", // Messenger user ID (PSID)
text: "Thanks for your message!",
channel: "messenger",
});
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
Send short text-to-speech messages to recipients. Your text is converted to natural-sounding speech.
Receive voicemails that are automatically transcribed and appear in your inbox.
Setup via Dashboard
Navigate to Voice Setup
In your sender's Channels tab, click Add next to Voice.
Verify Phone Number
Ensure your assigned phone number has voice capability enabled.
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",
});
Receiving Voicemails
When someone calls your Zavu number:
- The caller hears your voicemail greeting
- They leave a voice message
- The message is automatically transcribed
- It appears in your inbox with both audio and transcription
Configure webhooks to receive message.inbound events with channel: "voice".
Verifying Channel Status
Check via Dashboard
Navigate to your sender's Channels tab to see the status of each channel:
| Status | Meaning |
|---|---|
| Active | Channel is properly configured and ready |
| Pending | Setup in progress or awaiting verification |
| Error | Configuration issue - check details |
| Not Configured | Channel has not been set up |
Check via API
const sender = await zavu.senders.retrieve({ 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
Configure both SMS and WhatsApp to enable automatic fallback when one channel fails.
Let Zavu select the optimal channel to reduce costs by up to 80%.
Configure webhooks to receive inbound messages and delivery status updates.
Test each channel with a single message before sending at scale.
Troubleshooting
SMS Issues
| Issue | Solution |
|---|---|
| SMS not sending | Verify phone number has SMS capability |
| Messages failing | Check 10DLC registration for US numbers |
WhatsApp Issues
| Issue | Solution |
|---|---|
| Verification code not appearing | Select Call verification for Zavu numbers |
| Meta signup fails | Ensure Facebook Business account has proper permissions |
| Can't send messages | Check if 24-hour window is open or use templates |
Email Issues
| Issue | Solution |
|---|---|
| Domain not verifying | Check DNS records are correctly configured |
| Emails going to spam | Verify DKIM records are propagated |
| Bounces | Verify recipient email addresses are valid |
Telegram Issues
| Issue | Solution |
|---|---|
| Bot token invalid | Regenerate token via BotFather using /token |
| Messages not arriving | Verify webhook is registered (automatic on save) |
| Can't message user | Users must initiate contact first |
Instagram Issues
| Issue | Solution |
|---|---|
| Connection failed | Verify Instagram account is a Business Account |
| Messages failing | Check 24-hour messaging window |
| Permission errors | Re-authorize Meta App permissions |
Voice Issues
| Issue | Solution |
|---|---|
| Voice not available | Verify phone number has voice capability |
| Message not delivered | Check recipient answered the call |
| No transcription | Voicemail may have been too short or unclear |