Webhooks
Action Llama agents can be triggered by webhooks in addition to (or instead of) cron schedules.Defining Webhook Sources
Webhook sources are defined once in the project’sconfig.toml. Each source has a name, a provider type, and an optional credential for signature validation:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Provider type: "github", "sentry", "linear", or "mintlify" |
credential | string | No | Credential instance name for HMAC signature validation. Omit for unsigned webhooks. |
Agent Webhook Triggers
Agents reference a webhook source by name and add filters in theiragent-config.toml:
[[webhooks]] entry is a trigger. The source field (referencing a name from config.toml) is required. All filter fields (repos, events, actions, labels, etc.) are optional — omit all of them to trigger on everything from that source.
An agent must have at least one of schedule or webhooks (or both).
GitHub Webhooks
Filter Fields (all optional)
| Field | Type | Description |
|---|---|---|
repos | string[] | Only trigger for these repos |
orgs | string[] | Only trigger for these organizations |
org | string | Only trigger for this organization (singular form) |
events | string[] | GitHub event types (issues, pull_request, push, etc.) |
actions | string[] | Event actions (opened, labeled, closed, etc.) |
labels | string[] | Only when issue/PR has these labels |
assignee | string | Only when assigned to this user |
author | string | Only for this author |
branches | string[] | Only for these branches |
conclusions | string[] | Only for workflow_run events with these conclusions (success, failure, cancelled, skipped, timed_out, action_required) |
Setup
- In your GitHub repo, go to Settings > Webhooks > Add webhook
- Set the payload URL to your Action Llama gateway (e.g.
https://your-server:8080/webhooks/github) - Set content type to
application/json - Set the secret to match the
github_webhook_secretcredential instance referenced by the webhook source inconfig.toml - Select the events you want to receive
Using ngrok for Local Development
Sentry Webhooks
Filter Fields
| Field | Type | Description |
|---|---|---|
resources | string[] | Resource types: event_alert, metric_alert, issue, error, comment |
Setup
- In Sentry, go to Settings > Developer Settings > New Internal Integration
- Set the webhook URL to your gateway (e.g.
https://your-server:8080/webhooks/sentry) - Copy the client secret to
~/.action-llama/credentials/sentry_client_secret/<instance>/secret - Select the resource types you want to receive
How Webhooks Work at Runtime
- The gateway receives a webhook POST request at
/webhooks/<type>(e.g./webhooks/github) - It verifies the payload signature using secrets loaded from the credential instances defined in
config.tomlwebhook sources - It parses the event into a
WebhookContext(source, event, action, repo, etc.) - It matches the context against each agent’s webhook triggers
- Matching agents are triggered with the webhook context injected into their prompt
Linear Webhooks
Filter Fields (all optional)
| Field | Type | Description |
|---|---|---|
organizations | string[] | Only trigger for these Linear organizations |
events | string[] | Linear event types (issues, issue_comment, etc.) |
actions | string[] | Event actions (create, update, delete, etc.) |
labels | string[] | Only when issue has these labels |
assignee | string | Only when assigned to this user (email) |
author | string | Only for this author (email) |
Setup
- In Linear, go to Settings > Workspace > Webhooks
- Click Create webhook
- Set the URL to your Action Llama gateway (e.g.
https://your-server:8080/webhooks/linear) - Set the secret to match the
linear_webhook_secretcredential instance referenced by the webhook source inconfig.toml - Select the resource types you want to receive (Issues, Comments, etc.)
Example Configuration
Mintlify Webhooks
Filter Fields (all optional)
| Field | Type | Description |
|---|---|---|
projects | string[] | Only trigger for these Mintlify projects |
events | string[] | Mintlify event types (build, etc.) |
actions | string[] | Event actions (failed, succeeded, etc.) |
branches | string[] | Only for these branches |
Setup
- In Mintlify, go to your project settings
- Navigate to Webhooks or Integrations
- Add a webhook with URL:
https://your-server:8080/webhooks/mintlify - Set the secret to match the
mintlify_webhook_secretcredential instance referenced by the webhook source inconfig.toml - Select build events you want to receive (build failures, successes, etc.)
Example Configuration
- Access build logs via the Mintlify API (using
mintlify_tokencredential) - Diagnose build issues
- Fix documentation problems
- Trigger rebuilds
Hybrid Agents
Agents can have bothschedule and webhooks. Scheduled runs poll for work; webhook runs respond to events immediately.