Event catalog
All events share the common
envelope; this page documents
the data payload per event type.
Available event types:
| Event type | Description |
|---|---|
call.status | The call state of an agent’s extension changed |
agent.status | An agent’s presence/status changed |
interaction.text | A text interaction (web chat, WhatsApp, SMS, social) was offered to or updated for an agent |
interaction.email | An email interaction was offered to or updated for an agent |
interaction.ended | An interaction was completed and removed from the agent |
call.status
Section titled “call.status”Emitted whenever the call state of an agent’s extension changes: an incoming call starts ringing, a call is answered, held, resumed, or released, a consultation call is set up, and so on.
stateDiagram-v2
direction LR
[*] --> Originated: outbound dial
[*] --> Delivered: incoming call rings
Originated --> Connected: answered
Delivered --> Connected: answered
Connected --> OnHold: hold
OnHold --> Connected: resume
Connected --> Released: hang up / transfer
Released --> [*]
Example
Section titled “Example”{ "deliveryId": "8f7c1a4e-2d3b-4c5a-9e8f-6a7b8c9d0e1f", "eventType": "call.status", "occurredAt": "2026-07-21T09:15:23.412+00:00", "tenant": "customer.unexus.nl", "data": { "extensionCallStatus": { "extension": "201", "user": "agent1@customer.unexus.nl", "numberOfCalls": 1, "currentActive": 1, "status1": 5, "status2": 0, "cause1": 0, "cause2": 0, "call1Ref": "b6d2f8a0-1c2d-4e5f-8a9b-0c1d2e3f4a5b", "ctiCallID1": 10482, "ctiCallID2": 0, "call2Ref": null, "cli1": "+31201234567", "cli2": null }, "uri": "agent1@customer.unexus.nl", "tenant": "customer.unexus.nl", "traceParent": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" }}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
uri | string | Agent/user URI this status applies to. |
tenant | string | Tenant identifier. |
traceParent | string | null | W3C trace context for cross-system correlation. |
extensionCallStatus.extension | string | The extension number. |
extensionCallStatus.user | string | User bound to the extension. |
extensionCallStatus.numberOfCalls | number | Number of calls on the extension (0, 1 or 2). |
extensionCallStatus.currentActive | number | Which call is currently active (1 or 2). |
extensionCallStatus.status1 | number | Status of the first call (see call progress codes). |
extensionCallStatus.status2 | number | Status of the second/consultation call. |
extensionCallStatus.cause1 | number | Cause of the first call’s status (see cause codes). |
extensionCallStatus.cause2 | number | Cause of the second call’s status. |
extensionCallStatus.call1Ref | string | null | Reference of the first call. Stable across the call’s lifetime — use it to correlate events for the same call. |
extensionCallStatus.call2Ref | string | null | Reference of the second/consultation call. |
extensionCallStatus.ctiCallID1 | number | CTI call id of the first call. |
extensionCallStatus.ctiCallID2 | number | CTI call id of the second call. |
extensionCallStatus.cli1 | string | null | Identity of the remote party of the first call. |
extensionCallStatus.cli2 | string | null | Identity of the remote party of the second call. |
Call progress codes (status1, status2)
Section titled “Call progress codes (status1, status2)”| Value | Meaning |
|---|---|
| 0 | None |
| 1 | Originated (outbound call started) |
| 2 | Busy |
| 3 | Delivered (ringing) |
| 4 | Released (call ended) |
| 5 | Connected |
| 6 | On hold |
| 7 | Conferenced |
| 8 | Queued |
| 9 | Error |
| 10 | Failed |
Cause codes (cause1, cause2)
Section titled “Cause codes (cause1, cause2)”| Value | Meaning |
|---|---|
| 0 | None |
| 1 | Transferred |
| 2 | Unconferenced |
| 3 | Diverted |
| 4 | Busy |
| 5 | Call pickup |
| 6 | Failure |
| 7 | Do not disturb |
| 8 | Intruded |
| 9 | Un-intruded |
agent.status
Section titled “agent.status”Emitted whenever an agent’s presence/status changes: logging on or off, going available, starting after-call work, being connected to an interaction, etc.
Example
Section titled “Example”{ "deliveryId": "3c9e2b1d-5f6a-4b7c-8d9e-0f1a2b3c4d5e", "eventType": "agent.status", "occurredAt": "2026-07-21T09:16:02.007+00:00", "tenant": "customer.unexus.nl", "data": { "agentStatusData": { "userStatusData": { "uri": "agent1@customer.unexus.nl", "status": 2, "until": null, "untilDT": "0001-01-01T00:00:00", "statusCode": "2", "statusFrom": "2026-07-21T09:16:02", "statusSource": 1, "device": "201", "message": null, "displayName": "Agent One", "location": null, "loggedOnAsAgent": true, "terminalCapabilities": 3, "deviceStatus": 0, "clientTypes": [1], "deviceStatusFrom": "2026-07-21T09:16:02" }, "connectedWith": null, "statusTimeLeft": 0, "acwTime": 0, "interactions": [], "assistanceState": 0, "assistanceSupervisor": null, "counts": {}, "pws": 2 }, "uri": "agent1@customer.unexus.nl", "tenant": "customer.unexus.nl", "traceParent": null }}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
uri | string | Agent/user URI this status applies to. |
tenant | string | Tenant identifier. |
traceParent | string | null | W3C trace context for correlation. |
agentStatusData.userStatusData.uri | string | Agent/user URI. |
agentStatusData.userStatusData.status | number | Current user status (see user status codes). |
agentStatusData.userStatusData.until | string | null | When a time-limited status expires. |
agentStatusData.userStatusData.statusFrom | string | When the current status started. |
agentStatusData.userStatusData.statusSource | number | Origin of the status: 0 = system, 1 = user, 2 = other user, 3 = calendar, 4 = Teams. |
agentStatusData.userStatusData.device | string | null | The agent’s device/extension. |
agentStatusData.userStatusData.message | string | null | Free-text status message. |
agentStatusData.userStatusData.displayName | string | Display name of the agent. |
agentStatusData.userStatusData.location | string | null | Agent’s location. |
agentStatusData.userStatusData.loggedOnAsAgent | boolean | Whether the user is logged on as contact center agent. |
agentStatusData.userStatusData.deviceStatus | number | Extension status: 0 = free, 1 = ringing, 2 = busy, 3 = released. |
agentStatusData.connectedWith | string | null | Party the agent is currently connected with. |
agentStatusData.statusTimeLeft | number | Seconds remaining for a time-limited status. |
agentStatusData.acwTime | number | After-call-work time in seconds. |
agentStatusData.interactions | string[] | Identifiers of the agent’s active interactions. |
agentStatusData.assistanceState | number | Supervisor assistance state. |
agentStatusData.assistanceSupervisor | string | null | Supervisor providing assistance. |
agentStatusData.counts | object | Named counters (installation specific). |
agentStatusData.pws | number | Personal work status (same code table as status). |
interaction.text
Section titled “interaction.text”Emitted when a text interaction — web chat, WhatsApp, SMS or another social messaging channel — is offered to an agent, or updated while the agent is handling it.
Example
Section titled “Example”{ "deliveryId": "5d4c3b2a-1e0f-4a9b-8c7d-6e5f4a3b2c1d", "eventType": "interaction.text", "occurredAt": "2026-07-21T09:17:45.230+00:00", "tenant": "customer.unexus.nl", "data": { "interactionBase": { "agent": "agent1@customer.unexus.nl", "arrival": "2026-07-21T09:17:12.480+00:00", "channelURI": "whatsapp:+31201234567", "contactNotes": null, "contactURI": "whatsapp:+31612345678", "displayFor": null, "displayName": "+31612345678", "displayRestricted": false, "displayText": null, "emailURL": null, "history": "", "id": 3021, "interactionType": 11, "isDone": false, "isDiscarded": false, "jobID": 0, "language": "nl", "mandatoryCQ": false, "medium": 3, "mediumEx": 32, "multipleCQ": false, "outboundServiceType": 0, "priority": 3, "rcdid": null, "ref": "c7e3f9b1-4d5e-4f6a-8b9c-1d2e3f4a5b6c", "router": "TextRouter", "routerInfo": null, "server": "ucs-server-01", "service": "WhatsApp Support", "serviceNumber": "+31201234567", "skill1": "support", "skill2": null, "sourceURL": null, "waitingTime": 33, "tenant": "customer.unexus.nl", "traceParent": null }, "uri": "agent1@customer.unexus.nl", "tenant": "customer.unexus.nl", "traceParent": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" }}Fields
Section titled “Fields”All interaction.* events share the same data payload; see
interaction payload fields.
interaction.email
Section titled “interaction.email”Emitted when an email interaction is offered to an agent, or updated while the agent is handling it.
Example
Section titled “Example”{ "deliveryId": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b", "eventType": "interaction.email", "occurredAt": "2026-07-21T09:20:11.804+00:00", "tenant": "customer.unexus.nl", "data": { "interactionBase": { "agent": "agent1@customer.unexus.nl", "arrival": "2026-07-21T09:05:41.006+00:00", "channelURI": "support@customer.example", "contactNotes": null, "contactURI": "mailto:jan.devries@example.com", "displayFor": null, "displayName": "Jan de Vries", "displayRestricted": false, "displayText": "Question about my invoice", "emailURL": "email://store/2026/07/21/4f2a9c.eml", "history": "", "id": 3022, "interactionType": 10, "isDone": false, "isDiscarded": false, "jobID": 0, "language": "nl", "mandatoryCQ": false, "medium": 1, "mediumEx": 11, "multipleCQ": false, "outboundServiceType": 0, "priority": 3, "rcdid": null, "ref": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "router": "EmailRouter", "routerInfo": null, "server": "ucs-server-01", "service": "Support Mailbox", "serviceNumber": "support@customer.example", "skill1": "billing", "skill2": null, "sourceURL": null, "waitingTime": 870, "tenant": "customer.unexus.nl", "traceParent": null }, "uri": "agent1@customer.unexus.nl", "tenant": "customer.unexus.nl", "traceParent": null }}Fields
Section titled “Fields”All interaction.* events share the same data payload; see
interaction payload fields.
interaction.ended
Section titled “interaction.ended”Emitted when an interaction ends and is removed from the agent: the agent finished handling it, it was discarded, or it was transferred elsewhere.
Example
Section titled “Example”{ "deliveryId": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9", "eventType": "interaction.ended", "occurredAt": "2026-07-21T09:26:37.551+00:00", "tenant": "customer.unexus.nl", "data": { "interactionBase": { "agent": "agent1@customer.unexus.nl", "arrival": "2026-07-21T09:17:12.480+00:00", "channelURI": "whatsapp:+31201234567", "contactNotes": null, "contactURI": "whatsapp:+31612345678", "displayFor": null, "displayName": "+31612345678", "displayRestricted": false, "displayText": null, "emailURL": null, "history": "", "id": 3021, "interactionType": 11, "isDone": true, "isDiscarded": false, "jobID": 0, "language": "nl", "mandatoryCQ": false, "medium": 3, "mediumEx": 32, "multipleCQ": false, "outboundServiceType": 0, "priority": 3, "rcdid": null, "ref": "c7e3f9b1-4d5e-4f6a-8b9c-1d2e3f4a5b6c", "router": "TextRouter", "routerInfo": null, "server": "ucs-server-01", "service": "WhatsApp Support", "serviceNumber": "+31201234567", "skill1": "support", "skill2": null, "sourceURL": null, "waitingTime": 33, "tenant": "customer.unexus.nl", "traceParent": null }, "uri": "agent1@customer.unexus.nl", "tenant": "customer.unexus.nl", "traceParent": null }}Fields
Section titled “Fields”All interaction.* events share the same data payload; see
interaction payload fields.
Interaction payload fields
Section titled “Interaction payload fields”Shared by interaction.text, interaction.email and interaction.ended.
Correlate events for the same interaction via interactionBase.ref.
| Field | Type | Description |
|---|---|---|
uri | string | Agent/user URI the interaction is offered to. |
tenant | string | Tenant identifier. |
traceParent | string | null | W3C trace context for cross-system correlation. |
interactionBase.id | number | Numeric id of the interaction. |
interactionBase.ref | string | Reference of the interaction. Stable across the interaction’s lifetime — use it to correlate interaction.* events. |
interactionBase.agent | string | Agent handling the interaction. |
interactionBase.arrival | string | When the interaction arrived in the contact center. |
interactionBase.waitingTime | number | Seconds the interaction waited before being offered. |
interactionBase.interactionType | number | Kind of interaction (see interaction types). |
interactionBase.medium | number | Media type group (see media types). |
interactionBase.mediumEx | number | Detailed media type (see media types). |
interactionBase.priority | number | Priority: 0 = idle, 1 = urgent, 2 = high, 3 = normal, 4 = low, 9 = emergency. |
interactionBase.channelURI | string | null | Address of the channel the interaction arrived on. |
interactionBase.contactURI | string | null | Address of the contact (customer). |
interactionBase.contactNotes | object | null | Notes attached to the contact. |
interactionBase.displayName | string | Display name of the contact. |
interactionBase.displayText | string | null | Text to display for the interaction (e.g. email subject). |
interactionBase.displayFor | string | null | Party the display information applies to. |
interactionBase.displayRestricted | boolean | Whether display of the contact identity is restricted. |
interactionBase.emailURL | string | null | Internal reference to the email content (email interactions only). |
interactionBase.history | string | Routing history of the interaction. |
interactionBase.isDone | boolean | Whether handling of the interaction completed. |
interactionBase.isDiscarded | boolean | Whether the interaction was discarded. |
interactionBase.jobID | number | Outbound job id (0 when not part of an outbound job). |
interactionBase.outboundServiceType | number | Type of outbound service, when applicable. |
interactionBase.language | string | null | Language of the interaction. |
interactionBase.mandatoryCQ | boolean | Whether contact qualification is mandatory. |
interactionBase.multipleCQ | boolean | Whether multiple contact qualifications are allowed. |
interactionBase.rcdid | string | null | Recording id, when the interaction is recorded. |
interactionBase.router | string | null | Router that routed the interaction. |
interactionBase.routerInfo | string | null | Additional routing information. |
interactionBase.server | string | null | Server handling the interaction. |
interactionBase.service | string | null | Service the interaction belongs to. |
interactionBase.serviceNumber | string | null | Number/address of the service. |
interactionBase.skill1 | string | null | Primary skill used for routing. |
interactionBase.skill2 | string | null | Secondary skill used for routing. |
interactionBase.sourceURL | string | null | Source URL (web chat interactions). |
interactionBase.tenant | string | Tenant identifier. |
interactionBase.traceParent | string | null | W3C trace context for correlation. |
Interaction types (interactionBase.interactionType)
Section titled “Interaction types (interactionBase.interactionType)”| Value | Meaning |
|---|---|
| 0 | None |
| 1 | Incoming call |
| 2 | Diverted call |
| 3 | Transferred call |
| 4 | Outgoing call |
| 5 | Routed call |
| 6 | Rerouted message |
| 7 | Outbound call |
| 8 | Callback call |
| 9 | Web callback call |
| 10 | |
| 11 | Text |
| 12 | Web chat |
| 13 | Work item |
Media types (interactionBase.mediumEx)
Section titled “Media types (interactionBase.mediumEx)”medium is the media type group: 0 = phone, 1 = email, 2 = web chat, 3 = text,
4 = work item, 9 = none. mediumEx is the detailed media type:
| Value | Meaning |
|---|---|
| 0 | Phone call |
| 1 | Voice mail |
| 10 | Email (background) |
| 11 | Email (foreground) |
| 20 | Web chat |
| 30 | SMS |
| 31 | Instant message |
| 32 | |
| 33 | Facebook timeline |
| 34 | Facebook Messenger |
| 36 | Signal messenger |
| 40 | Work item |
| 99 | None |