NAV Navbar
python csharp

Introduction

This document describes Enreach webhook implementation, providing integrators push notifications about events in Enreach core systems. This functionality supplements EnreachAPI, which is a RESTful API relying on request-response pattern unsuitable for notifications.

Simply put, webhooks send a HTTPS POST request to predefined URL whenever defined events occur in the system. The request contains JSON data providing information about the event instance.

For example, if the notification is about an incoming service pool call, the data might include arrival timestamp, caller number and target service pool. This information can then be used in the receiving end to perform any additional logic relating to the notification.

Some possible use scenarios include:

Note that Benemen was renamed to Enreach in 2022, and corresponding naming changes were applied to technical products and documentation as well. Some documentation and technical details (XML namespaces, domain names) may still contain Benemen references.

Configuration

Webhooks are configured in two steps. Any number of webhook endpoints are configured and then event subscriptions are bound to them.

Currently configuration can be managed by support only.

Sample configuration for one endpoint with two events

{
    "Webhook": {
        "Endpoint": "https://my.integration.com/wehook/",
        "InsecureSSL": true,
        "Secret": "MySecretString"
    },
    "Subscriptions": [
        {
            "EventType":"QueueCallInConnected",
            "AllEntities": true
        },
        {
            "EventType":"QueueCallInAllocated",
            "AllEntities":true
        }
    ]
}

Webhook endpoint

Webhook-receiving HTTPS endpoints are defined with following options:

Option Description Example value
Endpoint Full URL to endpoint https://my.integration.com/webhook/
InsecureSSL Enable self-signed SSL certificates (see SSL verification) true
Secret Secret string included in HTTP calls. See Secret token MySecretString

Subscription

Option Description Example value
EventType Name of event that should be notified (see event types) QueueCallInConnected
EntityId Id of specific entity to get events about e0072f3a-cc7c-42ee-b0ac-34cd7238150a
AllEntities Alternatively to specific EntityId, return events for all entities true

Secret token

If webhook configuration defines Secret parameter, that string will be included in X-Benemen-Token HTTP header in all requests. It should be verified to make sure the request is coming from the authorized server.

SSL verification

The HTTPS endpoint certificate is validated against known certificate authority list. This means that the certificate must be signed by a public Certificate Authority. Self-signed certificates cannot be used, unless explicitly enabled by the InsecureSSL flag in webhook configuration. Bypassing the certificate validation is discouraged in general, as it may expose the sensitive data to unauthorized parties.

Endpoint implementation

While implementing a webhook listener, several considerations should be noted.

The listener must work over HTTPS only. Plain HTTP is not allowed, as the payload is potentially very sensitive.

The listener must listen in default HTTPS port 443. Using other ports is not possible.

The listener should verify the Secret token sent in X-Benemen-Token header to verify sender identity.

The listener must respond as fast as possible with a 200 OK status code. It is important to perform any processing separately from responding to the webhook request. Otherwise you risk the request timing out and getting re-sent. Similarly, sending any other response code than 200 OK will make the request get re-sent.

The listener should not include any response body. It will be ignored in any case and simply causes unnecessary network traffic.

If the request times out or receives status code other than 200, it will be retried a few times and then discarded. This means that notifications are not guaranteed to be delivered exactly once, even though that is normally the case. If your implementation must be sure that each event is handled exactly once, keep track of handled events based on their Id.

Each endpoint can only define a single URL. No load-balancing sets or failovers are supported. If you require such functionalities, run your own load-balancer in front of the actual receivers.

Request payload

Example full request (line breaks in body added for readability)

POST /webhook/
X-Benemen-Event: QueueCallInUserAllocated
X-Benemen-Token: MySecretString
Content-Type: application/json; charset=utf-8
Host: my.integration.com
Content-Length: 656
Connection: Keep-Alive

