Skip to main content

Automations

Automations let you trigger Nimbus tasks automatically — on a schedule, via webhook, or when a CI pipeline fails.

Trigger types

TypeTrigger
webhookIncoming POST request matching a pattern
cronOn a schedule (cron expression)
github_ci_failWhen a GitHub Actions workflow fails

Create an automation

curl -X POST https://api.get-nimbus.com/automations \
-H "X-API-Key: $NIMBUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"repo_id": "your-repo-id",
"trigger_type": "cron",
"trigger_config": {
"schedule": "0 9 * * 1"
},
"task_template": "Run the dependency-cve agent on this codebase",
"enabled": true
}'

Webhook trigger

For webhook automations, you can match on any field in the incoming payload:

{
"trigger_type": "webhook",
"trigger_config": {
"match": {
"action": "opened",
"issue.labels[0].name": "nimbus"
}
},
"task_template": "Fix the bug described in: {{issue.title}}\n\n{{issue.body}}"
}

Webhook receiver endpoint

POST https://api.get-nimbus.com/automations/webhook

Send any JSON payload. Nimbus evaluates all enabled webhook automations and fires the matching ones.

Task template interpolation

Use {{field}} syntax to inject values from the webhook payload into the task description:

"task_template": "Fix the P1 incident: {{alert.title}}\n\nError: {{alert.details.message}}"

Nested paths use dot notation. Array access uses bracket notation ({{labels[0].name}}).

Managing automations

# List automations
curl https://api.get-nimbus.com/automations \
-H "X-API-Key: $NIMBUS_API_KEY"

# Update (e.g., disable)
curl -X PATCH https://api.get-nimbus.com/automations/<id> \
-H "X-API-Key: $NIMBUS_API_KEY" \
-d '{"enabled": false}'

# Delete
curl -X DELETE https://api.get-nimbus.com/automations/<id> \
-H "X-API-Key: $NIMBUS_API_KEY"

You can also manage automations in the dashboard at get-nimbus.com/dashboard under Automations.

Example: PagerDuty P1 auto-fix

Configure PagerDuty to POST to your webhook receiver when a P1 alert fires:

{
"trigger_type": "webhook",
"trigger_config": {
"match": {
"event.severity": "critical"
}
},
"task_template": "A P1 production incident is active: {{event.title}}\n\nLogs: {{event.details}}\n\nInvestigate the likely root cause and implement a fix."
}

Example: weekly dependency audit

Every Monday at 9am UTC:

{
"trigger_type": "cron",
"trigger_config": {
"schedule": "0 9 * * 1"
},
"task_template": "Run the dependency-cve agent and open a PR with all safe dependency upgrades."
}