RylvoRylvo

Rylvo Deploy: Deploy AI Bots Across 11 Channels Including WhatsApp, Slack, Telegram, Discord, and SMS

Rylvo TeamMay 17, 202696 min read

Rylvo Deploy: Deploy AI Bots Across 11 Channels Including WhatsApp, Slack, Telegram, Discord, and SMS

Building a great AI bot is only half the battle. The other half is getting it in front of users where they already are. Customers do not want to visit yet another website or learn a new interface. They want to message your bot on WhatsApp while commuting, mention it in Slack during a work session, text it via SMS for quick questions, or chat with it through a widget while browsing your site.

Most AI platforms force you to choose one channel or cobble together integrations with third-party tools. Each new channel means a new webhook server, a new authentication scheme, a new message format, a new rate limit to worry about, and a new monitoring surface to maintain. By the time you have connected three channels, you have built a fragile patchwork of custom integrations that your team dreads touching.

Rylvo Deploy solves this by providing a unified deployment layer for 11 distinct channels. From a single dashboard at /dashboard/deploy, you can connect bots to Website Widget, WhatsApp, Slack, Telegram, Discord, SMS (Twilio), Microsoft Teams, Facebook Messenger, Instagram DM, Email Inbound, and Custom webhooks. Each channel gets its own configuration drawer with setup guides, health monitoring, consent controls, and per-platform signature verification — all backed by a shared runtime that ensures your bot behaves consistently no matter where the conversation starts.

In this guide, we will explore every aspect of the Deploy system: the 11 supported channels, the unified dashboard, the security model, the shared bot-turn runtime, the health monitoring system, and how to get your bot live on any channel in minutes.


Why Multi-Channel Deployment Matters

Users have channel preferences shaped by context. A customer troubleshooting a product issue might prefer a WhatsApp conversation they can continue during their commute. A team member asking about company policy might use Slack because that is where they already work. A website visitor with a pre-sales question might use an embedded widget because they are already on your site.

Single-channel bots force users to adapt to the bot's limitations. Multi-channel bots meet users where they are. The same bot, with the same prompts, guardrails, knowledge base, and personality, can serve users across every major messaging platform without duplicating configuration or maintaining separate bot instances.

Rylvo Deploy makes this possible by treating channels as configuration rather than infrastructure. You build the bot once. You deploy it everywhere.


11 Channels, One Dashboard

Rylvo Deploy supports 11 deployment channels, each with native webhook integration, platform-specific message formatting, and health monitoring.

Website Widget (Stable)

The simplest deployment path. Add a single script tag to any website and a chat widget appears as a floating bubble. The widget supports custom positioning, accent colors, greeting messages, and API key authentication. It communicates via fetch long-polling and is ideal for support, sales, and onboarding flows on any website or landing page.

WhatsApp (Stable)

Connect your WhatsApp Business API number via Meta Cloud API. Receive and reply to WhatsApp messages with full webhook verification using HMAC-SHA256 signatures. Ideal for customer support in regions where WhatsApp dominates messaging. The identity format is whatsapp:<phone_number>, preserving conversation continuity across sessions.

Slack (Stable)

Respond to @mentions and direct messages in connected Slack workspaces. Thread context is preserved via Slack's thread timestamp as the session ID. Bot echo messages are automatically ignored to prevent loops. Requires Slack signing secret and bot token. Perfect for internal team assistants and IT helpdesks.

Telegram (Stable)

The simplest third-party setup. Create a bot with @BotFather, paste the token into Rylvo, and set a webhook secret for verification. Optional allowed chat ID whitelist restricts which users can interact with the bot. Telegram's free API and global reach make it ideal for community bots and public-facing assistants.

Discord (Stable)

Uses Discord's Interactions Endpoint for slash commands and direct messages. Ed25519 signature verification ensures request authenticity. Supports PING/PONG, APPLICATION_COMMAND, and deferred responses for slow-turn conversations. Ideal for gaming communities, developer support, and fan engagement.

SMS via Twilio (Stable)