{
    "RootEntityType":"Organization",
    "RootEntityId":"fd434d24-f685-431d-8df5-386b5d5ffa73",
    "EventType":"QueueCallInUserAllocated",
    "EntityType":"Queue",
    "EntityId":"6cb31d7d-9cd9-41dc-a096-62cf31fd0281",
    "CallId":"9cae633f-68d0-4315-8b9a-b83c7673d8dc",
    "QueueId":"6cb31d7d-9cd9-41dc-a096-62cf31fd0281",
    "OrganizationId":"fd434d24-f685-431d-8df5-386b5d5ffa73",
    "QueueName":"Sample queue 1",
    "QueueNumber":"+358101231234",
    "UserId":"b4df099e-70dc-4ff5-b4ea-c2c3547d97fb",
    "Username":"sample.agent@customer.com",
    "CallerNumber":"+358501231234",
    "TargetNumber":"+35810123",
    "Id":"85b214f2-1d27-4262-87b6-8f55b3199400",
    "Timestamp":"2018-01-01T08:01:23.45"
}

All requests include two specific HTTP headers:

Request body is always JSON encoded.

Common event properties

All event types have a basic set of properties defined. These are included to make it possible to process event payloads to some degree without explicit handling logic for each individual type. You might want to receive all webhooks in one endpoint but route them to different or several backends depending on the event type.

Property Type Description
Id Guid Unique event instance id. Can be used to keep track of handled events as well as troubleshooting
Timestamp DateTime Timestamp when event was initially instantiated (i.e. when the event happened)
RootEntityType RootEntityType Root entity type event relates to
RootEntityId Guid Id of root entity
EntityType EntityType Main entity type event relates to
EntityId Guid Id of main entity
EventType string Name of event

Root entity types

Root entity types are top-level containers events can be related to. Currently only Organization events are provided, meaning events relating to a single organization tenant as opposed to for example system-wide events.

Type Description
Undefined Undefined value for backwards-compatibility if new types are introduced later.
Organization Organization type. Currently all events belong to this root entity.

Entity types

Type Description
Undefined Undefined value for backwards-compatibility if new types are introduced later
User User type, i.e. normal end-user
Queue Service pool, i.e. a single queue handling service calls
CallList Call list handling call-back requests and outbound calling

User

Event: UserAvailability

User's current availability state

Property name Value type Description
Availability string Availability state, possible values: Available, Busy, DoNotDisturb, OffWork
EndTime DateTime End time of the state, DateTime.MaxValue if the state is continuous
EventSource String Availability event source from db
Note String User-defined message or description
OrganizationId Guid Id of related organization.
ProfileId Guid Id of the availability profile in database.
StartTime DateTime Start time of the state
UserId Guid Id of target user.
UserName string Username of target user.

Event: UserCallInArrived

Incoming call. Current target is user. Call entered for allocation.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of current target user.
UserName string Username of current target user.

Event: UserCallInComing

Incoming direct call to user entered BeneController.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of target user.
Username string Username of target user

Event: UserCallInDisconnected

User call was disconnected.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
Reason string Reason for the disconnect. 'remote' or 'local'
TargetNumber string Original called number.
TechReason string Technical reason (e.g SIP cause code) for the disconnect.
UserId Guid Id of current target user.
Username string Username of target user

Event: UserCallInOverflow

Incoming call, currently for user, overflows to next routing target.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
ConnectedTarget string Currently connected target.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
OverflowApplet string Overflow Applet name.
TargetNumber string Original called number.
TechEvent string Technical event.
TechNumber string Technical source type.
TechQueueId Guid Id of current technical queue.
TechQueueName string Name of current technical queue.
TechSource string Overflow source type.
UserId Guid Id of current user.
Username string Username of target user

Event: UserCallInTransferCancelled

Incoming call, currently targeted to user. Transfer cancelled.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Detailed cancellation reason.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
Reason string Cancellation reason.
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue.
TechQueueName string Name of current technical queue.
TechSource string Technical source type.
TransferApplet string Transferring Applet name.
UserId Guid Id of current user.
Username string Transferring user's username

Event: UserCallInTransferConnected

