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:
| What | Where it is described |
|---|---|
| Shared channel assignment — one grant covers every member bot | Below |
| Key scope — a provider key attached to the group | Below, and API keys |
Creating and managing one
In the admin console, under Channels & Groups, on the Bot Groups tab.
| Field | Notes |
|---|---|
| Group ID | Chosen at creation and permanent — it cannot be changed afterwards |
| Name | Must be unique within the tenant |
| Description | Optional |
| Enabled | A disabled group stops granting anything: bots reachable only through it stop being offered until it is re-enabled |
| Bots | The 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 group | Authorization group | |
|---|---|---|
| Members are | Bots | Channels |
| Granting one means | Every member bot is available wherever the group is granted | Every channel in the group gets the same assigned bots |
| Managed on | Bot Groups tab | Groups 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.