Last updated: July 5, 2026
Configure Slack Triggers
Configure Slack triggers to start automations when messages, reactions, or check alerts occur in your Slack workspace. Each trigger type responds to different events and provides specific variables for use in automation prompts.
Slack Message Trigger
Fires when someone posts a message containing specific text in a channel where the Dash0 bot is a member.
Configuration
- Message Keyword: Required. Text that must appear in the message (case-insensitive substring match). Examples:
"investigate","check service","is down". - Channel Names: Optional. Limit to specific channels (without
#). Accepts multiple channels. Leave empty to match all channels where the bot is a member. - User Handles: Optional. Only match messages from specific users (without
@). Accepts multiple users. Leave empty to match all users. The Dash0 bot's own messages are ignored. - Thread Only: Optional. Check this box to only trigger on threaded replies, not top-level messages.
Available Variables
- {{slack.channel.name}}: Channel name (e.g.,
incidents) - {{slack.channel.id}}: Channel ID (e.g.,
C123456789) - {{slack.message.text}}: Full message text
- {{slack.message.timestamp}}: Slack timestamp format (e.g. 1718000000.123456)
- {{slack.user.handle}}: Username who posted (e.g.,
jane.doe) - {{slack.user.id}}: User ID (e.g.,
U123456789) - {{slack.team.id}}: Slack workspace ID
- {{slack.thread.timestamp}}: Thread parent timestamp (only present if the message is in a thread)
Example Automation
Use case: Respond to Slack messages asking about service health.
Trigger configuration:
- Message keyword:
health check - Channel names:
incidents,platform-team - User handles: (empty, match all users)
- Thread only: unchecked
Prompt:
12345678910{{slack.user.handle}} asked for a health check in #{{slack.channel.name}}.Message: "{{slack.message.text}}"Parse the message for service names. For each service mentioned:1. Query error rate over the last hour2. Query p99 latency over the last hour3. Check for active alertsReply in thread with a summary of each service's health.
Guardrails:
- Allowed tools:
slack:*,dash0:* - Required tool calls:
slackSendMessage
Slack Reaction Trigger
Fires when someone adds a specific emoji reaction to a message in a channel where the Dash0 bot is a member.
Configuration
- Emojis: Required. Which emoji(s) trigger the automation (without colons). Examples:
eyes,rocket,white_check_mark. Accepts multiple emojis. - Channel Names: Optional. Limit to specific channels.
- User Handles: Optional. Only trigger when specific users add reactions.
Available Variables
Same as Slack message triggers, plus:
- {{slack.reaction.emoji}}: The emoji that was added (e.g.,
eyes)
For reaction triggers, {{slack.message.timestamp}} is the reaction event's timestamp, not the reacted-to message. To reply to the reacted message's thread or add another reaction to it, use {{slack.thread.timestamp}}, which contains the reacted message's timestamp.
Example Automation
Use case: Investigate when someone reacts with 👀 to a message.
Trigger configuration:
- Emojis:
eyes - Channel names:
incidents - User handles: (empty)
Prompt:
12345678910{{slack.user.handle}} reacted with :{{slack.reaction.emoji}}: to a message in #{{slack.channel.name}}.Original message: "{{slack.message.text}}"Treat this as a request to investigate. Parse the message for:- Service names- Time references (e.g., "last 10 minutes", "since 2pm")- Error keywordsQuery Dash0 for relevant metrics, logs, and traces. Post your findings in thread.
Guardrails:
- Allowed tools:
slack:*,dash0:* - Required tool calls:
slackSendMessage
Emoji reactions provide a lightweight way for team members to trigger investigations without typing commands. Use reactions like :eyes: for investigation, :rocket: for deployment verification, or :white_check_mark: for resolution confirmation.
Slack Failed Check Trigger
Fires when a Dash0 check fails and posts a notification to a Slack channel. This trigger is specific to Dash0 check alerts sent to Slack.
Configuration
- Message Keyword: Optional. Substring match on the alert message text. Leave empty to match all failed check alerts.
- Channel Names: Optional. Limit to specific alert channels.
- Check Rule IDs: Optional. Only trigger for specific checks. Leave empty to trigger on any failed check.
- Label Filters: Optional. Filter by check labels (e.g.,
severity: high). - Annotation Filters: Optional. Filter by check annotations.
Available Variables
- {{slack.channel.name}}: Channel where the alert was posted
- {{slack.channel.id}}: Channel ID
- {{slack.team.id}}: Slack workspace ID
- {{slack.message.timestamp}}: Alert message timestamp
- {{slack.message.text}}: Alert message text
- {{check.id}}: Check's unique ID
- {{check.name}}: Name of the failed check
- {{label.*}}: Any labels on the check (e.g.,
{{label.service}},{{label.environment}}) - {{annotation.*}}: Any annotations on the check
Example Automation
Use case: Automatically triage high-severity check failures.
Trigger configuration:
- Message keyword: (empty)
- Channel names:
alerts-critical - Check rule IDs: (empty)
- Label filters:
severity=high
Prompt:
123456789101112High-severity check "{{check.name}}" failed for service {{label.service}} in {{label.environment}}.Query the following for the last 30 minutes:- Error rate and top 5 error messages- p99 latency trend- Recent deployment activity- Correlated check failuresPost your triage analysis in thread with:1. Likely root cause2. Impact assessment3. Recommended next steps
Guardrails:
- Allowed tools:
slack:*,dash0:* - Required tool calls:
slackSendMessage
Further Reading
- Configure Triggers — General guide to configuring automation triggers.
- Use Slack Tools — Use Slack tools to send messages, add reactions, and read channel content.
- View Slack Examples — Example automations, best practices, and troubleshooting.