Last updated: July 5, 2026
Use Slack Tools
Automations can call Slack tools to send messages, add reactions, and read channel content. Slack tools work with any Network Access setting. Enable Slack tools by including them in Allowed Tools in the automation's guardrails.
Send Messages with slackSendMessage
Post messages to Slack channels and reply in threads.
Parameters
- teamId: Optional. Slack workspace ID. If omitted, uses your organization's connected workspace.
- channelId: Required. Channel ID or channel name (with or without
#). Examples:C123456789,incidents,#platform-team. - text: Required. Message text in standard Markdown format. Maximum 40,000 characters. The text is automatically converted to Slack's rich text format.
- threadTimestamp: Optional. Parent message timestamp. If provided, posts as a threaded reply.
Example Usage in Prompt
123456Query error rate for service {{label.service}} over the last hour.Post your findings to #incidents using slackSendMessage with:- Channel: incidents- Text: A summary of your analysis with error count, rate, and trend- Thread: Reply to timestamp {{slack.message.timestamp}} if this was triggered by a Slack message
Markdown Formatting
Use standard Markdown syntax in the message text. The tool automatically converts it to Slack's rich text format:
- Bold:
**bold text**or__bold text__ - Italic:
*italic text*or_italic text_ - Code:
`inline code` - Code block:
```language\ncode block\n``` - Links:
[link text](https://example.com) - Lists: Use
-or*for bullets,1.for numbered lists - Headings:
# Heading 1,## Heading 2, etc.
Do NOT use Slack-specific mrkdwn syntax like <https://example.com|label> or <@U123456789> for mentions. Use standard Markdown instead, and the tool will handle the conversion.
Agent0 can format messages in markdown. Specify formatting requirements in your prompt.
Add Reactions with slackAddReaction
Add emoji reactions to messages.
Parameters
- teamId: Required. Slack workspace (team) ID.
- channelId: Required. Channel ID (not channel name). Must be a Slack channel ID like
C123456789. - messageTimestamp: Required. Timestamp of the message to react to.
- emoji: Required. Emoji name without colons (e.g.,
white_check_mark,rocket,eyes).
Example Usage in Prompt
1234567After you've completed the investigation, add a :white_check_mark: reaction to the original message using slackAddReaction.Use:- Team ID: {{slack.team.id}}- Channel ID: {{slack.channel.id}}- Message timestamp: {{slack.message.timestamp}}- Emoji: white_check_mark
The emoji parameter accepts names without colons. Use eyes not :eyes:, and white_check_mark not :white_check_mark:.
List Channels with slackListChannels
Retrieve a list of channels in the Slack workspace.
Parameters
- teamId: Optional. Slack workspace ID.
Example Usage in Prompt
123First, list all channels using slackListChannels to find channels with names containing "incident".Then post your health report to each matching channel.
Use this tool when you need to discover channels dynamically rather than hardcoding channel names.
Get Message with slackGetMessage
Fetch a specific message and optionally its thread replies.
Parameters
- teamId: Optional. Slack workspace ID.
- channelId: Required. Channel ID (not channel name). Must be a Slack channel ID like
C123456789. - messageTimestamp: Required. Timestamp of the message to retrieve.
- includeThread: Optional. Boolean. If true, includes threaded replies (up to a limit).
Example Usage in Prompt
12345678Someone reacted to a message. Use slackGetMessage to fetch the full message and thread context.Parameters:- Channel ID: {{slack.channel.id}}- Message timestamp: {{slack.message.timestamp}}- Include thread: trueAnalyze the thread conversation for context before responding.
List Channel Messages with slackListChannelMessages
Retrieve messages from a channel with pagination support.
Parameters
- teamId: Optional. Slack workspace ID.
- channelId: Required. Channel ID (not channel name). Must be a Slack channel ID like
C123456789. - limit: Optional. Number of messages to retrieve (default: 50, max: 200).
- oldest: Optional. Unix timestamp (seconds). Only return messages after this time.
- latest: Optional. Unix timestamp (seconds). Only return messages before this time.
- cursor: Optional. Pagination cursor from a previous call.
- authorUserId: Optional. Filter to messages sent by a specific Slack user ID. Applied within the fetched page only.
- textContains: Optional. Case-insensitive substring filter. Only returns messages containing this text. Applied within the fetched page only.
Example Usage in Prompt
1234567List the last 100 messages from the incidents channel using slackListChannelMessages.Parameters:- Channel ID: {{slack.channel.id}}- Limit: 100Search the messages for mentions of service {{label.service}} and summarize relevant discussion.
The authorUserId and textContains filters are applied only within the fetched page. To search more messages, widen the time window with oldest/latest or use the cursor parameter to fetch additional pages.
Use this tool to analyze recent channel activity or search for historical context.
Configure Guardrails for Slack Tools
To allow automations to call Slack tools, configure guardrails appropriately.
Allowed Tools
Include Slack tools in the Allowed Tools list:
slack:*— Allow all Slack tools (recommended for most use cases)slack:slackSendMessage— Allow only sending messagesslack:slackAddReaction— Allow only adding reactionsslack:slackListChannels,slack:slackGetMessage,slack:slackListChannelMessages— Allow specific read-only tools
About smart defaults:
- If Allowed Tools is empty, Slack write tools (
slackSendMessage,slackAddReaction) are granted only for Slack-triggered automations (message, reaction, or failed check triggers from Slack). - Schedule- or webhook-triggered automations must explicitly list
slack:*or specific Slack tools in Allowed Tools to post to Slack.
Required Tool Calls
Add slackSendMessage to Required Tool Calls if the automation must post to Slack. This prevents runs from completing without posting a response.
Example guardrail configuration for a Slack-triggered investigation:
- Allowed Tools:
slack:*,dash0:* - Required Tool Calls:
slackSendMessage - Timeout: 10 minutes
- Concurrency: Queue
Further Reading
- Configure Slack Triggers — Configure Slack message, reaction, and failed check triggers.
- Set Guardrails — General guide to configuring guardrails.
- View Slack Examples — Example automations, best practices, and troubleshooting.