Webhooks
Asistry can POST a JSON payload to any HTTPS URL when events happen — task status changes, cron job completions, agent actions. Use webhooks to trigger your own pipelines, Slack notifications, or CI/CD workflows.
Setting up a webhook
- Go to Settings → Webhooks.
- Click Add Webhook.
- Enter your endpoint URL and select the event types you want.
- Copy the signing secret — you'll use it to verify payloads.
Event types
| Event | Fires when |
|---|---|
task.created | A new task is created |
task.updated | A task field changes (status, assignee, title, etc.) |
task.deleted | A task is deleted |
task.archived | A task is archived |
cron.run.completed | A cron job finishes (success or failure) |
cron.run.failed | A cron job run fails |
Payload shape
// task.updated
{
"event": "task.updated",
"timestamp": "2026-05-20T20:00:00.000Z",
"data": {
"task": {
"id": "uuid",
"title": "...",
"status": "in_progress",
"previous_status": "todo",
"assignee": "jarvis",
"board_id": "uuid",
"updated_at": "2026-05-20T20:00:00.000Z"
}
}
}Verifying signatures
Every webhook request includes an X-Asistry-Signature header:sha256=<hmac>. Verify it with your signing secret:
// Node.js
import crypto from 'crypto'
function verify(payload: string, header: string, secret: string): boolean {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(header)
)
}Retries
Asistry retries failed deliveries (non-2xx or timeout) up to 3 times with exponential back-off: 5s, 30s, 5min. After 3 failures, the event is dropped and marked failed in the webhook log.