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"}'
/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_limitand 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