Skip to main content
Agent Stack can send outgoing webhook notifications when resources are created, updated, or deleted. This allows external systems to react to changes without polling the API. Webhooks are configured statically via Helm chart values. Each endpoint receives a JSON payload via HTTP POST for matching events. Delivery is fire-and-forget — the server does not retry failed deliveries or block on slow endpoints.

Configuration

Add webhook endpoints to your config.yaml:
webhook:
  endpoints:
    - url: "https://example.com/webhook"
      headers:
        Authorization: "Bearer my-secret-token"
      events: ["*"]
FieldDescription
urlThe endpoint URL to receive POST requests.
headersHTTP headers sent with each request. Use this for authentication (e.g. Authorization: Bearer ...).
eventsList of event patterns to subscribe to. Defaults to ["*"] (all events).

Event filtering

Each endpoint can subscribe to specific events using pattern matching:
PatternMatches
*All events
provider.*All provider events (provider.created, provider.updated, provider.deleted)
provider.createdOnly provider creation events

Payload

Every webhook POST delivers a JSON body with the following structure:
{
  "event": "provider.created",
  "resource_type": "provider",
  "resource_id": "550e8400-e29b-41d4-a716-446655440000",
  "resource_url": "/api/v1/providers/550e8400-e29b-41d4-a716-446655440000",
  "user_id": "660e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2026-03-26T12:00:00+00:00"
}
FieldDescription
eventThe event type (e.g. provider.created).
resource_typeThe type of resource that changed.
resource_idUUID of the affected resource.
resource_urlAPI path to fetch the resource.
user_idUUID of the user who triggered the change, if available.
timestampISO 8601 timestamp of when the event was dispatched.
Payloads intentionally do not include the resource data itself. Use the resource_url to fetch the current state of the resource from the API.

Available events

ResourceEvents
contextcreated, updated, deleted
connectorcreated, updated, deleted
filecreated, deleted
file_extractioncreated, deleted
model_providercreated, updated, deleted
providercreated, updated, deleted
provider_buildcreated, updated, deleted
provider_discoverycreated
usercreated, updated, deleted
user_feedbackcreated
vector_storecreated, updated, deleted

Example: multiple endpoints with filtered events

webhook:
  endpoints:
    - url: "https://ci.example.com/hooks/agentstack"
      headers:
        Authorization: "Bearer ci-token"
      events: ["provider_build.*"]

    - url: "https://monitoring.example.com/ingest"
      headers:
        X-API-Key: "monitoring-key"
      events: ["*"]