Slack Send Message
Send messages to Slack channels or users from a workflow. Use it for notifications, alerts, bot replies, and any programmatic messaging in Slack.
Use Slack Send Message when:
- You need to post notifications or alerts to a Slack channel from a workflow
- You want to reply in a thread after a Slack Trigger event
- You need rich Block Kit messages with sections, buttons, or images
- An AI Agent should send Slack notifications as a tool
Pair with Slack Trigger to receive events and reply in the same channel or thread.
| Handle | Type | Description |
|---|---|---|
input | any | Upstream data for template expression references in settings bindings. |
| Handle | Type | Description |
|---|---|---|
result | object | Slack message send result |
The result (accessed as {{ slack_message.* }}) shape:
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the message was sent successfully |
message_ts | string | Timestamp of the sent message (use as thread_ts for replies) |
channel | string | Channel ID where the message was posted |
error | string | Error message if success is false |
{
"success": true,
"message_ts": "1719234567.123456",
"channel": "C01234ABCDE",
"error": null
}
| Setting | Type | Default | Description |
|---|---|---|---|
channel | string | — | Channel ID (e.g. C01234ABCDE) or name (e.g. #general). Required. Supports template expression bindings. |
text | code editor | — | Message text content. Required. Supports template expression bindings. |
blocks | code editor (JSON) | — | Optional Block Kit JSON array for rich formatting. When provided, takes priority over plain text. Supports template expression bindings. |
thread_ts | string | — | Thread timestamp to reply in a thread. Supports template expression bindings. |
Configure on the Env Vars page:
| Env Var | Description |
|---|---|
SLACK_BOT_TOKEN | Bot User OAuth Token (xoxb-...) with chat:write scope. Create a Slack App at api.slack.com/apps, add the scope, install to your workspace, and copy the token. |
Send a deployment alert to #alerts when a webhook fires:
Webhook Trigger → Slack Send Message
Slack Send Message settings:
- Channel:
#alerts - Message Text:
Deployment succeeded for {{ webhook.body.service }} at {{ webhook.body.timestamp }}
Reply in a thread after a Slack Trigger:
Slack Trigger → Slack Send Message
Slack Send Message settings:
- Channel:
{{ slack.channel }} - Message Text:
Got it! Processing your request... - Thread Timestamp:
{{ slack.thread_ts }}(or{{ slack.timestamp }}for top-level replies)
Send a rich Block Kit message:
- Channel:
#alerts - Block Kit JSON:
[
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Deployment succeeded*\nService: `api-gateway`"
}
}
]
Access the result in downstream nodes:
{{ slack_message.success }}
{{ slack_message.message_ts }}
{{ slack_message.channel }}
import webhook from @tensorify/webhook-trigger:4.0.0
import slack from @tensorify/slack-send-message:1.0.0
node trigger @tensorify/webhook-trigger:4.0.0 {
provider = "generic"
path = "/deploy"
method = "POST"
}
node notify @tensorify/slack-send-message:1.0.0 {
channel = "#alerts"
text = "Deployment succeeded for {{ webhook.body.service }}"
}
trigger.payload -> notify.input
Slack Send Message has an On Error control output branch. Enable it via the "Error output handle" toggle at the bottom of the settings panel.
The error branch fires when:
- The Slack API returns an error (invalid channel, missing scope, rate limit, etc.)
SLACK_BOT_TOKENis missing or invalid- Block Kit JSON is malformed
Connect the error output to a fallback notification, logging action, or If node. On the success path, check {{ slack_message.success }} — the node does not automatically stop execution on failure.
- Channel access: The bot must be invited to the channel before it can post. Use
/invite @your-botin the channel. - Thread replies: Set
thread_tsto the parent message's timestamp. Use{{ slack.timestamp }}or{{ slack.thread_ts }}from a Slack Trigger to reply in the same thread. - Block Kit vs text: When
blocksis provided, it takes priority over plaintextfor message formatting. - Check
slack_message.success: The node does not automatically stop execution on failure. Connect the On Error branch or add an If node to handle failures. - Missing
SLACK_BOT_TOKEN: The node fails at runtime with an authentication error if the env var is not set.
- Slack Trigger — receive Slack events
- AI Agent — use Slack Send Message as an agent tool
- Send Email — email notifications as an alternative
- Environment Variables — store your Slack bot token
