Abbot skill authors now have access to the Rooms API (via bot.rooms) to manage channels in Slack. This API lets skill authors create new channels, invite users to a channel, set a topic or purpose for a channel, and archive a channel. This feature can come in handy when building out your own incident workflow, especially when combined with signals!
This feature requires that you grant a couple of additional Slack scopes to Abbot, channels:manage and groups:write. When you log in to Abbot with your Slack account, you’ll be prompted to grant these scopes in the header:
Reinstallation is quick and painless
To help with learning how this feature works, we published a set of demonstration skills in each language:
The usage pattern for each of these skills is the same:
- @abbot room-py create {room-name} - Creates a room with the given name.
- @abbot room-py topic #room {topic} - Sets a topic for the specified room
- @abbot room-py purpose #room {purpose} - Sets a purpose for the specified room
- @abbot room-py topic {topic} - Sets a topic for the current room
- @abbot room-py purpose {purpose} - Sets a purpose for the current room
- @abbot room-py archive #room - Archives the specified room
- @abbot room-py invite #room @mention1 @mention2 ... @mentionN - Invites the specified users to the specified room.
Note that these samples are meant to demonstrate how to use the API, but they’re only marginally useful as-is. Where the real power comes in is combining the Rooms APIs with signals and patterns and other skills.
For example, you could have an incident skill that raises a signal when a new Slack channel needs to be created for managing that incident. Another skill could subscribe to that skill and use the Rooms API to create a Slack channel in response.
The transcript shown is an example of what's possible.
For fun, another thing you could do is have a pattern that changes the room topic in response to certain words being mentioned in chat.
Give it a try and let us know what you think!