Skip to content

Slack

Audience: Everyone · Tags: slack, connector, oauth

Post messages to a Slack channel from a flow. connectorKey is slack, action type send_message, authType is oauth, category communication.

Early access. This connector's code makes real calls to the Slack API — there's no separate sandbox or mock Slack behind it. It's been validated end-to-end in SnapLink's automated tests using fake/injected HTTP responses (so tests don't need a live Slack account), and the install → configure → certify → activate lifecycle, the action's request shape, and error handling all work as documented below. It just hasn't been exercised against a real Slack workspace yet — that additionally requires your administrator to register a real Slack OAuth app (client id/secret) with SnapLink. Until that's done, the connector installs and activates normally, but a live send returns error code auth.

Fields

Field Required Type Notes
channel Yes string A channel ID (e.g. C0123456789) or a name the bot can see (e.g. #sales).
text Yes string The message text.

Output: ts — the Slack message timestamp (Slack's message identifier).

The text you write is sent exactly as written each time — SnapLink doesn't insert data from the incoming webhook into it.

Install and activate (marketplace walkthrough)

# 1. Install into your workspace
curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/marketplace/installed" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"workspaceId":"ws_abc123","connectorKey":"slack"}'
# → 201 { "data": { "state": "installed", ... } }

# 2. Configure
curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/marketplace/installed/transition" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"workspaceId":"ws_abc123","connectorKey":"slack","action":"configure"}'

# 3. Certify (runs a health check; must pass to advance)
curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/marketplace/installed/transition" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"workspaceId":"ws_abc123","connectorKey":"slack","action":"certify"}'

# 4. Activate
curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/marketplace/installed/transition" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"workspaceId":"ws_abc123","connectorKey":"slack","action":"activate"}'
To actually send messages, your admin also connects a real Slack bot token — via SnapLink's Slack OAuth flow once a Slack app is registered, or via the lower-level /connections API with credentialType: "oauth_access" for direct wiring.

Worked example

Flow: webhook trigger → Slack: Send Message

{
  "trigger": { "key": "t", "connectorKey": "webhook", "triggerType": "webhook" },
  "actions": [
    {
      "key": "a1",
      "connectorKey": "slack",
      "actionType": "send_message",
      "input": { "channel": "C0000000", "text": "New event received" }
    }
  ]
}

1. Create the flow and draft:

curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/flows/flow_abc123/drafts" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"definition": { "trigger": {"key":"t","connectorKey":"webhook","triggerType":"webhook"}, "actions": [{"key":"a1","connectorKey":"slack","actionType":"send_message","input":{"channel":"C0000000","text":"New event received"}}] }}'

2. Promote it to activate (the flow won't validate until Slack is active in the workspace, per the lifecycle above):

curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/drafts/draft_xyz/promote" \
  -H "Authorization: Bearer $TOKEN"

3. Trigger it (see webhook.md):

curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/webhooks/flow_abc123/<secret>" \
  -H "Content-Type: application/json" -d '{}'
{ "ok": true, "data": { "runId": "run_01HF...", "status": "queued" } }

4. Check the run in Execution History. If a real Slack bot token is connected, the message posts to #sales (or whichever channel); otherwise the step fails with auth.

Limitations

  • Slack rate-limits messaging (roughly 1 message/second/channel); SnapLink maps throttling to rate_limit and can retry with backoff.
  • The bot must already be a member of (or invited to) private channels to post there.
  • Plain text messages only — Slack Block Kit / rich formatting is Planned.

If something goes wrong

Symptom Cause Fix
Run fails auth No real Slack app registered yet, or the bot token was revoked Ask your admin to complete Slack OAuth setup, or reconnect (Authentication errors)
channel_not_found / not_in_channel Wrong channel ID, or the bot isn't in that channel Use the channel's ID, or invite the bot
rate_limit Sending too fast Add backoff — see Rate limiting

See Connector failed for the general failure-diagnosis path.


Related: Connector Catalog · Webhook trigger · Authentication errors