Platforms
Reference

Compare Platform Plugin capabilities

Compare external Platform Plugin ingress, credentials, access policies, and delivery capabilities, with Email setup and built-in Web Chat explained separately.

For
Agent operators, Agent creators, solution architects, and Organization administrators
On this page
  1. Email and built-in Web Chat
  2. Compatibility scope
  3. Quick answer
  4. Runtime independence
  5. Connection ownership
  6. Platform capability comparison
  7. Provider ingress
  8. Credential requirements
  9. Access controls
  10. Mention and direct-message policy
  11. Operational differences
  12. Choose a Platform
  13. Multi-Platform Agents
  14. API values
  15. Setup guides
  • Platforms
  • Slack, Microsoft Teams, Telegram, Discord, and Email
  • Hermes and OpenClaw

Agent Barn ships five external Platform Plugins: Slack, Microsoft Teams, Telegram, Discord, and Email. Email requires deployment configuration before a Connection can be created. Built-in Web Chat is a separate dashboard option that needs no external provider credentials.

Platform compatibility is independent of Runtime choice. This reference describes the capabilities Agent Barn currently configures and enforces; the underlying providers may offer additional features that Agent Barn does not configure.

Compatibility scope

An Agent is created without a required communication Platform. Communication is added afterward as one or more Communication Connections.

  • An Agent can have zero, one, or many Communication Connections.
  • The same Agent can have multiple Connections for the same Platform, such as two Slack workspaces.
  • Platform selection is independent of Runtime selection.
  • Both Hermes and OpenClaw consume the same runtime-neutral Communications protocol.
  • All five external Platform Plugins work with both supported Runtimes.

Where this page says a control is not available, it means Agent Barn does not currently expose it as a Connection policy. The underlying provider may still offer an equivalent control through its own administration.

See Communication Connections for the full ownership and lifecycle model.

Quick answer

Email
Allocated addresses with deployment-enabled sending, inbound routing, and sender policy
Slack
Workspace channels with configurable thread mention behavior
Microsoft Teams
Microsoft 365 tenants, using an authenticated provider webhook
Telegram
Lightweight bot deployment with group chats and configurable direct messages
Discord
Server, channel, user, and role-based boundaries

These are selection guidelines, not Platform rankings. Choose based on where your users already work and which access boundary you need.

Requirement Usually the best fit Why
Workspace channels with tunable thread behaviorSlackSocket Mode avoids a public inbound route, and thread mention behavior is configurable per Connection
Microsoft 365 and Teams app governanceMicrosoft TeamsNative Teams application flow, tenant credentials, and group, channel, and personal scopes
Lightweight group and direct-message botTelegramOne bot token, with configurable group and direct-message policies
Server, channel, user, and role restrictionsDiscordThe most granular shared-space access model
Several audiences on different providersAny combinationOne Agent can hold a Connection for each Platform

Runtime independence

Every shipped Platform Plugin works with either Runtime. There is no Runtime-versus-Platform compatibility matrix to satisfy.

Runtime SlackMicrosoft TeamsTelegramDiscordEmail
Hermes SupportedSupportedSupportedSupportedSupported
OpenClaw SupportedSupportedSupportedSupportedSupported

Choose a Runtime on its own merits: operating model, command approval, Template compatibility, Skills, and resource footprint. See Choose an Agent runtime.

Connection ownership

Provider connectivity belongs to the Communication Connection and the Communications Gateway, not to the Agent Runtime.

  • Provider sessions and per-Connection credentials stay in Communications; Email uses deployment-managed credentials.
  • The Communications Gateway owns provider connectivity, inbound normalization, policy enforcement, and outbound delivery.
  • Provider credentials are encrypted and are never returned through the API after being stored.
  • Provider tokens are not passed into the Agent Runtime.
  • Conversations and resolved identities remain scoped to their Connection.
  • Connection changes reconcile independently and do not require restarting the Agent.

