AgentConnect
Integrations

Finalize Slack auto-install

Combine the OAuth-obtained bot token (held server-side) with the operator-pasted app-level token to create the bot + integration and push it live, then delete the pending session. Refuses with SLACK_MISSING_SCOPES (and the missingScopes list) when the workspace authorization granted fewer bot scopes than the app requires, so a short install never becomes a bot.

POST
/v1/orgs/{orgId}/integrations/slack/app/{id}/finalize

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

orgId*string
id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/orgs/string/integrations/slack/app/string/finalize" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "name": "string",  "platform": "string",  "agentId": "string",  "botId": "string",  "status": "string",  "region": "feishu",  "createdAt": "string",  "channels": [    {      "channelId": "string",      "name": "string",      "spaceId": "string",      "space": "string",      "icon": "string",      "color": "string",      "key": "string",      "url": "string",      "isPrivate": true,      "kind": "channel",      "trigger": "off",      "decisionBinding": {        "decisionId": "string",        "when": {          "type": "choice",          "thresholds": {            "property1": 0,            "property2": 0          }        },        "nextStepId": "string",        "elseStepId": "string",        "type": "gate",        "steps": [          {            "decisionId": "string",            "when": {              "type": "choice",              "thresholds": {                "property1": 0,                "property2": 0              }            },            "nextStepId": "string",            "elseStepId": "string",            "id": "string"          }        ]      },      "decision": {        "consumer": "gate",        "id": "string",        "name": "string",        "enabled": true,        "disabledReason": "needs_review",        "readiness": {          "status": "ready",          "reason": "string"        }      },      "sessionMode": "createNew",      "agentId": "string",      "externalReason": "externallyShared"    }  ]}