Incoming call, currently targeted to user. Transfer to overflow target connected.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
ConnectedTarget string Connected target.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue.
TechQueueName string Name of current technical queue.
TechSource string Technical source type.
TransferApplet string Transferring Applet name.
TransferSource string Transfer source.
UserId Guid Id of transferring current user.
Username string Transferring user's username

Event: UserCallInTransferStarted

Incoming call, currently targeted to user. Transfer to overflow target started.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue.
TechQueueName string Name of current technical queue.
TechSource string Technical source type.
TransferApplet string Transferring Applet name.
TransferSource string Transfer source.
TransferTarget string Transfer target, guid or phone number.
UserId Guid Id of current transferring user.
Username string Transferring user's username

Event: UserCallInUserAllocated

Incoming call, currently targeted to user. Call allocated to user.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Optional detailed reason for allocation.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of allocating User.
UserName string Allocation target username
UserNumber string Number of allocating User.

Event: UserCallInUserCancelled

Incoming call, currently targeted to user. Call allocation to user cancelled.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Detailed cancellation reason.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
Reason string Cancellation reason.
TargetNumber string Original called number.
UserId Guid Id of allocated user.
UserName string Username of cancelling user.

Event: UserCallInUserConnected

Incoming call, currently targeted to user. Call allocation to user connected.

Property name Value type Description
AgentLegId string LegId of of the forked call to agent
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of connected User.
UserName string Username of connected User.
UserNumber string Number of connected User.

Event: UserCallInUserOverflow

Worknumber call is overflowing to other destination

Property name Value type Description
CallerNumber string Original caller number
CallId Guid Id of core call event relates to
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization
Reason string Reason for the overflow: AVAActiveProfile, BusyForTechnicalError, DND, OffWork, NoAnswer, InterruptOverflow BusyOnBusy, TransferAll, BlindTransfer
Target string Transfer target. Guid or phone number, or list of targets.
TargetNumber string Original called number
UserId Guid Id of transferring "responsible" user
Username string Username

Event: UserCallOutConnected

Outgoing call

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of calling User.
UserName string Username of calling User.

Event: UserCallOutDisconnected

User call was disconnected.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
Reason string Reason for the disconnect. 'remote' or 'local'
TargetNumber string Original called number.
TechReason string Technical reason (e.g SIP cause code) for the disconnect.
UserId Guid Id of current calling user.
UserName string Username of current calling user.

Event: UserCallOutGoing

Outgoing direct call initiated by a user

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
TargetNumber string Original called number.
UserId Guid Id of calling user.
UserName string Username of calling user.

Event: UserStatus

UserStatus changed. UserStatus represents users status from queue components view. Contains information about users serving status, such as talking, available and the ultimate “can receive calls” result.

Property name Value type Description
ActiveQueueId Guid? Guid of the service queue the user can be presumed be talking right now
ActiveQueues int Number of active queues
Available bool If AVA status is "available", typically when not "DND".
CanBeAllocatedTo bool If it is possible to allocate a call to the user. This is a composite value from several status items, "best quess".
OrganizationId Guid Id of the related organization.
ParkedCalls int Number of parked calls
Schedule bool If AVA availability code is not OffWork
ServiceTerminals int Number of active terminals
Serving bool User is serving in queues
ServingCallback bool User is serving in callback list "queues"
Talking bool If the user is having a call right now. Incoming and outgoing calls are considered as active calls even before call is connected to user
UserId Guid Id of the user.
WrapUpEnd DateTime? If wrap up time is active then the end time, otherwise null

Event: UserSupervisionStatus

This is emitted when supervisor status relating to a call changed.

Property name Value type Description
CallId Guid Id of of the supervised call.
LegId string LegId of of the supervised call.
OrganizationId Guid Id of related organization.
QueueId Guid? Id of the service queue
QueueName string Name of the service queue
State SupervisionState Supervision state relating to the call.
SupervisorLegId string Optional LegId of of the supervisor incoming call.
SupervisorUserId Guid Id of the supervisor.
SupervisorUserName string User supervising.
TargetUserId Guid Id of target user.
TargetUserName string User being supervised.

