Slack Roadmap

Developer notes for the Slack upstream connector: how Triage’s diagnostic runs as a Slack app, rendered with Block Kit over the Web API. The gateway’s Slack renderer already ships in the reference implementation; the hosted transport is on the roadmap. Facts here are grounded in Slack’s official Web API OpenAPI spec.

Reference
Slack platform at a glance

The public platform facts the Intake Gateway’s Slack renderer relies on. Method and scope names are taken from Slack’s official Web API OpenAPI specification (see Developer references).

App & installA Slack app (definable via an app manifest) with a bot user and granular bot scopes, installed to a workspace via OAuth 2.0; base URL https://slack.com/api.
Scopeschat:write to post and update messages, im:write / conversations:write to open a DM, and users:read to resolve the acting user.
Post a questionchat.postMessage — “Sends a message to a channel” — with a Block Kit blocks payload.
Lock in placechat.update — “Updates a message” — replaces the question message with a locked version whose interactive elements are gone, mirroring the Teams card update.
Question renderingBlock Kit: section, context and actions blocks; button elements carry the answer values; text is plain_text or mrkdwn.
InteractivityButton clicks deliver a block_actions interaction payload identified by block_id / action_id; the app acknowledges within 3 seconds and may reply via the response_url.
TransportThe app receives interactions and events over the Events API (a request URL) or Socket Mode (a WebSocket) — the gateway is transport-agnostic.
IdentityThe acting user is resolved from user.id on the interaction payload, enriched via users.info where needed.
The integration
How the diagnostic runs in Slack
StepWhat happens on the platform
1The requester opens the Triage app’s DM (or invokes it). Slack delivers events/interactions to the gateway over the Events API or Socket Mode.
2The gateway resolves the requester’s identity from the payload (user.id).
3The gateway posts the first question with chat.postMessage — a Block Kit message with button options.
4On a click, Slack sends a block_actions payload; the gateway acknowledges within 3s and calls chat.update to lock the message, then posts the next question.
5On the final answer the gateway calls the Triage decision core; the Intent Record is minted and the completion message (channel, confidence, intent:// chip) is posted.
6When composerID publishes downstream, chat.update adds a button linking to the created record.
Primary sources
Developer references

Slack’s official developer documentation. Method and scope names on this page are taken from the vendor-published Web API OpenAPI spec (slackapi/slack-api-specs).

The gateway’s Slack renderer and its contract tests live in upstream/slack_blocks.py in this repository — the same gateway core, a different renderer.