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.