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>.