Platforms
Reference

Compare platform compatibility

Compare runtime support, credentials, connection methods, access boundaries, direct-message behavior, and operational differences across Slack, Microsoft Teams, Telegram, and Discord.

For
Agent operators, Agent creators, solution architects, and Organization administrators
On this page
  1. Compatibility scope
  2. Quick answer
  3. Runtime support
  4. Feature comparison
  5. Connection methods
  6. Credential requirements
  7. Access controls
  8. Mention behavior
  9. Operational differences
  10. Choose a platform
  11. Multi-platform Agents
  12. API values
  13. Setup guides
  • Platforms
  • Slack, Microsoft Teams, Telegram, and Discord
  • Hermes and OpenClaw

Compare Slack, Microsoft Teams, Telegram, and Discord support across Agent Barn’s Hermes and OpenClaw runtimes.

This reference describes the capabilities currently exposed and enforced by Agent Barn. The underlying platforms and runtimes may offer additional features that Agent Barn does not configure.

Compatibility scope

Every Agent has:

  • One communication platform.
  • One runtime.
  • One platform bot or application identity.
  • One encrypted platform credential set.
  • One independent conversation and activity history.

The platform and runtime are selected when the Agent is created. They cannot be changed through Agent configuration later.

To move work to another platform or runtime, create another Agent and apply the required Template, Skills, model, credentials, and access settings.

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

Quick answer

Slack
Strict shared-channel mention behavior and workspace collaboration
Microsoft Teams
Microsoft 365 environments, when OpenClaw and a public messaging endpoint are acceptable
Telegram
Lightweight bot deployment with groups and configurable direct messages
Discord
Server, channel, user, and role-based boundaries

These are selection guidelines, not platform rankings. Choose based on the required access boundary, tenant environment, runtime, and operational model.

Requirement Usually the best fit Why
Workspace channels and strict per-message mentionsSlackBoth runtimes are supported, Socket Mode avoids a public webhook, and shared-channel threads require a fresh mention
Microsoft 365 and Teams app governanceMicrosoft TeamsNative Teams application flow, personal, team, and group-chat scopes, and tenant credentials
Lightweight group and direct-message botTelegramOne bot token, both runtimes, and configurable group and DM policies
Server, channel, user, and role restrictionsDiscordBoth runtimes and the most granular shared-space access model
Hermes runtimeSlack, Telegram, or DiscordHermes does not support Microsoft Teams
OpenClaw runtimeAny supported platformOpenClaw supports all four platforms

Runtime support

Runtime Slack Microsoft Teams Telegram Discord
Hermes Supported Not supported Supported Supported
OpenClaw Supported Supported Supported Supported

The API uses agent_type for the runtime:

Runtime values
hermes
openclaw

Feature comparison

Each capability below describes what Agent Barn configures and enforces for that platform.

Capability Slack Microsoft Teams Telegram Discord
Shared spacesChannelsTeams and group chatsGroup chatsServers and channels
Direct messagesOff, open, or user allowlistOpen in the generated runtime configurationOff, open, or user allowlistDisabled
Shared-space policyOpen or channel allowlistOpen; no Agent Barn chat allowlistOpen or chat allowlistOpen or server allowlist
Channel-level restrictionYesNot through Agent BarnChat-level onlyYes
User-level restrictionDM allowlistNot through Agent BarnDM allowlistShared-channel user allowlist
Role-level restrictionNoNot through Agent BarnNoYes
Mention gatingStrict fresh mentionExplicit mention; direct reply may qualifyExplicit mention; direct reply may qualifyEnabled by default and configurable
Public inbound endpointNoYesNoNo
Hermes home destinationFirst allowed channelNot applicableFirst allowed chatExplicit alert destination
OpenClaw heartbeat destinationNot configured by Agent BarnNot configured by Agent BarnNot configured by Agent BarnExplicit alert destination
Credential uniqueness enforcedSlack bot tokenNoNoDiscord bot token

“Not through Agent Barn” means that the underlying platform may provide controls that are not represented as an Agent Barn routing policy.

