Skip to main content
Connect to Kadoa’s WebSocket server for instant event notifications. Kadoa broadcasts events to your connected clients.

Setup

import { KadoaClient } from "@kadoa/node-sdk";

const client = new KadoaClient({ apiKey: "your-api-key" });
const realtime = await client.connectRealtime();

realtime.onEvent((event) => {
  console.log("Event:", event.eventType, event.message);
});

realtime.onConnection((connected) => {
  console.log("Connected:", connected);
});

realtime.onError((error) => {
  console.error("Error:", error);
});
For API configuration, see the API reference.

Dashboard Setup

  1. Go to Notifications in the sidebar
  2. Click Add ChannelWebSocket
  3. Select the Enable Websocket real-time streaming checkbox.
WebSocket setup

Event Handling

Filter events by type:
realtime.onEvent((event) => {
  switch (event.eventType) {
    case "workflow_finished":
      console.log("Workflow completed:", event.message.id);
      break;
    case "workflow_data_change":
      console.log("Data changed:", event.message.differences);
      break;
    case "workflow_failed":
      console.log("Workflow failed:", event.message.reason);
      break;
  }
});

Event Format

All events follow this structure:
{
  "eventType": "event_name",
  "id": "event-uuid",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "message": { /* event-specific data */ }
}
{
  "eventType": "workflow_data_change",
  "id": "2df91fbd-74c1-4d11-91aa-50030393574b",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "message": {
    "id": "change_123",
    "workflowId": "wf_123",
    "data": [
      { "id": "record-1", "name": "Product A", "price": 29.99 }
    ],
    "differences": [
      {
        "type": "changed",
        "fields": [
          { "key": "price", "value": 29.99, "previousValue": 24.99 }
        ]
      }
    ],
    "url": "https://monitored-page.com",
    "createdAt": "2025-01-09T10:00:00Z"
  }
}