A support team enables Breeze Customer Agent on web chat in week one, declares victory, and three months later notices Instagram DMs piling up in a separate inbox nobody triages. Customers do not pick channels strategically; they reply where the brand reached them last. A single-channel agent rollout misses the moment that matters. Nine-channel support is real but requires deliberate setup per channel.
Channels at a glance
Native:
Chat (web widget)
Email (connected inbox)
Messenger (Facebook page)
Custom Channels API:
SMS (Twilio, Bandwidth, MessageBird providers)
WhatsApp (Meta Business API or BSP)
Instagram (Meta Graph API)
Telegram (Bot API token)
LINE (LINE Messaging API)
Slack (Workspace app + bot user)
The native three turn on with a checkbox. The custom six need provider accounts, BSP approval where applicable, and webhook plumbing.
Channel activation flow
1. Provision provider account (Twilio, Meta, LINE, etc.)
2. Configure inbound webhook to HubSpot Custom Channels endpoint
3. Map provider events -> HubSpot conversation events
4. Map HubSpot send actions -> provider outbound API
5. Test with a real customer-equivalent account
6. Enable Breeze Customer Agent on the channel in agent settings
Save the webhook secret per channel and rotate when staff leaves who had access.
Context continuity across channels
A customer who starts on web chat and replies the next day on WhatsApp should not start a new conversation. HubSpot threads conversations by contact identity, not channel session. Verify your channel adapters set the contact identity correctly:
Identity resolution priority:
1. Verified email (web chat with sign-in)
2. Verified phone (SMS, WhatsApp)
3. Channel-specific user id with previous CRM link
4. New contact created with channel handle
Misconfigured identity creates duplicate contacts and the agent loses context.
Channel-specific tuning
Each channel has conventions. Train the agent prompt per channel:
SMS: plaintext, <160 chars per message, links shortened
WhatsApp: markdown limited, 24-hour window for free-form replies,
template messages outside window
Instagram: emojis OK, shorter responses, image attachments common
Telegram: markdown supported, longer replies acceptable
LINE: sticker-friendly, formal tone in JP markets
Slack: threading expected, mentions for handoff
Email: full formatting, signature, longer-form responses
A reply tuned for email feels stiff on SMS and impersonal on Instagram.
Handoff to human carries context
When the agent escalates, the human receives the full thread plus extracted facts:
// Handoff payload to human queue
{
conversationId: "conv_123",
channel: "whatsapp",
customer: { name: "Lina", phone: "+44...", email: "..." },
intent: "billing.refund",
bot_attempts: 2,
bot_summary: "Customer disputes Mar 12 charge. Verified card ending 4421.",
next_action: "issue_refund_or_explain"
}
The human opens with context, not “let me read your conversation.”
Measurement per channel
Deflection rate
First-response time
Handle time (agent + human combined)
Handoff rate
CSAT post-resolution
Cost per resolution (under outcome-based pricing)
Compare across channels but expect different baselines. WhatsApp conversations skew higher complexity than SMS; Slack inbound is often technical. Set channel-specific thresholds rather than one global SLA.
Failure modes to monitor
Provider outages, BSP suspensions, template approvals expiring, and webhook signature mismatches each break a single channel silently. Build a synthetic ping per channel that runs every 30 minutes and pages on failure.
What to do this week
List which channels your customers actually use, prioritize the top three for full agent rollout including identity resolution and per-channel tuning, and configure synthetic monitoring before declaring nine-channel coverage.