Connection methods

Three platforms use an outbound connection opened by the Agent runtime. Microsoft Teams is the exception: it calls into a public Agent Barn endpoint.

Slack

Socket Mode

Outbound

The runtime opens the connection using a bot token and an app-level token. No public Slack event webhook is required.

Microsoft Teams

Public HTTPS messaging endpoint

Inbound

Teams calls an Agent Barn endpoint, which relays the request to the Agent’s OpenClaw runtime.

Telegram

Telegram Bot API

Outbound

The runtime connects with the bot token. No public Telegram webhook URL is required by this setup.

Discord

Discord Gateway

Outbound

The runtime opens a WebSocket for real-time events. No webhook or Interactions Endpoint URL is required.

The Microsoft Teams messaging endpoint has this shape:

Teams messaging endpoint
https://AGENT_BARN_HOST/api/v1/webhooks/teams/AGENT_ID/messages

A Teams deployment therefore needs a stable external Agent Barn URL, public HTTPS access to the Teams webhook route, and a Teams or Azure bot registration configured with the generated messaging endpoint.

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

Credential requirements

Platform Required Agent credentials Additional setup identifiers
SlackBot token and app-level tokenOptional Slack configuration token for automated application creation
Microsoft TeamsApp ID, app password or client secret, and tenant IDPublic messaging endpoint 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

Credential validation timing

Platform When a bad credential normally surfaces
SlackBot and app tokens are validated during creation, and checked by the running Agent
Microsoft TeamsDuring the automatic start, or when Teams calls the messaging endpoint
TelegramThe bot token is validated through Telegram during creation, and checked again by the runtime
DiscordUsually when the Agent runtime starts and attempts to authenticate with Discord

Slack and Discord bot tokens must be unique across active Agents on their respective platforms. Agent Barn returns a conflict if the token is already assigned.

Use a distinct bot or application identity for every production Agent, including on platforms where uniqueness is not enforced.

Access controls

Platform access and Agent Barn sharing answer different questions:

  • Platform access controls who may communicate with the Agent through Slack, Teams, Telegram, or Discord.
  • Agent Access controls who may view or administer the Agent inside Agent Barn.

Configure both boundaries.

Slack

Boundary Available policies
ChannelsOpen or allowlist
Direct messagesOff, open, or user allowlist
Shared-channel activationExplicit mention required
Private channel membershipBot must be invited

Recommended production baseline:

Slack baseline
Channel access:  Allowlist
Direct messages: Off or Allowlist
Mention gating:  Required

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

Microsoft Teams

Boundary Current Agent Barn behavior
Team and group-chat policyOpen
Personal chat policyOpen
Agent Barn chat allowlistNot available
Agent Barn user allowlistNot available
Shared-space activationExplicit mention required

The practical boundary comes from the Microsoft tenant ID, Teams administrator approval, where the Teams application is installed, Teams policies and permissions, and the generated messaging endpoint.

Teams is not the right current choice when Agent Barn-level per-chat or per-user allowlists are mandatory.

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 allowlists use numeric chat and user IDs. Usernames and group names are not accepted as access identifiers.

Review Telegram Group Privacy separately. It controls what Telegram delivers to the runtime before Agent Barn’s own routing and mention policies apply.

Discord

Boundary Available policies
ServersOpen or allowlist
ChannelsOptional channel restriction
UsersAll users or user allowlist
RolesRole allowlist
Direct messagesDisabled
Shared-channel activationExplicit mention enabled by default

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:          Disabled

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

Discord calls servers “guilds” in its API. Agent Barn API fields therefore use names such as discord_guild_ids.

Mention behavior

Agents should not act on ordinary conversation in shared spaces unless they are intentionally addressed.

Slack

Slack provides the strongest mention boundary.

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

A fresh explicit mention is required for each message in a channel or thread. Earlier participation does not automatically engage the Agent for later thread messages.

Microsoft Teams, Telegram, and Discord

