Setup
Dashboard Setup
- Go to Notifications in the sidebar
- Click Add Channel → WebSocket
- Select the Enable Websocket real-time streaming checkbox.

Receive real-time event notifications via WebSockets
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);
});

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;
}
});
{
"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"
}
}