Slack
Send messages, manage channels, and pause workflows for human approval in Slack.
Overview
Send messages and manage Slack from your workflows via the Slack Web API. Pick a resource and operation, and the node surfaces only the fields that operation needs. Text and channel fields support {{variables}}.
Operations
- Message — Send, Send and Wait for Response, Update, Delete, Get Permalink, Search
- Channel — Create, Get, Get Many, History, Invite, Archive
- User — Get, Get Many, Lookup by Email
- Reaction — Add, Remove
Human-in-the-Loop: Send and Wait for Response
Send and Wait for Response posts an interactive message and then pauses the entire workflow until a person responds in Slack. The execution is parked in a durable WAITING state (its in-flight context is snapshotted to the database, so it can wait minutes, hours, or days without holding a worker), then resumes down the branch matching the human’s choice. Use it to put a human checkpoint in front of any consequential step.
Response types
- Approval — Approve / Disapprove buttons (labels configurable; the Disapprove button is optional). Routes to the Approved or Disapproved output.
- Free Text — a Respond button opens a modal with a single text box. The entered text lands in the output under
text; routes to Submitted. - Custom Form — a Respond button opens a modal built from your fields (short text, long text, or dropdown; each optional or required). Submitted values land in the output under
submitted; routes to Submitted.
Output handles
The node shows a labeled output for each path so you can branch on the canvas: Approved, Disapproved, Submitted, and (when a wait timeout is set) Timeout. The chosen response is also written to the node’s output variable.
Wait timeout
Set Wait Timeout (minutes) to bound how long the workflow waits. 0 waits indefinitely. After the timeout, the workflow continues down the Timeout output so you can escalate, retry, or proceed with a default.
Required Slack app setup
Send and Wait relies on Slack’s interactive components, which use a separate Request URL from the Events API. In your Slack app under Interactivity & Shortcuts, enable Interactivity and set the Request URL to https://www.falconbuilder.dev/api/webhooks/slack/interactivity. The app’s Signing Secret must be on the Slack credential (the same one the Slack Trigger uses) so Falcon can verify button and modal callbacks.
Configuration
- Credential — select a Slack credential (Bot User OAuth token)
- Channel — channel ID (e.g.
C0123456789) for message, history, invite, archive, and reaction operations - Message Text — message body for Send/Update/Send and Wait (supports
{{variables}}) - Blocks — optional Slack Block Kit JSON array for rich layouts (Send and Wait builds its own interactive blocks)
- Response Type / labels / form fields / wait timeout — shown only for Send and Wait for Response (see above)
- Output Variable — name to store the Slack API response (or the human response) under
Example
- Resource:
Message· Operation:Send - Channel:
C0123456789 - Text:
New patient intake from {{$json.name}} — review in the portal.
Example: approval gate
- Resource:
Message· Operation:Send and Wait for Response - Channel:
C0123456789 - Text:
Send this outreach email to {{$json.email}}? Draft: {{agent_result.response}} - Response Type:
Approval· Wait Timeout:60 - Wire the Approved output to the “send email” step, Disapproved to a logging/notify step, and Timeout to a reminder.
Common Use Cases
- Approval gates — require a human Approve before an irreversible step (publish content, send outreach, issue a refund, close an account)
- Review & edit — collect free-text feedback or structured form input to steer the next step
- Team alerts — notify a channel when a workflow needs human attention
- Status reactions — add a ✅ reaction once a downstream step completes
Notes
- The Slack app must be a member of any channel it posts to or reads from.
- Search requires a user token rather than a bot token; bot-only installs return a Slack permissions error.
- Send and Wait requires Interactivity enabled on the Slack app (Request URL
/api/webhooks/slack/interactivity) and the Signing Secret on the credential. Without it, button and modal responses can’t reach Falcon and the run stays parked until its timeout. - A Send and Wait node parks its execution in a
WAITINGstate (shown on the executions list) until someone responds or the wait times out. Test Node shows a preview without actually posting or pausing.