Skip to main content

Bot groups

A bot group is a set of bots sharing channel assignment and authorization, so permissions are granted once to the group rather than repeated per bot.

The grant is stored against the group, not copied to the members. When a message arrives, the group expands to whatever its membership is at that moment — add a bot and it is available everywhere the group is granted; remove it and it stops being offered everywhere, in one step.

Two things hang off a bot group today:

WhatWhere it is described
Shared channel assignment — one grant covers every member botBelow
Key scope — a provider key attached to the groupBelow, and API keys

Creating and managing one

In the admin console, under Channels & Groups, on the Bot Groups tab.

FieldNotes
Group IDChosen at creation and permanent — it cannot be changed afterwards
NameMust be unique within the tenant
DescriptionOptional
EnabledA disabled group stops granting anything: bots reachable only through it stop being offered until it is re-enabled
BotsThe members — added and removed in the same dialog

Deleting a group removes its memberships and its grants. The bots themselves are untouched.

Shared channel assignment

A channel — a group chat or a private chat — can be authorized for a bot group instead of for each bot separately. Everything said above about expansion applies: the conversation sees the group's current members, and disabling the group switches all of its grants off at once.

The admin console shows the result rather than creating it: a channel's Effective Bot Access view labels access that arrives through a group, distinguishing it from a direct per-bot grant. Creating the grant itself is currently an API operation — an authorization edge with a bot_group target via /api/authorization-edges (see the REST API) — the console has no picker for it yet.

An authorization group can also be granted a bot group, which composes the two: every channel in the authorization group gets every bot in the bot group.

Key scope

Key Management accepts a provider key attached to a bot group, alongside the tenant, bot and user scopes described in API keys.

One caution before relying on it: the automatic lookup when a bot answers walks the bot's own scope, then the tenant's — it does not consult the bot's group memberships. A key that exists only at group scope will therefore not be picked up by a member bot answering a message. Until the walk includes the group level, keep the key a bot actually depends on at bot or tenant scope.

Bot groups are not authorization groups

The Groups tab on the same page manages authorization groups, which group in the other direction — and the two compose, as noted above:

Bot groupAuthorization group
Members areBotsChannels
Granting one meansEvery member bot is available wherever the group is grantedEvery channel in the group gets the same assigned bots
Managed onBot Groups tabGroups tab

For an authorization group, the assigned bots are managed on the group itself, and one switch matters: Include tenant default bots. On, the group's channels get the tenant's default bots plus the group's own additions; off, they get only the bots explicitly assigned to the group.

Channel membership in authorization groups has rules worth knowing before reorganizing:

  • A group chat belongs to at most one authorization group. Adding it to a second is refused, naming the group it is already in. Private chats are exempt and may sit in several.
  • Removing a channel from its last group can revoke it. A channel whose authorization came only from group membership is deauthorized automatically when it leaves — no orphaned access is left behind. A channel that was also authorized directly keeps its direct authorization and simply drops out of the group. Adding an already-authorized channel to a group preserves its direct authorization for exactly this case.
  • Ungrouped channels fall back to their own settings — the tenant's default bots, or an explicit per-channel list.

However a bot ends up assigned — directly, through an authorization group, or through a bot group — only bots with an integration on that platform are offered there, and an authorized channel with no bot assigned produces silence, not an error. See Troubleshooting for how to tell the cases apart.