Slack Trigger
Receive Slack messages and events as workflow triggers.
Use Slack Trigger when:
- You want to run a workflow when someone posts a message or mentions your bot
- You need to react to emoji reactions or channel activity
- Slack is the event source and your workflow runs asynchronously
For sending messages back to Slack, pair this with Slack Send Message.
Slack Workspace — required. Use Tensorify's managed Slack app:
- Open Connections (or click Manage on the node) and use Add to Slack.
- Approve bot scopes in Slack.
- Pick that connection on this trigger (and on Slack Send Message if you reply).
You do not create your own Slack app or paste a Request URL for the managed path. Tensorify receives Events API traffic at a single platform URL and routes by workspace team_id.
| Handle | Type | Description |
|---|---|---|
payload | object | Normalized Slack event payload |
The payload (accessed as {{ slack.* }}) shape:
| Field | Type | Description |
|---|---|---|
user | string | Slack user ID of the event author |
channel | string | Channel ID where the event occurred |
text | string | Message text (for message and mention events) |
timestamp | string | Slack message timestamp (ts) |
thread_ts | string | Thread parent timestamp, if the message is in a thread |
event_type | string | Event type (e.g. message, app_mention, reaction_added) |
raw_event | object | Full Slack event object for advanced use cases |
| Setting | Type | Default | Description |
|---|---|---|---|
event_types | multi-select | message, app_mention | Slack event types to listen for: message, app_mention, reaction_added, message.channels |
| Setting | Type | Default | Description |
|---|---|---|---|
channel_filter | string | — | Only trigger for events in this channel ID. Leave empty to accept all channels. |
| Setting | Type | Default | Description |
|---|---|---|---|
mockPayload | code editor (JSON) | Sample Slack event JSON | JSON body to inject when running this workflow locally for testing. |
Prefer managed Connections. Only if you run a custom Slack app, configure these on Env Vars:
| Env Var | Description |
|---|---|
SLACK_BOT_TOKEN | Bot User OAuth Token (xoxb-...) from your Slack app |
SLACK_SIGNING_SECRET | Signing secret used to verify incoming Slack requests |
React to bot mentions and reply in the same thread:
- Add to Slack under Connections (managed Tensorify app).
- Drop Slack Trigger, pick the connection, set
event_typestoapp_mention(and/ormessage). - Deploy the workflow.
- In Slack,
/invitethe bot into the channel. - Mention the bot or post a message — a run should appear.
- Add Slack Send Message with the same connection — Channel
{{ slack.channel }}, Thread Timestamp{{ slack.timestamp }}or{{ slack.thread_ts }}, Message Text your reply.
Access event data in downstream nodes:
{{ slack.user }}
{{ slack.text }}
{{ slack.channel }}
{{ slack.event_type }}
The plugin handles Slack's URL verification challenge automatically.
import slack from @tensorify/slack-trigger:1.0.0
import slack_send from @tensorify/slack-send-message:1.0.0
node trigger @tensorify/slack-trigger:1.0.0 {
event_types = ["app_mention"]
channel_filter = ""
}
node reply @tensorify/slack-send-message:1.0.0 {
channel = "{{ slack.channel }}"
thread_ts = "{{ slack.timestamp }}"
text = "Thanks for mentioning me, <@{{ slack.user }}>!"
}
trigger.payload -> reply.input
- Bot messages ignored: Slack does not deliver bot-authored messages by default. Subscribe to
app_mentionif you want the bot to respond when tagged. - Missing scopes: Ensure your Slack app has the OAuth scopes required for the events you subscribe to (e.g.
channels:history,app_mentions:read). - Channel filter: Use the channel ID (e.g.
C01234ABCDE), not the channel name. - Signing secret (managed): Platform verifies signatures; you only need
SLACK_SIGNING_SECRETfor a self-managed custom Slack app.
- Connections — connect the Slack workspace the trigger uses
- Slack Send Message — send replies and notifications
- Webhook Trigger — generic HTTP webhook receiver
- Deploying Workflows — get your trigger URL and deploy to production
- Environment Variables — fallback for self-managed Slack credentials