Realtime · Socket.IO

Integrations

Join an integration room, execute endpoints, test, webhooks, and usage.

Join

Request:

json
{ "projectId": "6958511e8397f2dfa88090d8", "integrationId": "64b2c3d4e5f6789012345678" }
{ "projectId": "6958511e8397f2dfa88090d8", "integrationId": "64b2c3d4e5f6789012345678" }

Success — integration:joined:

json
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "projectId": "6958511e8397f2dfa88090d8",
  "room": "integration:64b2c3d4e5f6789012345678"
}
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "projectId": "6958511e8397f2dfa88090d8",
  "room": "integration:64b2c3d4e5f6789012345678"
}

Execute

Request:

json
{
  "projectId": "6958511e8397f2dfa88090d8",
  "integrationId": "64b2c3d4e5f6789012345678",
  "endpoint": "getUserTweets",
  "params": { "userId": "123" },
  "requestData": {}
}
{
  "projectId": "6958511e8397f2dfa88090d8",
  "integrationId": "64b2c3d4e5f6789012345678",
  "endpoint": "getUserTweets",
  "params": { "userId": "123" },
  "requestData": {}
}

Room (others): integration:execution:started integration:execution:completed (summary: success) or integration:execution:failed.

Caller — integration:execution:completed:

json
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "endpoint": "getUserTweets",
  "result": { "success": true, "data": {} },
  "timestamp": "2026-03-18T10:00:00.000Z"
}
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "endpoint": "getUserTweets",
  "result": { "success": true, "data": {} },
  "timestamp": "2026-03-18T10:00:00.000Z"
}

Test

Request: { "projectId", "integrationId", "endpoint": "healthCheck" }
Flow: integration:test:started (room) → integration:test:completed / failed.

Status

Response integration:status:response:

json
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "status": {
    "isActive": true,
    "usage": {},
    "rateLimit": null,
    "lastUsed": "2026-03-17T22:00:00.000Z"
  },
  "timestamp": "2026-03-18T10:00:00.000Z"
}
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "status": {
    "isActive": true,
    "usage": {},
    "rateLimit": null,
    "lastUsed": "2026-03-17T22:00:00.000Z"
  },
  "timestamp": "2026-03-18T10:00:00.000Z"
}

Webhook mirror

After integration:webhook:subscribe, inbound webhooks can push:

json
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "event": "stripe.invoice.paid",
  "data": {},
  "timestamp": "2026-03-18T10:00:00.000Z"
}
{
  "integrationId": "64b2c3d4e5f6789012345678",
  "event": "stripe.invoice.paid",
  "data": {},
  "timestamp": "2026-03-18T10:00:00.000Z"
}

Event name: integration:webhook:received.

Usage push

integration:usage:updated → room integration:<id>.