Skip to main content

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

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 for the authenticated webhook operations and feature status for the current release boundary.