Platform capability comparison

Each capability below describes what a Communication Connection configures and enforces for that Platform.

Platform Provider ingress Shared-space controls Direct-message policy Additional controls
Slack Supervised Socket Mode connection Open or allowlisted channels Off, open, or allowlist Thread mention behavior can be every_message or start_only
Microsoft Teams Authenticated provider webhook Open or allowlisted group and channel conversations Off, open, or allowlist Group and channel messages require an Agent mention
Telegram Supervised polling connection Open or allowlisted group chats Off, open, or allowlist Policies use Telegram chat and user identities
Discord Supervised Gateway connection Open or allowlisted servers and channels Off, open, or allowlist User and role restrictions plus configurable mention gating
Email Cloudflare Email Worker to authenticated Product API inbound route Open or sender allowlist Reply to source sender only Deployment-managed credentials; no per-Connection provider credentials. Threaded plain-text inbound and replies; no attachments; reply-only.

Shared-space access, direct-message access, and mention requirements are Connection policies. They are not Runtime capabilities, and they can be changed without recreating the Agent.

Provider ingress

Slack, Telegram, and Discord use supervised provider sessions. Teams and Email use different webhook ingress paths: Teams addresses one Connection, while Email resolves the allocated recipient address through the shared inbound route. Built-in Web Chat uses authenticated Product API routes and is not another external webhook setup.

Email

Cloudflare Email Worker to shared authenticated email ingress

Worker access to Product API required

Configure routing, sending, and matching deployment secrets. The shared route resolves the allocated recipient address.

Slack

Supervised Socket Mode

No public inbound route

The Communications service holds the Socket Mode session using the Connection’s bot and app-level tokens.

Microsoft Teams

Authenticated provider webhook

Public inbound route required

Microsoft Teams calls a Connection-scoped webhook on the Communications service, which verifies the request before admitting it.

Telegram

Supervised polling

No public inbound route

The Communications service polls Telegram using the Connection’s bot token.

Discord

Supervised Gateway session

No public inbound route

The Communications service maintains the Discord Gateway session for real-time events.

The Microsoft Teams webhook is scoped to a Communication Connection rather than to an Agent, and has this shape:

Teams provider webhook
https://AGENT_BARN_HOST/communications/v1/webhooks/CONNECTION_ID

A Teams Connection therefore needs a stable external Agent Barn URL and public HTTPS access to the Communications webhook prefix. A Teams app package may be available for download from the Connection when the installed Teams Platform Plugin exposes that capability.

Slack, Telegram, and Discord need no inbound route into the deployment.

Credential requirements

Each Platform Plugin defines its own credential schema. Credentials are entered on the Connection.

Platform Connection credentials Additional setup identifiers
SlackBot token and app-level tokenChannel and user identities for allowlists
EmailNo per-Connection provider credentials; sending credentials and inbound secret belong to the deploymentAllocated address and sender policy; deployment setup
Microsoft TeamsApp ID, app password or client secret, and tenant IDProvider webhook URL and Teams app package
TelegramBot tokenNumeric chat and user IDs for allowlists
DiscordBot tokenApplication, server, channel, user, and role IDs as needed

Secret classification

Value Classification
Slack bot tokenSecret
Slack app-level tokenSecret
Teams app password or client secretSecret
Telegram bot tokenSecret
Discord bot tokenSecret
Teams app IDNot secret
Teams tenant IDIdentifier: still avoid unnecessary disclosure
Discord Application IDNot secret
Channel, chat, server, user, and role IDsIdentifiers, not authentication credentials

Use a distinct bot or application identity for each production Connection, and do not run two Connections against the same provider bot token.

Access controls

Two separate authorization boundaries apply, and they are not interchangeable:

  • Agent Access controls who can view or manage the Agent inside Agent Barn.
  • Communication Connection policies control which provider-side users, channels, chats, servers, roles, or conversations may interact with it.