Two-way SMS through any Twilio phone number. Inbound messages arrive via Twilio webhooks with signature verification. Outbound replies use TwiML XML responses. Messages are truncated to 1600 characters automatically. Perfect for appointment reminders, delivery notifications, and field service support.

Microsoft Teams (Beta)

Microsoft Bot Framework integration for Teams chats. Uses Bot Framework v3 Activity protocol with OAuth token fetching from Microsoft identity platform. JWT verification against Microsoft's OpenID JWKS ensures security. Reply text is truncated to 25,000 characters. Ideal for enterprise internal assistants.

Facebook Messenger (Beta)

Messenger Platform integration via Meta Graph API. Shares infrastructure with WhatsApp. Requires Page Access Token, Page ID, verify token, and app secret. Webhooks subscribe to messages events. Ideal for brands with active Facebook presence.

Instagram DM (Beta)

Replies to Instagram Direct Messages via Meta Graph API. Uses the same Facebook App infrastructure as Messenger. Requires an Instagram Business account, IG User ID, and Page Access Token. Ideal for influencer brands, retail, and visual product discovery.

Email Inbound (Beta)

Routes emails from a dedicated address into bot conversations via Resend Inbound or SendGrid Parse. Routing is matched by To address against the configured inbox address. Replies are sent via Resend with configurable from address, from name, and subject template. Ideal for support ticket automation and newsletter interaction.

Custom Integration (Stable)

For platforms not natively supported, the Custom channel provides a generic webhook endpoint at /api/channels/custom. Send inbound messages with an Authorization Bearer header matching your inbound secret. The route returns the bot response as JSON for your downstream system to handle. This is the escape hatch for proprietary platforms, internal tools, and future messaging apps.


The Deploy Dashboard: Central Command

The Deploy dashboard at /dashboard/deploy is the single pane of glass for managing all your bot channels.

Stats Overview

At the top, four stat cards show your deployment health at a glance: total channels configured, enabled channels, channels with errors, and total inbound messages received. This gives operators an immediate sense of deployment scale and health.

Filter Bar

Filter channels by bot (show all bots or isolate one), by channel type (WhatsApp, Slack, etc.), and by status (all, enabled, disabled, or error). The status filter uses pill buttons for one-click filtering.

Channel Grid

Each channel appears as a card showing the platform icon in brand colors, channel label, bot name, setup status badge (needs setup, verified, live, or deprecated), a health status indicator, and inbound/outbound message counts. Cards are clickable to open the configuration drawer.

Empty State

If no channels exist yet, the empty state shows a platform preview grid with all 11 channel icons, a clear call-to-action to add your first channel, and a link to create a bot first if needed.


Configuration Drawer: Three Tabs for Complete Control

Clicking any channel card opens a slide-out drawer with three tabs.

Setup Tab

The Setup tab contains platform-specific configuration fields, the webhook URL to paste into the platform's developer console, a Test Connection button that pings the platform API and updates the setup status, and per-platform instructions. For example, the WhatsApp setup shows fields for phone number ID, verify token, and access token. The widget setup shows the embed script snippet ready to copy.

Configure Tab

The Configure tab manages channel behavior: enabled toggle, explicit consent requirement, default consent scope (short term only, session only, persistent, or none), and channel-specific settings like allowed origins for widgets or allowed chat IDs for Telegram.

Health Tab

The Health tab displays real-time usage statistics: inbound and outbound message counts, last inbound and outbound timestamps, error count, consecutive errors, and a recent events feed showing the last 10 inbound, outbound, or error events with timestamps. This makes it easy to spot channels that are failing or not receiving traffic.


Security: Signature Verification and Secret Management

Every channel in Rylvo Deploy implements platform-specific signature verification to ensure incoming webhooks are authentic and untampered.

