Connect

List Slack channels for the channel picker

Serves the channel picker of the Slack connect flow. Slack's OAuth installs the bot into a workspace, not a channel, so after the redirect the caller lists the workspace's channels here and finalizes one with POST /v1/connect/slack. Served by a dedicated route that shadows GET /v1/connect/{platform} for slack.

Send exactly one of pendingDataToken (first connect: the nonce from the OAuth redirect, bound to the same profileId) or accountId (add another channel to a workspace already connected: the existing Slack account's workspace token is reused, no re-OAuth). With neither, the endpoint behaves like GET /v1/connect/{platform} and returns authUrl and state to start the OAuth flow.

Channels are read live from Slack (conversations.list, public and private, archived excluded, up to 2,000). isMember says whether the Zernio bot is already in the channel: a public channel is joined automatically on finalize, a private one must be invited (/invite @Zernio) first.

get/v1/connect/slack

Query parameters

profileIdstring required

Zernio profile the channel account will belong to. Must match the profile the OAuth flow was started on when pendingDataToken is used.

pendingDataTokenstring

Nonce from the OAuth redirect (first connect).

accountIdstring

Existing active Slack account (yours or a team member's) whose workspace token is reused.

redirect_urlstring uri

Start-OAuth mode only: where to send the user after the connect completes. redirectUrl is accepted as an alias.

Response

Channel list (picker mode), or the OAuth URL when neither pendingDataToken nor accountId is sent

OR

Changes