Slack

Boundary Available policies
ChannelsOpen or allowlist
Direct messagesOff, open, or user allowlist
Thread mention behaviorevery_message or start_only
Private channel membershipBot must be invited

Recommended production baseline:

Slack baseline
Channel access:  Allowlist
Direct messages: Off or Allowlist
Thread mentions: every_message

Slack provides directory-backed channel and user selection. Private channels appear only after the Slack bot has been invited.

Microsoft Teams

Boundary Available policies
Group and channel conversationsOpen or allowlist
Direct messagesOff, open, or allowlist
Shared-space activationAgent mention required
Installation scopeGoverned by the Microsoft tenant

The Microsoft tenant, administrator approval, and where the Teams application is installed remain an additional boundary on top of the Connection policy.

Telegram

Boundary Available policies
Group chatsOpen or allowlist
Direct messagesOff, open, or user allowlist
Group activationExplicit mention required
Group membershipBot must be added manually

Recommended production baseline:

Telegram baseline
Group access:    Allowlist
Direct messages: Off or Allowlist
Mention gating:  Required

Telegram policies use Telegram chat and user identities. Usernames and group names are not accepted as access identifiers.

Review Telegram Group Privacy separately. It controls what Telegram delivers at all, before any Connection policy applies.

Discord

Boundary Available policies
ServersOpen or allowlist
ChannelsOpen or allowlist
UsersAll users or user allowlist
RolesRole allowlist
Direct messagesOff, open, or allowlist
Shared-channel activationConfigurable mention gating

Recommended production baseline:

Discord baseline
Server access:            Allowlist
Allowed channels:         Explicitly configured
Allow all users:          Disabled
Allowed users or roles:   Explicitly configured
Require explicit mention: Enabled
Direct messages:          Off

When Allow all users is disabled, at least one allowed user or role is required.

Discord calls servers “guilds” in its own API, so provider identifiers may use that term.

Mention and direct-message policy

Agents should not act on ordinary conversation in shared spaces unless they are intentionally addressed. How strictly that is enforced is a Connection policy, not a fixed Platform trait.

Slack thread mention behavior

A Slack Connection chooses between two thread behaviors.

every_message requires a fresh mention for each message, including thread replies:

  • @agent first request delivered
  • thread reply without @agent ignored
  • @agent follow-up request delivered

start_only requires the mention that starts the thread, after which replies in that thread can continue without a new mention:

  • @agent first request delivered
  • thread reply without @agent may be delivered
  • unrelated channel message ignored

Use every_message for shared channels where several people talk, and start_only where a thread is a deliberate working session with the Agent.

Microsoft Teams, Telegram, and Discord

  • Microsoft Teams requires an Agent mention for group and channel messages.
  • Telegram requires an explicit mention in group chats.
  • Discord exposes configurable mention gating for server channels.

Keep mention gating enabled unless a channel is deliberately dedicated to one Agent.

Direct messages

Direct messages do not require a mention, and every Platform supports the same three-way policy: off, open, or allowlist. Choose per Connection based on who should be able to reach the Agent privately.

Changing mention or direct-message policy is a Connection update. It reconciles on its own and does not require restarting the Agent.

Operational differences

Activity name enrichment

Platform Agent Barn activity display
SlackChannel and sender names are resolved on a best-effort basis
Microsoft TeamsConversation identifiers are shown where directory enrichment is unavailable
TelegramChat names are resolved through the Telegram bot API
DiscordChannel and user names are resolved through the Discord bot API

Directory results are cached, so a recently changed name may not appear immediately. Provider identifiers remain authoritative even when a human-readable name is displayed, and resolved identities stay scoped to their Connection.

Scheduled and initiated messages

Slack currently supports Agent-initiated delivery through Agent Barn Communications. Interactive sends require a live inbound execution and remain on its Connection. Scheduled results use their recorded origin or the Agent's configured default, subject to runtime limitations and the Connection's current policies.

