Search all guides

Reference · Tools

Slack trigger

Starts workflow when Slack events are received (messages, reactions, mentions, etc.)

Webhook trigger Communication v1

The Slack Trigger starts a workflow when the Slack events you subscribe to arrive — messages, reactions, mentions and others — either across the workspace or filtered to one channel. A typical build is opening a support ticket whenever someone mentions the help bot in a channel.

Works as
Webhook trigger
Tool name
slack_trigger
Parameters
5
Outputs
Output
Credentials
Slack API
Official docs
Slack docs docs.slack.dev

What you can build with Slack

  • Trigger a workflow when a message is posted in a Slack channel.
  • React to new user joins in the Slack workspace.
  • Start a workflow when the bot is mentioned in Slack.
  • Monitor a specific channel for new reactions.
  • When process file shares in a Slack channel.

Overview

Receives webhook events from Slack’s Events API. Supports event filtering by type (message, reaction_added, app_mention, channel_created, team_join, file_share, file_public), channel-specific or workspace-wide monitoring, and optional signature verification using Slack’s v0 signing secret. Handles Slack URL verification challenges automatically. Outputs the raw Slack event payload with trigger metadata.

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Slack API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
Trigger OnmultiOptionsNo[]Which Slack events to listen for.
Options: any_event (any event Slack delivers), app_mention (your bot or app is mentioned in a channel it belongs to), file_public (a file is made public), file_share (a file is shared in a channel the app belongs to), message (a message is posted to a channel the app belongs to), channel_created (a new public channel is created), team_join (a new user is added to Slack), reaction_added (a reaction is added to a message)
Watch Whole WorkspacebooleanNofalseWhether to watch for the event in the whole workspace, rather than a specific channel. (shown when Trigger On is any_event, message, reaction_added, file_share, app_mention)
Channel IDstringYes—The Slack channel ID to listen to events from. Applies to events: Bot/App mention, File Shared, New Message Posted to Channel, Reaction Added. (shown when Watch Whole Workspace is false)
OptionscollectionNo{}Optional filters applied to incoming events.
— User IDs to IgnorestringNo—Comma-separated list of user IDs whose events should be ignored.

Output Data

Each matching Slack event produces one output item. The Slack event object is merged in at the top level — so its own fields (type, user, text, channel, ts, and any others Slack includes for that event) sit directly on the item — plus this metadata:

  • _trigger — always slack_webhook
  • _timestamp — ISO 8601 timestamp of when the request arrived
  • _webhookEvent — the Slack event type; file shares are reported as file_share
  • _teamId — the workspace the event came from
  • _eventId — Slack’s unique id for the delivery
  • _apiAppId — the Slack app the subscription belongs to

Reference the payload downstream by expression, e.g. {{ $json.text }}. Events that do not match your Trigger On selection, that come from a different channel when Watch Whole Workspace is off, or that come from a user listed in User IDs to Ignore, are acknowledged without starting the workflow. Slack’s URL verification challenge is answered automatically and produces no items.

Example Configuration

Watch one channel for new messages:

{
  "type": "slack_trigger",
  "parameters": {
    "trigger": ["message"],
    "watchWorkspace": false,
    "channelId": "C0122KQ70S7E",
    "options": {}
  }
}

Watch the whole workspace and ignore two noisy accounts:

{
  "type": "slack_trigger",
  "parameters": {
    "trigger": ["message", "reaction_added", "app_mention"],
    "watchWorkspace": true,
    "options": {
      "userIds": "U1111111111,U2222222222"
    }
  }
}

Workspace-level events that are not channel-scoped:

{
  "type": "slack_trigger",
  "parameters": {
    "trigger": ["team_join", "channel_created"],
    "options": {}
  }
}

Catch app mentions anywhere in the workspace:

{
  "type": "slack_trigger",
  "parameters": {
    "trigger": ["app_mention"],
    "watchWorkspace": true,
    "options": {}
  }
}

Watch one channel for file activity, ignoring a bot account:

{
  "type": "slack_trigger",
  "parameters": {
    "trigger": ["file_share", "file_public"],
    "watchWorkspace": false,
    "channelId": "C9876543210",
    "options": {
      "userIds": "UBOT123456"
    }
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

This tool receives Slack events such as messages, reactions, or mentions, acting as a trigger for workflows. It is the right tool when you need to initiate a process based on specific activity within Slack channels or across an entire workspace, rather than sending messages or retrieving information. It produces the raw Slack event payload, including all relevant trigger metadata, for further processing.

Set up a webhook in your Slack app to enable this trigger. Configure event subscriptions in your Slack app settings and point the Request URL to this webhook. We also recommend setting up a signing secret to ensure the authenticity of requests.

Frequently asked questions

How do I set it up in Slack?

Configure event subscriptions in your Slack app settings and point the Request URL at this trigger's webhook. Slack then delivers matching events to it.

Are payloads verified?

Set a signing secret in the Slack app credentials and deliveries are signature-verified, so a forged request cannot start your workflow.

Can I limit it to one channel?

Yes — filter by channel, or leave it unset to watch the entire workspace.

Which credential does it need?

A Slack API credential, ideally including the signing secret for verification.

Build with Slack

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Slack API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.