These platforms require mentions in shared spaces, but a direct reply to the Agent’s own message may still count as addressing that Agent.

  • @agent first request delivered
  • ordinary channel message ignored
  • direct reply to the Agent may be delivered

This reply behavior remains scoped to the Agent whose message was replied to.

Discord exposes Require an explicit mention in server channels as a setting. Keep it enabled unless the channel is deliberately dedicated to one Agent.

Direct messages

Direct messages do not require a mention on platforms where Agent Barn supports them:

  • Slack: according to the configured DM policy.
  • Microsoft Teams: personal scope is open.
  • Telegram: according to the configured DM policy.
  • Discord: direct messages are disabled.

Mention gating is materialized when the Agent starts. Routing changes require a restart before they take effect in the runtime.

Operational differences

Creation and startup

Platform API result after creation Guided web behavior
SlackStoppedAccess is reviewed, then the Agent is started
Microsoft TeamsAutomatically startsCreation attempts to reach Running or Error
TelegramStoppedAccess is reviewed, then the Agent is started
DiscordStoppedOperator opens the Agent and selects Start

The Slack and Telegram web flows are guided: after the Agent is created, the wizard opens its access step so channels, chats, and direct-message policies can be reviewed before the Agent starts.

A stopped Agent can be configured without deploying its runtime. For a running Agent, platform-routing changes use Apply & Restart. For a stopped Agent, Apply saves the configuration and leaves it stopped.

Activity name enrichment

Platform Agent Barn activity display
SlackChannel and sender names are resolved on a best-effort basis
Microsoft TeamsNo equivalent Agent Barn directory enrichment
TelegramChat names are resolved through the Telegram bot API
DiscordChannel and user names are resolved through the Discord bot API

Telegram and Discord directory results are cached, so a recently changed name may not appear immediately. Numeric identifiers remain authoritative even when Agent Barn displays a human-readable name.

Scheduled and proactive destinations

Platform and runtime Agent Barn-configured destination
Slack with HermesFirst allowed channel
Microsoft TeamsNo platform destination field
Telegram with HermesFirst allowed chat
Discord with HermesExplicit alert destination channel
Discord with OpenClawExplicit heartbeat destination channel

For Slack or Telegram with Hermes, order matters, because the first allowed destination becomes the home destination. A proactive destination must also satisfy platform membership and send-permission requirements.

Additional platform-specific behavior

Platform Behavior
Slack with HermesOptional verbose mode announces intermediate work
Microsoft TeamsStreaming is disabled in the generated OpenClaw configuration
TelegramTelegram Group Privacy affects which group messages reach the runtime
DiscordMessage Content Intent is required; Server Members Intent is required for role-based restrictions

Choose a platform

Use this decision sequence.

Do you require Microsoft Teams?

Choose OpenClaw with Microsoft Teams. Hermes cannot be combined with Teams.

Required combination
Runtime:  OpenClaw
Platform: Microsoft Teams

Confirm that a public HTTPS messaging endpoint and Microsoft tenant administration are acceptable.

If Agent Barn-level per-chat or per-user allowlists are required, evaluate another platform, or enforce the restriction through Microsoft tenant and installation controls.

Do you require Discord roles as an access boundary?

Choose Discord. It is the only current Agent Barn platform with a shared-space role allowlist, and it supports independent server, channel, user, role, and mention boundaries.

Discord direct messages are not available.

Do you require controlled direct messages?

Choose Slack or Telegram. Both support Off, Open, and a user allowlist.

Slack offers directory-backed user selection. Telegram uses manually entered numeric user IDs.

Microsoft Teams personal chat is open in the generated configuration and has no Agent Barn user allowlist. Discord direct messages are disabled.

Do you require the strictest shared-thread mention behavior?

Choose Slack. It requires a fresh mention for each shared-channel or thread message, while Teams, Telegram, and Discord may deliver a direct reply to the Agent without another textual mention.

Do you want the lightest platform credential setup?

Telegram normally requires one bot token. Group setup can still require BotFather configuration, a Group Privacy review, manual chat and user ID collection, and explicit group membership.