Event: UserWrapUpEnabled

Event emitted after a service call connects to indicate that wrap-up time is enabled for the call. This is used by clients supporting wrap-up functionality to indicate to the end user that wrap-up time is in progress after the call completes.

This event is followed by UserWrapUpStarted and UserWrapUpTerminated events.

Property name Value type Description
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
MaxWrapUpDurationSec int Max wrap-up duration, seconds
OrganizationId Guid Id of related organization.
QueueId Guid Id of target user.
UserId Guid Id of target user.

Event: UserWrapUpStarted

Event emitted after a call with wrap-up functionality enabled disconnects and thus wrap-up time starts. It is relayed to supporting clients to indicate that wrap-up is ongoing and no calls are allocated during that time.

Property name Value type Description
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
MaxWrapUpDurationSec int Max wrap-up duration, seconds
OrganizationId Guid Id of related organization.
QueueId Guid Queue Id
UserId Guid Id of target user.

Event: UserWrapUpTerminated

Emitted after wrap-up time for given call ends. It is emitted both when the maximum allowed time is up, and when an explicit termination request has been handled by the backend.

Property name Value type Description
CallId Guid Id of core call event relates to.
ElapsedTimeSec int How long the wrap-up time was on
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Queue Id
Reason string Reason for termination: e.g "manual" or "timer"
UserId Guid Id of target user.

Queue

Event: QueueAttachedUsers

Incoming call was accepted into service queue.

Property name Value type Description
AttachedUsers List<QueueAttachedUser> List of attached users
OrganizationId Guid Id of related organization.
QueueId Guid Id of service queue.

Event: QueueCallInArrived

Incoming call was accepted into service queue.

Property name Value type Description
CallerNumber string Original caller number
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of allocating service queue.
QueueName string Name of allocating service queue.
QueueNumber string Number of allocating service queue
TargetNumber string Original called number

Event: QueueCallInComing

New incoming call to service or technical queue entered BeneController.

Property name Value type Description
CallerNumber string Original caller number
CallId Guid Id of core call event relates to
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization
QueueId Guid Id of service queue
QueueName string Name of target service or technical queue
QueueNumber string Number of target service or technical queue
TargetNumber string Original called number

Event: QueueCallInDisconnected

Incoming call. Current target is service or technical queue. Call was disconnected.

Property name Value type Description
CallerNumber string Original caller number
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization
QueueId Guid Id of last allocating service queue.
QueueName string Name of last allocating service queue
Reason string Reason for the disconnect. 'remote' or 'local'
TargetNumber string Original called number
TechReason string Informative technical local reason for the disconnect. E.g "busy_on_busy", "ivr_menu_failure" etc.

Event: QueueCallInOverflow

Incoming call. Current target is service or technical queue. Call overflows to next routing point.

Property name Value type Description
CallerNumber string Original caller number
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
OverflowApplet string Technical name of the current applet.
QueueId Guid Id of service queue responsible for overflow.
QueueName string Name of the service queue.
TargetNumber string Original called number
TechEvent string Technical event name.
TechNumber string Technical source number if any.
TechQueueId Guid Id of then current technical queue, may be different to the service queue.
TechQueueName string Name of the current technical queue.
TechSource string Technical source type.

Event: QueueCallInTransferCancelled

Incoming call. Current target is service or technical queue. Transferring the call forward was cancelled.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Detailed cancellation reason.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization
QueueId Guid Id of transferring service queue.
QueueName string Name of transferring servic equeue.
Reason string Cancellation reason.
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue, may differ from QueueId.
TechQueueName string Name of current transferring technical queue.
TechSource string Technical source type.
TransferApplet string Current transferring Applet name.

Event: QueueCallInTransferConnected

Incoming call. Current target is service or technical queue. Transferring the call forward was connected.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
ConnectedTarget string Transfer target. Guid or phone number.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of transferring queue.
QueueName string Name of transferring service queue
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue. May differ from QueueId.
TechQueueName string Name of current technical queue.
TechSource string Technical source type.
TransferApplet string Transferring Applet name.