WhatsApp verifies the X-Hub-Signature-256 header using HMAC-SHA256 against the app secret. Slack verifies X-Slack-Signature using HMAC-SHA256 plus timestamp validation to prevent replay attacks. Telegram verifies the X-Telegram-Bot-Api-Secret-Token header against the per-channel webhook secret. Discord verifies Ed25519 signatures using the application's public key. Twilio SMS verifies X-Twilio-Signature using HMAC-SHA1 against the full URL and sorted form parameters. Email Inbound verifies the Authorization Bearer header against the per-channel inbound secret. Teams validates JWT tokens from Microsoft's OpenID endpoint with full audience and issuer checks. Widget restricts origins to an allow-list configured per channel.

All environment variable secrets support per-channel prefixes based on the first 8 characters of the Firestore config document ID. This enables multi-tenant deployments where different channels use different tokens without sharing a single secret. If a prefixed variable is not found, the system falls back to the default variable name.


Consent and Privacy Controls

Every channel except Website Widget requires explicit end-user consent by default. When a new user interacts with the bot, they start with a consent scope of none and must explicitly opt in before any personalization or persistent memory is applied.

Consent scopes include: short term only (memory lasts for the current conversation), session only (memory persists across turns in the same session), persistent (memory persists across sessions), and none (no memory or personalization).

The widget can show a privacy panel when configured, and all end-user identities are normalized to the format {channel}:{platformId} and stored in organization-scoped conversation documents. This ensures privacy compliance and gives users clear control over their data.


Shared Runtime: One Bot, Every Channel

All 11 channels funnel into a single shared server-side turn executor. When a webhook receives a message, it looks up the matching channel configuration, extracts the user's message, normalizes the identity, and calls executeBotTurn.

The turn executor loads the bot configuration, prompts, guardrails, connectors, and knowledge base connections. It injects self-evolution rules, episodic memory recall, and user dialectic models if enabled. It runs the LLM via the BYOK resolver (OpenRouter or direct provider), applies output guardrails, writes a chat trace for observability, and returns the response.

The webhook route then formats the response using the platform's native API and sends it back. This shared runtime means your bot behaves consistently across all channels. The same prompts, the same guardrails, the same knowledge base, the same personality — everywhere.


Health Monitoring and Idempotency

Every channel maintains a health sub-document that tracks: status (ok, error, or idle), last inbound and outbound timestamps, last error timestamp and message, inbound and outbound message counts, consecutive errors since the last success, and a recent events ring buffer with the last 10 events.

After three consecutive errors, a channel's health status flips from ok to error, surfacing the issue in the dashboard. Operators can investigate using the recent events feed, fix the configuration, and test the connection to restore health.

Webhook idempotency is implemented across all channels. A 24-hour message fingerprint is stored in a Firestore dedup subcollection for every incoming webhook. If a platform retries a message due to a timeout or network issue, the duplicate is detected and silently discarded. This prevents double-processing, double-billing, and confusing duplicate replies to users.


Widget Embed: Zero-Platform Setup

The Website Widget requires no platform developer account, no webhook configuration, and no third-party console. Simply create an API key for your bot, copy the widget snippet from the channel drawer, and paste it before the closing body tag on any website.

The snippet configures the widget position, accent color, greeting message, API key, and bot ID. The widget loads from a static route, opens a session, and renders inline. It is the fastest path from bot configuration to live user interaction.


Setup Guides: Step-by-Step for Every Platform

Rylvo provides detailed setup guides for every channel at /dashboard/deploy/setup-guides. Each guide includes: platform-specific prerequisites, step-by-step instructions with the exact fields to fill, the webhook URL to paste into the platform console, and a reminder to verify with Test Connection after setup.

For example, the Telegram guide walks you through creating a bot with @BotFather, adding the token to Rylvo, setting a webhook secret, running the setWebhook curl command, and verifying with Test Connection. The WhatsApp guide covers Meta Business account setup, phone number ID, verify token, and webhook configuration in the Meta dashboard.


Comparison: Rylvo Deploy vs. Building Channel Integrations Yourself