Do you need the richest Agent Barn shared-space policy?

Priority Better fit
Server, channel, user, and role boundariesDiscord
Workspace channel discovery and strict mentionsSlack
Lightweight groups and configurable DMsTelegram
Microsoft tenant integrationMicrosoft Teams

Choose a runtime after the platform

Requirement Runtime guidance
Microsoft TeamsOpenClaw is required
SlackHermes or OpenClaw
TelegramHermes or OpenClaw
DiscordHermes or OpenClaw
Hermes command approval modesChoose Hermes
Hermes scheduled home-channel behaviorSlack, Telegram, or Discord
Broadest platform compatibilityOpenClaw

Platform compatibility should eliminate invalid runtime choices, but it should not be the only runtime-selection factor. Also consider the runtime operating model, command approval requirements, Template compatibility, required Skills and integrations, scheduled and proactive work, resource footprint, and existing operational experience.

See Choose an Agent runtime for the full comparison.

Multi-platform Agents

To expose the same role on several platforms, create one Agent per platform:

Shared Template and Skills
  • Slack Agent
  • Telegram Agent
  • Discord Agent

They may share

  • The same published Template version
  • The same Skill versions, where provider requirements are satisfied
  • The same model selection
  • Equivalent Agent instructions
  • Organization-owned Shared Credentials where appropriate

They do not share

  • Platform bot identity
  • Platform secrets
  • Agent ID
  • Runtime deployment
  • Conversation history
  • Activity and tool-call history
  • Logs
  • Health state
  • Cost attribution
  • Agent Access assignments
  • Proactive destination

Avoid presenting several independent Agents as one continuous cross-platform conversation, unless an explicit external synchronization design exists.

Use a separate bot or application identity for each Agent. Never run several Agent runtimes against the same Slack, Telegram, or Discord bot token.

API values

Platform values

platform
slack
teams
telegram
discord

Runtime values

agent_type
hermes
openclaw

The API field is named agent_type:

Platform and runtime
{
  "platform": "telegram",
  "agent_type": "hermes"
}

Valid combinations

agent_type platform Valid
hermesslackSupported
hermesteamsNot supported
hermestelegramSupported
hermesdiscordSupported
openclawslackSupported
openclawteamsSupported
openclawtelegramSupported
openclawdiscordSupported

Platform-specific creation fields

Slack:

Slack fields
{
  "platform": "slack",
  "slack_bot_token": "REDACTED",
  "slack_app_token": "REDACTED",
  "slack_group_policy": "allowlist",
  "slack_channel_ids": ["C1234567890"],
  "slack_dm_policy": "off",
  "slack_dm_user_ids": []
}

Microsoft Teams:

Microsoft Teams fields
{
  "platform": "teams",
  "agent_type": "openclaw",
  "teams_app_id": "REDACTED",
  "teams_app_password": "REDACTED",
  "teams_tenant_id": "REDACTED"
}

Telegram:

Telegram fields
{
  "platform": "telegram",
  "telegram_bot_token": "REDACTED",
  "telegram_group_policy": "allowlist",
  "telegram_allowed_chat_ids": ["-1001234567890"],
  "telegram_dm_policy": "off",
  "telegram_allowed_user_ids": []
}

Discord:

Discord fields
{
  "platform": "discord",
  "discord_bot_token": "REDACTED",
  "discord_group_policy": "allowlist",
  "discord_guild_ids": ["123456789012345678"],
  "discord_allowed_channel_ids": ["234567890123456789"],
  "discord_allow_all_users": false,
  "discord_allowed_user_ids": [],
  "discord_allowed_role_ids": ["345678901234567890"],
  "discord_require_mention": true,
  "discord_home_channel_id": "234567890123456789"
}

Each create request must also include the common Agent fields, including:

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

The API validates runtime and platform compatibility. Platform and runtime fields are not available in the Agent update contract.

Setup guides

Continue with the setup guide for the selected platform.

After connecting the platform:

Documentation