Event: QueueCallInTransferStarted

Incoming call. Current target is service or technical queue. Transferring the call forward was started.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of transferring queue.
QueueName string Name of transferring queue.
TargetNumber string Original called number.
TechQueueId Guid Id of current technical queue. May differ from QueueId.
TechQueueName string Name of current technical queue.
TechType string Technical source type.
TransferApplet string Transferring Applet name.
TransferSource string Transfer source.
TransferTarget string Transfer target. Guid or phone number.

Event: QueueCallInUserAllocated

Incoming call. Current target is service or technical queue. Allocated to an agent.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Optional detailed reason for allocation.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of allocating queue.
QueueName string Name of allocating queue.
QueueNumber string Number of allocating queue.
TargetNumber string Original called number.
UserId Guid Id of allocation target user.
UserName string Username of allocation target user.

Event: QueueCallInUserCancelled

Incoming call. Current target is service or technical queue. Allocation to agent was cancelled.

Property name Value type Description
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
DetailedReason string Detailed cancellation reason.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of allocating queue.
QueueName string Name of allocating service queue.
QueueNumber string Number of allocating service queue.
Reason string Cancellation reason. 'local' or 'remote'.
TargetNumber string Original called number.
UserId Guid Id of cancelling user.
UserName string Username of cancelling user.

Event: QueueCallInUserConnected

Incoming call. Current target is service or technical queue. Answered by an agent.

Property name Value type Description
AgentLegId string Id of core call leg event relates to.
CallerNumber string Original caller number.
CallId Guid Id of core call event relates to.
LegId string Id of core call leg event relates to.
OrganizationId Guid Id of related organization.
QueueId Guid Id of allocating queue.
QueueName string Name of allocating service queue.
QueueNumber string Number of allocating service queue.
TargetNumber string Original called number.
UserId Guid Id of connected user.
UserName string Username of connected user.
UserNumber string Connected target number.

Event: QueueStatus

Service queue status message, contains various counter values.

Property name Value type Description
MaxWaitTime long Maximum current wait time in queue
NbrOfAgentsCheckedInQueue int Total number agents that are serving in the queue (away or not).
NbrOfAgentsImmediatelyFree int Number agents that are immediately free for service.
NbrOfAgentsLongTermAway int Number agents that are not currently available for service in long term (e.g DND state).
NbrOfAgentsOnWrapUp int Total number agents that are serving in the queue (away or not).
NbrOfAgentsShortTermAway int Number agents that are not currently available for service in short term (e.g. already talking).
NbrOfAllocated int Number of current allocated calls in the queue.
NbrOfConnected int Number of current connected (served by agent) calls in the queue.
NbrOfNotServedRequesters int Number of calls currently not being served by an agent right now
NbrOfProviders int Total number of current providers (agents) in the queue.
NbrOfQueuingRequesters int Number of current queuing calls in the queue
NbrOfRequesters int Total number of current requesters (calls) in the queue.
NbrOfServingAgentsEstimate int Estimated number of current serving agents in the queue.
OpenStatus int Queue open status estimation NA = 0 NoActiveHandler = 1 : There are no active handling endpoints/numbers for the queue. So basically "Closed" NoActiveHandlerUncertain = 2 : There are no active handling endpoints/numbers for the queue. But uncertain due script on some handlers. Closed = 3 : The only active handler is "ServiceClosed". ClosedUncertain = 4 : The only active handler is "ServiceClosed". But uncertain due script on some handlers. Open = 5 : Queue is open. OpenUncertain = 6 : Queue is open. But uncertain due script on some handlers.
OrganizationId Guid Id of related organization.
QueueId Guid Id of service queue.
QueueName string Name of service queue.

Misc: QueueAttachedUser

Property name Value type Description
Active bool Active in queue
Priority int User's priority in queue
UserId Guid Attached UserId

CallList