CapabilityDIY IntegrationRylvo Deploy
Channels supportedOne at a time11 channels from one dashboard
Signature verificationBuild per platformImplemented for all 11 channels
Webhook routingCustom server per channelUnified /api/channels/{slug} routes
Bot runtimeSeparate logic per channelShared executeBotTurn across all channels
Health monitoringManual logs or nonePer-channel health with event feed
IdempotencyNot implemented24h message fingerprint dedup
Consent controlsNot implementedPer-channel explicit consent with scopes
Secret managementEnv vars or hardcodedPer-channel prefixed env vars + encrypted storage
Widget embedCustom developmentSingle script tag
Custom integrationsFull custom buildGeneric webhook with Bearer auth
Setup guidesPlatform docs onlyStep-by-step Rylvo guides for all channels
Channel status trackingManualneeds_setup → verified → live → deprecated

Getting Started

Step 1: Open Deploy

Navigate to /dashboard/deploy. The stats cards show your current deployment status.

Step 2: Add Your First Channel

Click Add channel. The platform picker modal shows all 11 channels with descriptions and status badges. Pick a bot and a platform.

Step 3: Configure the Channel

The configuration drawer opens with the Setup tab. Fill in the platform-specific fields, copy the webhook URL, and paste it into the platform's developer console. For the widget, simply copy the embed script.

Step 4: Test the Connection

Click Test Connection in the drawer. Rylvo pings the platform API and verifies the configuration. If successful, the setup status flips to verified.

Step 5: Go Live

Toggle the channel to enabled. Your bot is now live and receiving messages on that channel.

Step 6: Monitor Health

Check the Health tab for inbound and outbound message counts. If the status shows errors, review the recent events feed, fix the configuration, and test again.


FAQ

What is Rylvo Deploy? A unified deployment layer that connects AI bots to 11 messaging channels from a single dashboard, with per-platform security, health monitoring, and consent controls.

Which channels are supported? Website Widget, WhatsApp, Slack, Telegram, Discord, SMS (Twilio), Microsoft Teams, Facebook Messenger, Instagram DM, Email Inbound, and Custom webhooks.

Which channels are stable? Website Widget, WhatsApp, Slack, Telegram, Discord, SMS (Twilio), and Custom are stable. Teams, Messenger, Instagram, and Email Inbound are in beta.

How does security work? Each channel implements platform-specific signature verification: HMAC-SHA256 for WhatsApp and Slack, Ed25519 for Discord, JWT for Teams, Bearer tokens for Email, origin allow-lists for Widget.

How do I add a channel? Click Add channel in the Deploy dashboard, pick a bot and platform, fill the config in the drawer, paste the webhook URL into the platform console, and test the connection.

How fast can I deploy a widget? Under two minutes. Create an API key, copy the widget snippet, paste it on your site. No platform developer account needed.

What is the shared runtime? All channels funnel into a single executeBotTurn function that loads the bot config, runs the LLM, applies guardrails, and returns the response. Consistent behavior across all channels.

How does health monitoring work? Each channel tracks inbound/outbound counts, error counts, consecutive errors, and recent events. After three consecutive errors, the status flips to error.

What happens if a platform retries a webhook? Rylvo stores a 24-hour message fingerprint for every incoming webhook. Duplicates are silently discarded to prevent double-processing.

Can I use my own integration? Yes. The Custom channel provides a generic webhook endpoint at /api/channels/custom with Bearer authentication. Send any JSON payload and receive the bot response.

How does consent work? All non-widget channels require explicit consent by default. Users must opt in before personalization. Consent scopes include none, short term only, session only, and persistent.


Ready to Deploy Your Bot Everywhere?

Rylvo Deploy turns bot deployment from an engineering project into a configuration task. Build your bot once. Connect it to WhatsApp for customers in India. Connect it to Slack for your internal team. Connect it to Telegram for your global community. Connect it to SMS for field service. Connect it to a widget on your marketing site. All from one dashboard. All using the same prompts, guardrails, and knowledge base. All monitored from one health view.

Open Deploy and add your first channel today.

One bot. Eleven channels. Infinite reach.

R

Rylvo Team

Rylvo Team

More Articles