Skip to main content

Channel Messaging

OrcBot provides unified messaging across Telegram, WhatsApp, Discord, Slack, email, and a web gateway. All skills auto-detect the source channel and handle delivery seamlessly.

Core Messaging Skills

send_telegram

Send a message to a Telegram user or group. Parameters:
string | number
required
Numeric Telegram chat ID (e.g., 123456789). NOT the username.
string
required
Message text. Supports markdown formatting.
Example:
Auto-Resolution: If you pass a placeholder ID like 12345 or a name, the skill auto-fills from action metadata:

send_whatsapp

Send a message to a WhatsApp contact or group. Parameters:
string
required
WhatsApp JID (e.g., 1234567890@s.whatsapp.net for contacts, 123456@g.us for groups)
string
required
Message text
Example:

send_discord

Send a message to a Discord channel. Parameters:
string
required
Discord channel ID (17-20 digit snowflake)
string
required
Message text. Supports Discord markdown.
Example:

send_slack

Send a message to a Slack channel or DM. Parameters:
string
required
Slack channel ID (e.g., C01234567)
string
required
Message text. Supports Slack mrkdwn.
Example:

send_email

Send an email via configured SMTP. Parameters:
string
required
Recipient email address
string
Email subject. Defaults to β€œOrcBot response”.
string
required
Email body (plain text or HTML)
string
Message-ID of email being replied to (for threading)
string
Space-separated Message-IDs for threading
Example:
Email Threading: Use inReplyTo and references for proper email threading:

Rich Interactions

send_file

Send a file with auto-detection of channel. Parameters:
string
required
Recipient ID (WhatsApp JID, Telegram chatId, Discord channelId)
string
required
Absolute file path
string
Optional caption
string
Override channel: telegram, whatsapp, discord, gateway-chat
Channel Detection:
  1. Explicit channel parameter
  2. Action source metadata
  3. JID pattern detection:
    • @s.whatsapp.net or @g.us β†’ WhatsApp
    • 17-20 digit number β†’ Discord
    • Otherwise β†’ Telegram
Example:

send_voice_note

Convert text to speech and send as voice message. Parameters:
string
required
Recipient ID
string
required
Text to convert to speech (max 4096 chars)
string
Voice name. OpenAI: alloy, echo, fable, onyx, nova, shimmer. Google: achernar, alnilam, kore, etc.
Platform Differences:
  • WhatsApp/Telegram: Sent as native voice note (playable inline bubble)
  • Discord: Sent as audio file attachment (no native voice notes)
Example:

send_image

Generate AI image and send in one step. Parameters:
string
required
Recipient ID
string
required
Image generation prompt
string
Target channel override
string
default:"1024x1024"
Image size (1024x1024, 1024x1792, 1792x1024)
string
default:"medium"
Quality: standard, medium, hd
string
Optional caption
Example:
Always use send_image instead of generate_image + send_file. The compound skill prevents duplicates and provides atomic operations.

Telegram Rich Features

telegram_send_buttons

Send message with inline keyboard buttons. Parameters:
string | number
required
Telegram chat ID
string
required
Message text
array
required
2D array of button objects. Each button has text and callback_data or url.
Button Format:
Example:
Auto-coercion: If you pass a 1D array of button objects, the system auto-wraps each button in its own row:

telegram_send_poll

Create a native Telegram poll. Parameters:
string | number
required
Telegram chat ID
string
required
Poll question
array
required
Array of 2-10 option strings
boolean
default:"true"
Whether votes are anonymous
boolean
default:"false"
Allow multiple selections
Example:

telegram_edit_message

Edit a previously sent message. Parameters:
string | number
required
Telegram chat ID
number
required
Message ID from send_telegram or telegram_send_buttons
string
required
Updated message text
Example:
Use Case: Live progress updates without spam:

telegram_react

React to a message with an emoji. Parameters:
string | number
required
Telegram chat ID
number
required
Message ID to react to
string
default:"πŸ‘"
Emoji to react with
Example:
Graceful Degradation: Telegram restricts bots from setting native reactions in most chat types. The skill automatically falls back to replying with the emoji:
Native reactions only work in channels where the bot is admin.

telegram_pin_message

Pin a message to the top of a chat. Parameters:
string | number
required
Telegram chat ID
number
required
Message ID to pin
boolean
default:"true"
Don’t notify members about the pin
Example:
Bot must be an admin in groups/channels to pin messages.

Email Management

search_emails

Search inbox with filters. Parameters:
string
Search email body
string
Filter by sender address
string
Filter by subject line
number
Only emails from last N days
boolean
default:"false"
Only unread emails
number
default:"10"
Max results
Example:
Response:

fetch_email

Get full email by UID. Parameters:
string
required
Email UID from search_emails
Example:

index_emails_to_knowledge_base

Ingest emails into RAG knowledge store. Parameters: Same as search_emails, plus collection. Example:

generate_email_report

Synthesize multi-email report. Parameters:
string
required
Report focus
array
Specific UIDs to analyze
string
Filter by sender
string
Filter by subject
number
default:"7"
Lookback window
Example:
Response:

Cross-Channel Reactions

react

Universal reaction skill with auto-detection. Parameters:
string
required
Message ID to react to
string
required
Emoji (raw or semantic: thumbs_up, love, fire, laugh, check, eyes, thinking)
string
Override channel detection
string
Override chat ID detection
Emoji Resolution:
  • thumbs_up β†’ πŸ‘
  • love β†’ ❀️
  • fire β†’ πŸ”₯
  • laugh β†’ πŸ˜‚
  • check β†’ βœ…
  • eyes β†’ πŸ‘€
  • thinking β†’ πŸ€”
Example:

Best Practices

Channel selection priority:
  1. Use auto-detection when replying to messages
  2. Set explicit channel parameter for proactive sends
  3. Let the system fall back to configured channels
Avoid cross-channel sends without permission. Autonomy mode blocks cross-channel messaging unless the tool is exempt (like send_email) or the user is an admin.

Memory

Store and recall conversation context

Files

Send files and media