Email, Teams, Telegram, Discord, and built-in Web Chat do not currently advertise this initiated-delivery capability. Their existing inbound and reply paths are separate. A destination-like setting alone does not enable scheduled delivery on another plugin.

For Slack setup and the default target, see the Slack guide. For Hermes and OpenClaw completion routing and recovery, see Runtime Assembly and Deployment.

Additional provider-specific behavior

Platform Behavior
SlackSocket Mode must be enabled, and reinstalling is required after changing OAuth scopes
Microsoft TeamsRequires an Azure Bot channel and a reachable provider webhook endpoint
TelegramTelegram Group Privacy affects which group messages the provider delivers at all
DiscordMessage Content Intent is required; Server Members Intent is required for role-based restrictions

Choose a Platform

Use this sequence.

  1. Choose the Platform where the intended users already work.
  2. Create the Agent with the appropriate Runtime and Template.
  3. Add one or more Communication Connections.
  4. Follow the selected plugin’s credential or deployment setup and configure its policies.
  5. Enable the Connection when it is ready to receive traffic.

Platform choice does not constrain Runtime choice, so it never eliminates a Runtime option. If a second audience uses a different provider, add another Connection instead of starting over.

Priority Better fit
Server, channel, user, and role boundariesDiscord
Workspace channel discovery and tunable thread mentionsSlack
Lightweight groups and configurable direct messagesTelegram
Microsoft tenant integrationMicrosoft Teams

See Hire your first Agent for the creation flow, then Communication Connections for the Connection workflow.

Multi-Platform Agents

One Agent can expose the same role through several Connections at once:

One Agent
  • Slack workspace Connection
  • Microsoft Teams tenant Connection
  • Telegram bot Connection
  • Discord server Connection

These Connections share the same Agent (its Runtime, Template Version, Skills, Integrations, and cost identity) while provider credentials, policies, identities, and conversation histories stay Connection-scoped.

Shared by the Agent

  • Runtime selection
  • The pinned Template Version
  • Assigned Skill Versions
  • Model selection
  • Agent Secrets and Shared Credential references
  • Agent Access assignments
  • Cost attribution

Scoped to each Connection

  • Platform Plugin selection
  • Provider bot or application identity
  • Encrypted provider credentials
  • Routing and admission policy
  • Resolved provider identities
  • Conversation history
  • Communication Deliveries
  • Connection health
  • Proactive destination setting

Do not clone the Agent merely to support another Platform. Use a separate provider bot or application identity for each Connection, and never run two Connections against the same provider token.

API values

Runtime values

agent_type selects the Runtime:

agent_type
hermes
openclaw

Agent creation

An Agent creation request carries no Platform fields:

Agent fields
{
  "name": "Example Agent",
  "agent_type": "hermes",
  "template_key": "REPLACE_WITH_TEMPLATE_KEY",
  "model": "REPLACE_WITH_MODEL",
  "skill_ids": []
}

Platform configuration is created separately as a Communication Connection after the Agent exists, and the Platform-specific settings and credentials are defined by the selected Platform Plugin.

Setup guides

Continue with the setup guide for the selected Platform.

After adding a Connection:

Email and built-in Web Chat

Agent Barn ships external Platform Plugins for Slack, Microsoft Teams, Telegram, Discord, and Email, plus built-in Web Chat. Email requires deployment configuration. Web Chat is built into the Agent page and does not require external provider credentials.

Email ingress runs from a Cloudflare Email Worker to an authenticated Product API inbound route. Access is Open or sender allowlist, with an empty allowlist by default. Address local parts are permanently non-reissued. Credentials are deployment-managed, with no per-Connection provider credentials. Content is threaded plain-text inbound and replies: no attachments, reply-only. Web Chat is separate from external provider ingress.

Continue with Connect an Agent to Email.

Documentation