Channels — provisioning guides#
opendray bundles native implementations for the most common messaging platforms. Each guide below walks through obtaining credentials from the platform and pasting them into the admin UI.
| Kind | Inbound | Outbound | Buttons | Public URL? |
|---|---|---|---|---|
telegram |
long-poll | REST | inline keyboard | no |
slack |
Socket Mode | Web API (blocks) | block actions | no |
discord |
Gateway WS | REST (embeds) | components | no |
feishu |
webhook | tenant-token API | interactive card | yes |
dingtalk |
(none in v1) | group-robot webhook | nav links only | no |
wecom |
(none in v1) | group-robot webhook | nav links only | no |
wechat |
(none — push) | WxPusher push | nav links only | no |
bridge |
WebSocket | WebSocket | adapter-defined | no |
"Public URL" means the platform pushes events to opendray over HTTP and opendray must be reachable from the internet (Cloudflare Tunnel / ngrok / public LB). The other kinds open an outbound connection from opendray to the platform, so opendray can run behind a NAT.
Per-platform setup:
For custom platforms not listed here, see the bridge protocol: ../bridge-protocol.md.