Slack Trigger
The Slack trigger listens to Events API webhooks so VoltOps can run agents when messages, reactions, or channel activity happen in your workspace. VoltOps automatically handles Slack's URL verification challenge and validates requests with your signing secret.
For trigger setup and usage instructions, see the Usage Guide.
Use Cases:
- Capture app mentions and route them to an agent
- Summarize or triage new channel messages
- React to emoji signals (e.g., 👀 for review, ✅ for done)
- Watch file shares to sync documents elsewhere
- Notify when new teammates join or channels get created
Setting Credential
- Create a Slack app from api.slack.com/apps and choose From scratch, then select your workspace.
- In OAuth & Permissions, add bot scopes that cover your events (recommended:
channels:read,channels:history,groups:history,im:history,mpim:history,reactions:read,chat:write,files:read,files:write,users:read). - Install the app to your workspace and copy the Bot User OAuth Token (
xoxb-…). - In Basic Information, copy the Signing Secret. VoltOps uses this to verify Slack signatures.
- In VoltOps Console Step 1 (Connection), create a Slack credential and provide:
- Access Token: your
xoxb-bot token - Signing Secret: recommended for signature verification (can also be set via
SLACK_SIGNING_SECRETorSLACK_APP_SIGNING_SECRET).
- Access Token: your
Enable Slack Event Subscriptions
- In Slack Features → Event Subscriptions, toggle Enable Events on.
- Paste the Request URL shown in VoltOps when creating the Slack trigger. Slack will send
url_verification; VoltOps responds automatically. - Under Subscribe to bot events, add events that match the trigger you choose:
slack.anyEvent: subscribe to the broad events you want to forward (use sparingly in large workspaces).slack.appMention: addapp_mention.slack.messagePosted: add message events (e.g.,message.channels,message.groups,message.im,message.mpim) for channels/DMs your bot joins.slack.reactionAdded: addreaction_added.slack.fileShare: message events deliverfile_sharesubtypes.slack.filePublic: addfile_public.slack.channelCreated: addchannel_created.slack.teamJoin: addteam_join.
- Save the configuration. Slack will validate the Request URL and begin delivering events to VoltOps.
Trigger Configuration
- Event Type: Choose one of the supported events below.
- Watch Entire Workspace: Ingest events from all channels your app can see. Turn off to scope the trigger to a single channel.
- Channel Filter (Optional): Provide a channel ID to only fire when the event occurs in that channel.
- Include Bot Messages: When off, bot-authored messages are ignored for
messagePosted.
Event Types
slack.anyEvent— Any Events API payload your app receives (delivery: Webhook)slack.appMention— When your bot is mentioned (delivery: Webhook)slack.messagePosted— New message in a channel/DM the bot can read (delivery: Webhook)slack.reactionAdded— Reaction added to a message (delivery: Webhook)slack.fileShare— Message with file attachments (file_sharesubtype) (delivery: Webhook)slack.filePublic— File made public in the workspace (delivery: Webhook)slack.channelCreated— New public channel created (delivery: Webhook)slack.teamJoin— User joined the workspace (delivery: Webhook)
Payload Structure
VoltOps sends the Slack event object to your target and attaches trigger metadata.
{
"triggerMetadata": {
"provider": "slack",
"triggerKey": "slack.messagePosted",
"eventType": "message",
"eventSubtype": null,
"teamId": "T0123456",
"eventId": "Ev1234567890",
"channelId": "C0123456",
"userId": "U0123456",
"configuredChannelId": "C0123456"
},
"input": {
"type": "message",
"channel": "C0123456",
"text": "Hello from VoltOps!",
"user": "U0123456",
"ts": "1731000000.000200"
}
}
Add Target to Activate Binding
After configuring your Slack trigger, add a target (agent or workflow) to activate the binding. For detailed instructions on:
- Adding targets to activate bindings
- Mapping trigger data to agent inputs
- Testing triggers with sample payloads
- Deploying and monitoring triggers
See the Add Target to Activate Binding section. These steps are the same for all trigger providers.