> ## Documentation Index
> Fetch the complete documentation index at: https://docs.actionllama.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack Webhooks

> Filter fields, setup, and examples for Slack webhook triggers

Slack webhooks let agents respond to workspace events like messages, app mentions, and reactions via the Slack Events API.

## Filter Fields (all optional)

| Field      | Type      | Description                                                                                                                   |
| ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `events`   | string\[] | Slack event types: `message`, `app_mention`, `reaction_added`, `reaction_removed`, `channel_created`, `member_joined_channel` |
| `channels` | string\[] | Only trigger for these Slack channel IDs                                                                                      |
| `team_ids` | string\[] | Only trigger for these Slack workspace/team IDs                                                                               |

## Setup

1. In the Slack API dashboard ([https://api.slack.com/apps](https://api.slack.com/apps)), create or select your app
2. Go to **Event Subscriptions** and enable events
3. Set the Request URL to `https://your-server:8080/webhooks/slack`
4. The gateway automatically responds to Slack's URL verification challenge
5. Subscribe to the bot events you need (e.g., `message.channels`, `app_mention`)
6. Go to **Basic Information → App Credentials** and copy the **Signing Secret**
7. Set the signing secret credential to match `slack_signing_secret` referenced by the webhook source in `config.toml`

## URL Verification

The Slack provider automatically handles URL verification challenges. When Slack sends a `url_verification` request, the gateway validates the signature and responds with the challenge token. No manual setup is needed.

## Replay Protection

The provider rejects requests with timestamps older than 5 minutes, protecting against replay attacks.

## Example Configuration

```toml theme={null}
# In project config.toml
[webhooks.my-slack]
type = "slack"
credential = "MainWorkspace"
```

```toml theme={null}
# In agents/<name>/config.toml
[[webhooks]]
source = "my-slack"
events = ["message", "app_mention"]
channels = ["C0123456789"]
team_ids = ["T0123456789"]
```
