Skip to main content

Channels

Channels connect Row-Bot to external messaging platforms: Telegram, WhatsApp, Discord, Slack, and SMS through Twilio. Use channels when you want to message Row-Bot outside the desktop app or send workflow results somewhere specific.

Each channel is an app in Settings › Apps, under the Communication category: Telegram, WhatsApp, Discord, Slack and Text messages (SMS). On the app's page the channel is a Built in way to connect. Slack's page also lists Slack's own hosted server, which lets Row-Bot work in your Slack workspace rather than talk to you through it. A package can bring a channel too; it is listed with its package.

Setup Workflow​

  1. Open Settings › Apps and choose the channel's app, or type "connect telegram" (or the channel you want) in the command palette.
  2. Choose Set up (or Open once it is set up). The channel's own settings open, showing only that channel.
  3. Follow Connect channel. Each step says what to do where, links to the platform's page (such as Open @BotFather for Telegram), and has its field in place: paste a value and choose Save for it.
  4. Choose Start channel. A channel that needs a public address, such as SMS, opens your tunnel by itself; its setup is the public link in Settings › Devices & remote access. WhatsApp's first start installs its bridge, then shows a code to scan with your phone.
  5. Pair or approve your account before trusting private messages: Get pairing code for channel, then send the code to the bot from the account you want to approve.
  6. Send a test message to me to check it works with a low-risk message.

Controls​

  • Save and Clear beside each field store or remove that value. Saved values are never shown again.
  • Start channel begins the channel; it starts again with Row-Bot until you stop it. Stop channel shuts it down.
  • Reachable at shows the public address a channel uses, with Copy.
  • Get pairing code for channel shows a code that approves the account that sends it; it expires after one hour. Some channels approve people their own way and say so.
  • Paired accounts lists who is approved, with Revoke for each.
  • Reset session (WhatsApp) unlinks your phone and shows a new code to scan.
  • More settings holds the channel's other fields.
  • /reasoning shows or changes the reasoning choice for that channel conversation's active model. Run it without an argument to see the exact valid choices.
  • /new starts a fresh conversation; see Conversations.

Conversations​

Every chat with Row-Bot on a channel is also a conversation in Row-Bot, with its history, tools, approvals and goal, so you can open it in the app and carry on there.

  • Slack channels. Each Slack thread is its own conversation. Mention @Row-Bot in a channel to start one: Row-Bot replies in a thread under your message, and that thread continues the same conversation. Mention Row-Bot again in the thread to continue. To continue with a plain reply instead, your Slack app also needs the message.channels event and the channels:history scope (message.groups and groups:history for private channels). They are optional: with them, Slack sends Row-Bot every message in the channels it is in, and Row-Bot ignores all but replies in its own threads from accounts you approved.
  • Discord servers. Mention @Row-Bot in a channel to start a conversation. Row-Bot opens a Discord thread from your message and replies there, and replies in that thread continue the conversation without a mention. Invite the bot with the Create Public Threads and Send Messages in Threads permissions. Without them, or in a channel that has no threads, the channel keeps one conversation.
  • Direct messages, Telegram, WhatsApp and SMS. Each direct message or chat keeps one conversation going.
  • Starting fresh. Send /new to start a new conversation, on any channel (Telegram also accepts /newthread). In a Slack or Discord thread, the thread continues in the new conversation. Earlier conversations stay in Row-Bot. An approval the earlier conversation was waiting for no longer holds up the chat; answer it in Row-Bot.
  • Names. A Slack thread's conversation is named from its first message and a Discord thread's from the thread's name. A name you give a conversation in Row-Bot is kept.
  • Several attachments. Send several photos, voice notes or files in one message, or as an album, and Row-Bot answers them together in one reply. It reads each photo with your Vision model and transcribes each voice note first. On WhatsApp, Row-Bot waits about a second for the rest of an album.
  • Files from Row-Bot. Ask Row-Bot to send you a file on Telegram, Discord, Slack or WhatsApp and it sends it to your own chat there, or to the chat the conversation came from, after asking (see Sending Files).
  • A stuck conversation. If a conversation gets stuck on a tool call that can't finish, Row-Bot starts a fresh one and asks you to resend your message.

Chats you already had keep their conversation until you send /new. Slack and Discord channels used to share one long conversation per channel. That conversation stays in Row-Bot, and new mentions start their own; a Discord channel without thread permissions carries on in it.

Safety​

Messages sent through a channel leave the local app. Do not enable a channel until you understand who can message it, what Row-Bot can send back, and whether workflows may deliver results there.

When work starts from a channel and a child agent asks for approval, Row-Bot sends the approval back to that parent channel conversation when the channel supports approval messages. The same approval stays visible in the parent conversation, the sidebar's attention indicator and Overview's Needs you, and an answer in any of them resolves it everywhere.

Troubleshooting​

  • If Telegram encounters one transient network failure during initialization, Row-Bot cleans up the partial runtime and retries once. Persistent network failures remain stopped with an actionable diagnostic; invalid bot tokens are not retried.
  • If Telegram starts but its command menu cannot be registered, polling remains available and the menu failure is logged as non-fatal.
  • If a channel cannot start, check its fields and the public link. Automatic tunnel startup runs outside the UI event loop, so a slow tunnel helper should report status without freezing app startup.
  • If a channel stopped, Monitor offers Restart channel for it.
  • If inbound messages fail, verify webhook URLs and platform permissions.
  • If a plain reply in a Slack thread gets no answer, mention Row-Bot in the thread, or add the optional message events described in Conversations.
  • If Row-Bot answers a Discord mention in the channel instead of opening a thread, give the bot the Create Public Threads and Send Messages in Threads permissions, then stop and start the channel.
  • If the wrong person has access, revoke them from Paired accounts.