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

# Webhooks and Slack delivery

> Route EvalGate evaluation, trace, alert, and change events through signed webhooks or a configured Slack workspace.

# Webhooks and Slack delivery

Use outbound delivery when a team needs EvalGate evidence outside the dashboard.
EvalGate supports organization-scoped signed JSON webhooks, Slack Incoming
Webhooks, and an optional deployment-configured Slack App. It does not currently
advertise native Microsoft Teams, Jira, or PagerDuty delivery.

## Choose a delivery mode

| Mode                   | Best for                                            | Authentication and payload                                                                                  |
| ---------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Signed JSON webhook    | Internal services, automation, and custom routing   | EvalGate signs the JSON envelope with the webhook secret shown at creation                                  |
| Slack App              | A workspace and channel managed through Slack OAuth | Available only when the EvalGate deployment has configured its Slack App                                    |
| Slack Incoming Webhook | A direct channel fallback                           | Supply a `hooks.slack.com` URL; EvalGate sends a Slack-readable message instead of its signed JSON envelope |

Slack App delivery is optional. If the deployment is not configured for Slack
OAuth, use a Slack Incoming Webhook or a generic signed endpoint. A generic
endpoint can forward accepted events to any downstream system, but that is not a
claim of a native connector for that system.

## Events available

The current public event catalog includes:

* evaluation started, completed, and failed;
* trace created, completed, and failed;
* span created;
* continuous-evaluation and failure-mode alerts;
* dashboard alert firing and resolution;
* autonomous mutation applied; and
* proposed change created.

The Settings and Developer webhook pages use this same runtime-owned catalog.
An event that is not listed there should not be assumed to be delivered.

## Create a signed webhook

1. Sign in and open **Developer → Webhooks** or the Webhooks settings tab.
2. Enter an HTTPS destination and select the exact events to receive.
3. Create the webhook and copy its secret into the destination's secret manager.
4. Verify the signature before parsing or acting on the body.
5. Use the delivery history to inspect attempts and failures.

Webhook URLs are validated before delivery. Secrets are encrypted at rest, and
delivery retries use the durable job path. Keep the destination idempotent: a
retry must not duplicate an external action.

## Connect Slack

When Slack App support is configured, open the Webhooks settings tab and choose
**Connect Slack**. Complete Slack's OAuth consent, select the accountable
workspace/channel, and return to EvalGate. Disconnecting the workspace disables
future Slack App delivery for that organization.

For an Incoming Webhook fallback, create the destination in Slack, then add its
`https://hooks.slack.com/...` URL as an EvalGate webhook. EvalGate detects that
host and formats a readable Slack message. This path is not Slack OAuth and does
not install a workspace app.

## Security boundary

* Never put API keys or provider credentials in a webhook URL.
* Treat the generated signing secret and Slack URL as secrets.
* Verify signed JSON before using its organization, event, or resource fields.
* Subscribe only to the events the destination needs.
* Keep downstream writes idempotent and review any high-impact automation.

See the [API reference](/docs/api/overview) for the authenticated webhook operations
and [feature status](/docs/platform/feature-status) for the current release boundary.
