Skip to main content
Make sure your webhook endpoint is accessible

SDK Integration

Quick Setup

Create a webhook channel and subscribe to events in one call:
await client.notification.setupForWorkflow({
  workflowId: 'your-workflow-id',
  events: ['workflow_data_change'],
  channels: {
    WEBHOOK: {
      name: 'api-integration',
      url: 'https://api.example.com/webhooks/kadoa',
      httpMethod: 'POST'
    }
  }
});

Channel Management

For more control over webhook channels, use the channel management methods:
// Create webhook channel
const channel = await client.notification.channels.createChannel({
  channelType: 'WEBHOOK',
  name: 'api-integration',
  config: {
    webhookUrl: 'https://api.example.com/webhooks/kadoa',
    httpMethod: 'POST'
  }
});

// List all channels
const channels = await client.notification.channels.listChannels({});

// Delete a channel
await client.notification.channels.deleteChannel('channel-id');
For API configuration, see the API reference.

UI Configuration

For non-technical users who prefer a visual interface:
  1. Add a webhook channel via the notifications tab in the left sidebar or notifications tab in a workflow
Screenshot of webhook channel selection in workspace UI
  1. Subscribe to events by selecting the webhook channel in workspace settings or workflow-specific settings
Screenshot of webhook channel selection in workspace UI

Event Payload Examples

Kadoa sends a POST request to your webhook URL with different payload structures depending on the event type:
  • workflow_data_change
  • workflow_finished
  • workflow_failed
Triggered when data changes are detected in monitored workflows:
{
  "eventType": "workflow_data_change",
  "timestamp": "2025-01-01T00:00:00.000Z",
  "data": {
    "id": "change-id",
    "workflowId": "workflow-id",
    "data": [...],
    "differences": [...],
    "url": "https://monitored-page.com",
    "createdAt": "2025-01-09T10:00:00Z",
    "metadata": {
      "workflowName": "My Workflow",
      "tags": ["tag1", "tag2"]
    }
  }
}