Skip to content

Event catalog

All events share the common envelope; this page documents the data payload per event type.

Available event types:

Event typeDescription
call.statusThe call state of an agent’s extension changed
agent.statusAn agent’s presence/status changed
interaction.textA text interaction (web chat, WhatsApp, SMS, social) was offered to or updated for an agent
interaction.emailAn email interaction was offered to or updated for an agent
interaction.endedAn interaction was completed and removed from the agent

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 --> [*]
{
"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"
}
}
FieldTypeDescription
uristringAgent/user URI this status applies to.
tenantstringTenant identifier.
traceParentstring | nullW3C trace context for cross-system correlation.
extensionCallStatus.extensionstringThe extension number.
extensionCallStatus.userstringUser bound to the extension.
extensionCallStatus.numberOfCallsnumberNumber of calls on the extension (0, 1 or 2).
extensionCallStatus.currentActivenumberWhich call is currently active (1 or 2).
extensionCallStatus.status1numberStatus of the first call (see call progress codes).
extensionCallStatus.status2numberStatus of the second/consultation call.
extensionCallStatus.cause1numberCause of the first call’s status (see cause codes).
extensionCallStatus.cause2numberCause of the second call’s status.
extensionCallStatus.call1Refstring | nullReference of the first call. Stable across the call’s lifetime — use it to correlate events for the same call.
extensionCallStatus.call2Refstring | nullReference of the second/consultation call.
extensionCallStatus.ctiCallID1numberCTI call id of the first call.
extensionCallStatus.ctiCallID2numberCTI call id of the second call.
extensionCallStatus.cli1string | nullIdentity of the remote party of the first call.
extensionCallStatus.cli2string | nullIdentity of the remote party of the second call.
ValueMeaning
0None
1Originated (outbound call started)
2Busy
3Delivered (ringing)
4Released (call ended)
5Connected
6On hold
7Conferenced
8Queued
9Error
10Failed
ValueMeaning
0None
1Transferred
2Unconferenced
3Diverted
4Busy
5Call pickup
6Failure
7Do not disturb
8Intruded
9Un-intruded

Emitted whenever an agent’s presence/status changes: logging on or off, going available, starting after-call work, being connected to an interaction, etc.

{
"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
}
}
FieldTypeDescription
uristringAgent/user URI this status applies to.
tenantstringTenant identifier.
traceParentstring | nullW3C trace context for correlation.
agentStatusData.userStatusData.uristringAgent/user URI.
agentStatusData.userStatusData.statusnumberCurrent user status (see user status codes).
agentStatusData.userStatusData.untilstring | nullWhen a time-limited status expires.
agentStatusData.userStatusData.statusFromstringWhen the current status started.
agentStatusData.userStatusData.statusSourcenumberOrigin of the status: 0 = system, 1 = user, 2 = other user, 3 = calendar, 4 = Teams.
agentStatusData.userStatusData.devicestring | nullThe agent’s device/extension.
agentStatusData.userStatusData.messagestring | nullFree-text status message.
agentStatusData.userStatusData.displayNamestringDisplay name of the agent.
agentStatusData.userStatusData.locationstring | nullAgent’s location.
agentStatusData.userStatusData.loggedOnAsAgentbooleanWhether the user is logged on as contact center agent.
agentStatusData.userStatusData.deviceStatusnumberExtension status: 0 = free, 1 = ringing, 2 = busy, 3 = released.
agentStatusData.connectedWithstring | nullParty the agent is currently connected with.
agentStatusData.statusTimeLeftnumberSeconds remaining for a time-limited status.
agentStatusData.acwTimenumberAfter-call-work time in seconds.
agentStatusData.interactionsstring[]Identifiers of the agent’s active interactions.
agentStatusData.assistanceStatenumberSupervisor assistance state.
agentStatusData.assistanceSupervisorstring | nullSupervisor providing assistance.
agentStatusData.countsobjectNamed counters (installation specific).
agentStatusData.pwsnumberPersonal work status (same code table as status).

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.

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

