Skip to main content

Channels

Channels connect Digitorn apps to inbound / outbound I/O via digitorn-background. In app YAML they are declared under tools.channels. The Go package internal/modules/channels is a stub; adapters live under internal/background/adapter/.

There are no agent catalog tools named channels.send_message, channels.reply, or channels.broadcast. Delivery is adapter / activation pipeline behavior, not a fixed tool module surface.

Built-in Go adapters

AdapterPackageTypical use
webhookadapter/webhookHTTP POST in / out
cronadapter/cron5-field cron activations
rssadapter/rssPoll feeds
telegramadapter/telegramTelegram bot
discordadapter/discordDiscord bot
whatsappadapter/whatsappWhatsApp
piecesadapter/piecesActivepieces events
primitivesadapter/primitivesInternal polling helper

Older docs mentioning email, sms, voice, slack, log, file_watcher, or queue as first-class Go adapters are not authoritative for this build.

YAML shape

yaml
tools:
channels:
alerts:
type: webhook
config:
url: "{{secret.WEBHOOK_URL}}"
user_resolver: # optional
module: database
action: query
params:
query: "SELECT phone FROM users WHERE session_id = :session_id"
mapping:
to_number: phone
cache_ttl: 300

Schema type: ChannelInstanceConfig (type, config, user_resolver).

App-level cron vs session scheduler

NeedMechanism
Activate the app on a cronChannel / trigger cron + background
Wake this session with a messagescheduler.schedule

runtime.watchers / runtime.scheduler booleans do not register watch_* or cron_native tools. Periodic shell checks use background_run with watch: true (see Primitives).