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

  1. Go to Settings → Webhooks.
  2. Click Add Webhook.
  3. Enter your endpoint URL and select the event types you want.
  4. Copy the signing secret — you'll use it to verify payloads.

Event types

EventFires when
task.createdA new task is created
task.updatedA task field changes (status, assignee, title, etc.)
task.deletedA task is deleted
task.archivedA task is archived
cron.run.completedA cron job finishes (success or failure)
cron.run.failedA 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.