Skip to content

Webhooks

Set up real-time event notifications with webhooks.

Overview

Webhooks allow your application to receive real-time notifications when events occur in de.iterate. Instead of polling the API for changes, webhooks push data to your application as events happen.

Setting Up Webhooks

typescript
const webhook = await client.webhooks.create({
  url: 'https://your-app.com/webhooks/deiterate',
  events: ['risk.created', 'risk.updated', 'task.overdue'],
  secret: 'your-webhook-secret',
});

Available Events

EventDescription
risk.createdA new risk was added
risk.updatedA risk was modified
risk.deletedA risk was removed
risk.reviewedA risk was marked as reviewed
asset.createdA new asset was added
asset.updatedAn asset was modified
asset.deletedAn asset was removed
asset.reviewedAn asset was marked as reviewed
task.createdA new task was created
task.assignedA task was assigned
task.completedA task was completed
task.overdueA task became overdue
document.createdA document was uploaded
document.updatedA document was modified
document.expiredA document's review date passed
audit.completedAn audit was completed

Verifying Webhook Signatures

Always verify webhook signatures to ensure requests are from de.iterate:

typescript
import crypto from 'crypto';

function verifySignature(payload: string, signature: string, secret: string): boolean {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}

Webhook Payload Structure

typescript
interface WebhookEvent {
  id: string;
  type: string;
  createdAt: string;
  data: {
    object: any;
    previousAttributes?: any;
  };
}

Best Practices

  1. Respond quickly - Return a 200 status within 5 seconds
  2. Process asynchronously - Queue events for background processing
  3. Handle retries - Webhooks are retried on failure
  4. Verify signatures - Always validate the webhook signature
  5. Use HTTPS - Only use secure endpoints

Next Steps

Released under the MIT License.