All interaction.* events share the same data payload; see interaction payload fields.


Emitted when an email interaction is offered to an agent, or updated while the agent is handling it.

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

All interaction.* events share the same data payload; see interaction payload fields.


Emitted when an interaction ends and is removed from the agent: the agent finished handling it, it was discarded, or it was transferred elsewhere.

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

All interaction.* events share the same data payload; see interaction payload fields.


Shared by interaction.text, interaction.email and interaction.ended. Correlate events for the same interaction via interactionBase.ref.

FieldTypeDescription
uristringAgent/user URI the interaction is offered to.
tenantstringTenant identifier.
traceParentstring | nullW3C trace context for cross-system correlation.
interactionBase.idnumberNumeric id of the interaction.
interactionBase.refstringReference of the interaction. Stable across the interaction’s lifetime — use it to correlate interaction.* events.
interactionBase.agentstringAgent handling the interaction.
interactionBase.arrivalstringWhen the interaction arrived in the contact center.
interactionBase.waitingTimenumberSeconds the interaction waited before being offered.
interactionBase.interactionTypenumberKind of interaction (see interaction types).
interactionBase.mediumnumberMedia type group (see media types).
interactionBase.mediumExnumberDetailed media type (see media types).
interactionBase.prioritynumberPriority: 0 = idle, 1 = urgent, 2 = high, 3 = normal, 4 = low, 9 = emergency.
interactionBase.channelURIstring | nullAddress of the channel the interaction arrived on.
interactionBase.contactURIstring | nullAddress of the contact (customer).
interactionBase.contactNotesobject | nullNotes attached to the contact.
interactionBase.displayNamestringDisplay name of the contact.
interactionBase.displayTextstring | nullText to display for the interaction (e.g. email subject).
interactionBase.displayForstring | nullParty the display information applies to.
interactionBase.displayRestrictedbooleanWhether display of the contact identity is restricted.
interactionBase.emailURLstring | nullInternal reference to the email content (email interactions only).
interactionBase.historystringRouting history of the interaction.
interactionBase.isDonebooleanWhether handling of the interaction completed.
interactionBase.isDiscardedbooleanWhether the interaction was discarded.
interactionBase.jobIDnumberOutbound job id (0 when not part of an outbound job).
interactionBase.outboundServiceTypenumberType of outbound service, when applicable.
interactionBase.languagestring | nullLanguage of the interaction.
interactionBase.mandatoryCQbooleanWhether contact qualification is mandatory.
interactionBase.multipleCQbooleanWhether multiple contact qualifications are allowed.
interactionBase.rcdidstring | nullRecording id, when the interaction is recorded.
interactionBase.routerstring | nullRouter that routed the interaction.
interactionBase.routerInfostring | nullAdditional routing information.
interactionBase.serverstring | nullServer handling the interaction.
interactionBase.servicestring | nullService the interaction belongs to.
interactionBase.serviceNumberstring | nullNumber/address of the service.
interactionBase.skill1string | nullPrimary skill used for routing.
interactionBase.skill2string | nullSecondary skill used for routing.
interactionBase.sourceURLstring | nullSource URL (web chat interactions).
interactionBase.tenantstringTenant identifier.
interactionBase.traceParentstring | nullW3C trace context for correlation.

Interaction types (interactionBase.interactionType)

Section titled “Interaction types (interactionBase.interactionType)”
ValueMeaning
0None
1Incoming call
2Diverted call
3Transferred call
4Outgoing call
5Routed call
6Rerouted message
7Outbound call
8Callback call
9Web callback call
10Email
11Text
12Web chat
13Work item

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:

ValueMeaning
0Phone call
1Voice mail
10Email (background)
11Email (foreground)
20Web chat
30SMS
31Instant message
32WhatsApp
33Facebook timeline
34Facebook Messenger
36Signal messenger
40Work item
99None