Slack
Posts a message to a Slack channel, through an incoming webhook or a bot token.
Fields
| Field | Type | Required | What it does |
|---|---|---|---|
webhookUrl | string | An incoming webhook on hooks.slack.com. The channel is fixed when the webhook is made, so no channel is needed. Keep it in a flow variable: {{variables.SLACK_HOOK}}. | |
botToken | string | A bot token ("xoxb-…") for chat.postMessage, used when there is no webhook. Keep it in a flow variable. The bot needs chat:write and has to be invited to the channel. | |
channel | string | Required with a bot token: #general or a channel id like C0123456789. | |
text | string | yes | The message, may contain {{expressions}}. At most 40000 characters. |
threadTs | string | Reply inside a thread, named by its timestamp, like 1712345678.000100. | |
replyBroadcast | boolean | Show a threaded reply in the channel as well. Only with threadTs. | |
unfurl | boolean | Set false to stop Slack expanding link previews. |
Output
ok, way (webhook or api), channel, ts, text
Notes
Give either webhookUrl or botToken; with both, the webhook wins. chat.postMessage answers 200 even when it refuses, so a refusal ("not_in_channel", "channel_not_found") arrives as a node failure with the reason in plain words. Neither the token nor the webhook address appears in an error.