Event: CallbackChanged

Produced when a callback request changes (is created, updated, closed etc).

Property name Value type Description
AssignedUserId Guid? Id of user the callback is currently assigned
CalculatedPriority string Calculated priority
CallbackAttempts List<CallbackAttempt> History of all handling attempts
CallbackExtras List<CallbackExtra> Extra name-value fields
CallBackId Guid CallBack Id this event relates to.
CallbackRelatedItems List<CallbackRelatedItem> List of cases related to this case
CallId Guid? The id of the original call that prompted the creation of this request
CallListId Guid Id of the CallList for this CallBack
ChannelIn string Name of the channel (usually service pool) the request came in through
ClassificationId Guid? If the case has been classified, id of the classification entry
ContactMessage string Any message left by the contact (usually empty)
ContactName string Contact name (usually empty)
ContactNumber string Contact number that is supposed to be calld
CreationTime DateTime WHen the request was initially created
DueDate DateTime? When the case is due to be handled
ExpiryDate DateTime? The date when the case automatically expires if not closed before it
LastAttemptNote string Note on the latest handling attempt
LastAttemptTimestamp DateTime? Timestamp of the latest handling attempt
LastAttemptTypeId int? Id of the last attempt's type
LastAttemptUserId Guid? Id of user that made the last attempt
LastModifiedUserId Guid? Id of user that made the last change, null if new or admin
Modified DateTime Modified date
NotBefore DateTime? Date before which the case should not be handled
Note string Internal notes on the case
OrganizationId Guid Id of related organization.
RecordingId Guid? Id of the corresponding audio recording (if any)
TranscriptId Guid? Id of the transcript created from the recording
TypeId short Type identifier. 1 - Explicit callback request 2 - Overflown call 3 - Call list item created manually

Event: CallbackListStatus

Emitted with the latest status of each call list, if the status changed. Status changes are evaluated every 15 seconds. Can be used to construct alerts based on open items, automagically assign more agents to the lists or just simple dashboards.

Property name Value type Description
CallListId Guid Corresponding list id
ExpiresIn24h int Number of requests that will expire today
IsAutoAllocate bool If the CallbackList is AutoAllocate list
NextHourOverDueDate int Total number of requests that will be past DueDate during next hour
NextHourRevealedNotBefore int Total number of requests that will be allocable during next hour
OrganizationId Guid Id of related organization.
TotalActiveAgents int Total "Active" ("checked" in the list, not necessary serving) agents in the queue.
TotalAssigned int Total number of requests that are currently assigned to an agent
TotalAutoAllocateAgents int Total number of Agents "Active" and "Serving_CallbackLists"
TotalFreeForAllocation int Total number of requests that can be allocated
TotalHidingNotBefore int Total number of requests that are not allocable due NotBefore has not elapsed
TotalOpenRequests int Total number open unhandled requests
TotalOverDueDate int Total number of requests that are already over DueDate
TotalServingAgents int Total number of agents having "Serving_CallbackLists" = 1
TotalServingAutoAllocateAgents int Total immediately AutoAllocable agents. Agent must be "Active" and "Serving_CallbackLists", and the list must be "IsAutoAllocate" NOTE: Does not (at least YET) consider if agent already has an active allocated request, so a bit duplicate of TotalAutoAllocateAgents for now

Misc: CallbackAttempt

Helper for CallbackAttempt transportation

Property name Value type Description
CallbackAttemptTypeId int? Attempt result type
Id Guid Attempt id
Note string User-provided note
Timestamp DateTime? Attempt timestamp
UserId Guid? UserId attempt relates to

Misc: CallbackExtra

Helper for CallBackExtraData transportation

Property name Value type Description
Id int Property name
Name string Property name
Value string Property value

Misc: CallbackRelatedItem

Helper for CallbackRelatedItem transportation

Property name Value type Description
Id Guid Related request id
IsClosed bool IsClosed : if the related request is already closed
ListId Guid? Related request list id
StatusId int? StatusId : Raw status id for the last Attempt