SLACK INTEGRATION: TECHNICAL SPEC
PRD REFERENCE
When a channel goes quiet mid-rollout, teams cannot tell whether the
integration broke or nobody posted. 14 customers, 3 of them blocked deals.
CONTEXT AND SCOPE
Follows the connector shape already in src/connectors/zendesk/, which
polls on a cursor and writes through the shared ingest path
(ingest.ts:212).
DESIGN, KEY TRADE-OFF
Events API over polling. Slack pushes each message as it lands, so the
connector holds no cursor and never runs a catch-up read.
ALTERNATIVES CONSIDERED
Per-channel polling, the shape src/connectors/zendesk/ already uses.
Rejected: a workspace with 400 channels exhausts the rate limit inside
one sync window, so the cursor never catches up.
ACCEPTANCE CRITERIA
Given a connected workspace where the bot has not been invited to any
channel, when the integration page loads, then it shows the invite
step rather than an empty list.
OPEN QUESTIONS
None. Bot-invite timing is answered at oauth/callback.ts:128.