Slack Handle
A SlackHandle reserves a Slack workspace user-group @handle for Firetiger and tracks the provisioned user_group_id. It is pure identity — it does not carry which agents receive mentions. Routing lives on SlackAgentMentioned triggers that reference the handle via configuration.slack_agent_mentioned.slack_handle.
A handle with no referencing trigger is a legitimate intermediate state: the @-name is reserved in Slack, but @-mentions route nothing until a trigger is created.
Parent: a Slack Connection. Handles are unique within a workspace, not globally — the nesting expresses that. The server validates that the parent Connection is CONNECTION_TYPE_SLACK.
| Field | Type | Behavior | Description |
|---|---|---|---|
name |
string | OUTPUT_ONLY | Resource name (connections/{connection}/slack-handles/{slack_handle}) |
handle |
string | REQUIRED, immutable | @-mention token without the leading @. Server strips a leading @ on input and lowercases. Unique within the workspace. |
user_group_id |
string | OUTPUT_ONLY | Slack user-group ID. Populated after provisioning (usergroups.create) succeeds. Stable across the resource’s lifetime. |
create_time |
timestamp | OUTPUT_ONLY | When the handle was created |
update_time |
timestamp | OUTPUT_ONLY | When the handle was last modified |
delete_time |
timestamp | OUTPUT_ONLY | When the handle was soft-deleted (null if active) |
Example
{
"name": "connections/slack-prod/slack-handles/on-call",
"handle": "on-call",
"userGroupId": "S0123ABCDEF",
"createTime": "2026-04-23T08:28:56Z",
"updateTime": "2026-04-23T08:28:56Z"
}