Skip to main content

OData Feed Documentation

This article describes the Graia CCaaS OData feed schema, our means of publishing detailed statistical information of the performance of your Graia CCaaS tenant. While the primary user of this data feed is the Microsoft Power BI template file we publish, developers can also use it to craft their own reports in their own 3rd party or bespoke BI applications.

The data feed consists of data tables (statistical details and lookup tables) with logical relations between them. Data in these tables are purged as per the retention period set for your tenant.

Technical definitions of the various Graia CCaaS entities and objects are explained in the Technical Glossary.

See the BI Reports documentation for the BI report template details.

Using the OData feed​

To begin using the data feed, you must use Microsoft Power BI or similar tool that supports OData as data source with Microsoft's organizational authentication.

  1. Obtain data from our feed by clicking the Get Data button in Microsoft Power BI, then select OData feed.

  2. Provide the Graia CCaaS OData url.

  3. Login with your organization account used with Graia CCaaS.

  4. The first time you login with an organization account, you will be asked to consent to Power BI access policies. Approve the request. This might require administrator permissions in your corporate domain.

  5. Select the tables you are interested in, see the tables below.

Lookup tables​

Some tables in the data feed are not providing statistical information, but are there to offer human readability. These are typically used to perform id-to-name translation.

info

Lookup tables are updated once a day (midnight 00:00 UTC). As such, e.g. the deletedAt timestamp in many such tables is populated at this time, they will not show the exact date when a corresponding object is removed. Likewise, any new records generated during the day won't show up until this update is done. These tables are not meant for and should not be used for audit purposes.

Agent Business Unit Changes​

This table offers insight into how long agents contributed to various Business Units.

FieldDescription
agentIdThe unique ID of the agent. Pair this with the ID from Agents table to obtain the name of the agent.
assignedA binary (true/false, 0/1) flag representing whether the given agent joined or withdrew from the given business unit in the marked tenant.
businessUnitIdThe unique ID of the business unit.
tenantIdThe unique ID of the tenant.
timestampUtcUTC timestamp of when the business unit to agent relationship changed.

Agents​

A lookup table containing the unique ID of the agent, the name, the customID set through the portal and the deletedAt timestamp.

Pair the ID with the agentID from other tables in order to create humanly readable reports for agent performance.

Agent States​

The agent states table contains historical data for the states of all the agents within the tenant. The following columns are available:

FieldDescription
agentIDThe unique ID of the agent. Pair this with the ID from Agents table to obtain the name of the agent.
breakBusinessIdThe business unit ID of the break. Breaks can be configured for a specific business unit by the administrator. This is null if the agent used a tenant-level break.
breakNameThe break name selected by the agent. Break names can be configured by an administrator on a per tenant basis.
durationInSecondsCalculated duration of a particular state.
idThe id of the reporting entry.
isLoginTrue/False flag to highlight if the break state is the result of a login.
isLogoutTrue/False flag to highlight if the state is the result of a logout.
logoutReasonReason why an agent was logged out, this can be AgentLogout when the agent logs out, ConnectionTimeout if the agent was logged out due to network issues or ForceLogout if the agent was forcibly logged out by a supervisor.
startTimeThe start time of a particular state in the tenant's timezone.
startTimeUtcThe start time of a particular state in UTC.
stateThe state of the agent

Available agent states are:

Bot Segments​

A bot segment is started when a conversation enters one of the bot nodes of a workflow; e.g. QnA bot, Custom bot nodes, but also Menu selection or Custom question are considered bots. It finishes when the customer participant is leaving the given node. A single customer can interact with multiple bots in sequence, as such, a single conversation ID can be part of multiple bot segments. When creating reports, we recommend aggregating bot segments to identify the total time a customer spent with bots.

FieldDescription
botFinishedInfoVarious values depending on the type of bot used in a given bot step. It refers to any data collected.
botFinishedResultRepresents the workflow output of a given bot step. In some cases, this is identical to the botFinishedInfo, see below for values.
botInfoThis is filled only by the QnA bot with QNA Config ID, see below for details.
botStepIdID of the given bot step. Pair this with the ID column of the Bot steps table to identify the bot step name.
channelIdThe ID of the channel the conversation assigned to a bot came through.
conversationIDID of the conversation.
durationInSecondsElapsed time since bot segment started until it ended. This is calculated based on startedAt and endedAt.
endedAtTimestamp of a bot segment end time.
endedAtUTCTimestamp of a bot segment end time in UTC.
idUnique identifier of the Bot Segment itself.
resultValues reflecting the customer activity, see below.
startedAtTimestamp of a bot segment start time.
startedAtUTCTimestamp of a bot segment start time in UTC.

The botFinishedInfo field can take these values:

  • auto-attendant: Digit pressed by the customer.
  • custom-question: Digit pressed (in case of voice) or the customer answer (in case of chat).
  • custom bots: Custom text (passed by the custom bot itself).
  • menu selection bot: Selected menu option (text).
  • qna: exitQuestion (QnA could not answer this question)
  • identify customer: byEmail | byPhone | invalid | created | external
  • customer intent evaluator (email): This represents the category it matched, either subject or content and the keyword it matched. Example: subject:<keyword>
  • matchAni: This represents the rule it matched.

The botInfo field can take these values:

  • auto-attendant: Digit pressed by the customer or retry exhausted when the user reached the repeat count.
  • custom bot: null (finished)
  • menu selection: selected menu option
  • custom question: success, invalid (in case of chat), success or retry exhausted in case of voice.
  • qna: No Answer
  • identify customer: success, invalid
  • customer intent evaluator: This represents the keyword group matched or no match. In other words, this is the node's output.
  • matchAni: This represents the rule it matched.

The result field can be one of these:

Bot Steps (lookup)​

A bot step is a bot node in a workflow. This table is a lookup table containing names, types and media groups.

FieldDescription
deletedAtTimestamp when the synchronizer service detected the bot step as deleted.
idUnique ID of the bot step. Pair this with bot step ID from Bot segments.
mediaGroupChat or Email or Voice. Represents the media group of the channel the corresponding workflow is associated to.
nameThe name of the bot step, as defined in the workflow.
typeThis is the type of the bot.

The type field can be:

  • announcement
  • autoAttendant
  • conversationalBot
  • customBot
  • customerIntentEvaluator
  • customerSatisfaction
  • identifyCustomer
  • liveTranslation
  • matchAni
  • menuSelection
  • qna
  • question
  • sendEmailReply

A relationship between the id column of Bot Steps with the botStepId column of Bot Segments should be created to provide more clarity to the bot segments reports.

Business Units (lookup)​

Business units act as a filter for various other entities and operations within an organization. Organizations with multiple business units may find themselves in a position where they wish to restrict which customers, channels and templates agents can see in the context of a conversation. These entities have a business unit ID associated, and this table allows pairing that with the name of the business unit.

Calls (Voice conversation level data)​

The Calls table represents the conversation level data for voice media. A new conversation starts when a customer participant engages with a voice workflow. Agent may also start a new conversation in preview campaigns and ad-hoc outbound call scenarios. Finally, the system itself can also launch outbound calls in predictive campaigns. Additionally, a new conversation is created when the agent transfers the voice conversation to another or the same channel, or when the workflow redirects it to a different channel or external phone number. The conversation ends when the workflow terminates the conversation or the customer disconnects. The workflow terminates the conversation when the agent disconnects the call and the queue's Agent Disconnected output leads to an End conversation node, or when the workflow reaches a Transfer to channel node.

FieldDescription
businessUnitIdThe ID of the business unit the conversation belongs to.
channelIdID of the channel for a particular conversation. Can be used with Channels table.
channelPhoneNumberThe phone number of the channel used for a particular conversation. As voice channels support multiple inbound numbers, this will allow identifying which number the customer used to engage with the channel.
channelTypeType of the channel. For voice calls, this is only Voice.
connectedDurationInSecondsTalk time of the call in seconds
conversationEndedReasonReason why the conversation ended.
ConsultFromConversationIdThis is the ID linking to the original conversation for consult calls.
customerFirstNameThe first name of the customer.
customerIdThe unique identifier of the customer.
customerJoinedAtWhen the customer joined the conversation in local time.
customerJoinedAtUTCWhen the customer joined the conversation in UTC.
customerLastNameThe last name of the customer.
customerMiddleNameThe middle name of the customer.
customerPhoneNumberThe customer's phone number.
customerRingDurationThe customer ring time. For how long was the customer dialed.
durationInSecondsTotal duration of the conversation. This is a calculation based on startedAt and endedAt timestamps, rounded up or down depending on the value.
endedAtTimestamp of when the conversation was ended. Uses your tenant timezone settings.
endedAtUTCUTC Timestamp of when the conversation was ended.
holdCountNumber of times the customer was placed on hold.
holdDurationInSecondsTotal duration the customer spent on hold in seconds.
idThe unique ID of the conversation. Pair this with conversationId from other tables.
identifiedCustomerEmailAddressThe email address of the identified customer record for a call.
isChannelClosedDurationInSecondsTotal amount of time in seconds elapsed for a given conversation while the channel was closed (out of business hours).
isChannelOpenDurationInSecondsTotal amount of time in seconds elapsed for a given conversation while the channel was open.
isConsultTrue or false, true when the call was a consult call to another agent or channel as these create a new conversation as well.
isOutboundTrue or False, True when the call was an outbound call.
isRecordingEnabledCall was recorded or not.
nextConversationIDReference to the next conversation in case of a transfer.
openingCheckResultOpen or Holiday or Closed depending on the result of the openingCheckNode of the workflow.
startedAtTimestamp of when the conversation was started. Uses your tenant timezone settings.
startedAtUTCUTC Timestamp of when the conversation was started.
TransferInitiatedByWho initiated the transfer
TransferToExternalDestinationPhoneNumberTarget phone number for an external transfer.
WorkflowIdThe id of the workflow used for a given call.

The conversationEndedReason field can take these values:

  • Abandoned: The conversation was abandoned in a queue. Customer dropped the call while waiting in a queue. Workitems, Bot Segments and QueueSegments may offer additional information.
  • AgentJoinFailed: Outbound calls only. The agent failed to answer the call in Teams.
  • CallbackRequested: The customer requested a callback in one of the queues and left the queue.
  • ConversationalBotTimeout: The conversational bot reached the timeout, when the bot duration is limited by the workflow setting.
  • CustomerDisconnected: Also known as Abandoned, applied to a conversation when the customer disconnects from a voice call at any point during the conversation.
  • CustomerJoinFailed: Outbound calls only. The customer did not answer the outbound call.
  • Default: Workflow reaches an End Conversation. This can happen when the agent closes the task and there's no survey afterwards, a bot exits conversation and so on. Default is applied whenever END is specified in the flow and the customer reaches that point.
  • IdleTimeout: This is applied whenever the conversation times out due to workflow timeout. Workflow timeout is 24 hours by default for voice conversations.
  • InternalError: The server returned an internal error during a conversation. (debugging, has no reporting value)
  • TransferToAgentFailed: A transfer to an agent was attempted, but failed. This can happen if the destination agent rejects the call or the preview timeout is reached.
  • TransferToChannel: The conversation was transferred to a Graia CCaaS channel.
  • TransferToExternal: The conversation was transferred outside of Graia CCaaS, to an external number.
  • TransferToExternalFailed: Transfer to external was attempted, but failed. This can happen when the external party rejects the call or the 30 seconds ring timeout is reached.

The TransferInitiatedBy field can be:

  • agent: The agent initiated the transfer.
  • workflow: The workflow initiated the transfer.
  • empty: No transfer was initiated.

Campaign Record Additional Phone number​

This table contains the campaign record ID and the additional phone numbers of those given records.

Campaign Record Custom Fields​

This table contains the campaign record ID along with the customFieldName and customFieldValues.

Campaign record changes​

This table is only populated if Graia's cloudops team enabled this feature for you. Campaign record status history is found here.

|---|---| |campaignId| This is the unique ID of the campaign from which the record was processed| |campaignRecordId| The ID of the campaign record, filtering by this field will show all statuses of a given record| |id| This is the row ID | |isSuspended| This becomes true or false depending if the campaign record is suspended from being processed further. |preferredAgentId| The ID of the agent that is set as preferred for the record.| |Status| The current status of the record| |timeStampUtc| The timestamp of the row creation, this is usually the same as the record status update|

Campaign Record Registrations​

This table contains data about uploaded records, their campaign ID, customer first name, customer last name and primary phone number.

Campaign Records​

This table contains various data about the current state of the records of a campaign.

FieldDescription
campaignIDThe ID of the campaign.
closedAtLocal timestamp of when the record was closed/completed.
CreatedAtLocal timestamp of when the record was created.
customerFirstNameFirst name of the customer.
customerLastNameLast name of the customer.
customerPhonePrimary phone number of the customer.
idID of the record.
newStatusDurationDuration of the record in the "Newly Added" state.
queuedStatusDurationDuration of the record in the "Processing" state.
rescheduledStatusDurationDuration of the record in the "Rescheduled" state.
statusCurrent status of the record.
totalCustomerRingTimeInSecondsCustomer ring duration in seconds for a given record. Calculated based on all dial attempts of a record.
totalTalkTimeInSecondsRepresents the talk time with a customer for a particular record. Calculated based on all dial attempts of a record.

Campaigns (lookup)​

Contains data about campaigns and can be used to provide a humanly readable name for the campaigns.

FieldDescription
campaignTypeThe type of the campaign. Can be Preview or Callback.
deletedAtWhen the campaign was deleted.
idID of the campaign.
nameName of the campaign.

See the Lookup tables section for important details.

Captured Data​

The Captured Data table refers to data collected from the workflow variables specified at the tenant level and filled in the workflows.

FieldDescription
ConversationIdThe id of the conversation through which data was collected and stored.
nameThe name of the custom tenant level workflow variable.
TimestampUtcUTC timestamp the field was filled in this conversation.
valueThe value of the custom tenant level workflow variable.

Channels (lookup)​

Applies to: Chat, Voice, Email.

Channels table is used for filtering purposes and to provide additional data to tables where channelID is present. As with all lookup tables, this gets updated regularly by the system.

FieldDescription
businessUnitIdThe ID of the business unit associated to this channel.
channelTypeMedia type of the channel.
deletedAtThe time the system updated this record past the actual deletion.
idThe channel ID. Can be paired with channelID column of other tables.
nameThe name of the channel, as displayed on the portal.

See the Lookup tables section for important details.

Chats (Conversation data)​

Applies to: Webchat, Viber, Facebook

Chats table refers to Chat conversation level data. A new conversation starts when a customer participant engages with a chat workflow, as such, the conversation is not initiated in case of welcome or invitation messages used for chat, until the customer sends a message. The conversation ends when either the customer terminates it (webchat), or the workflow terminates it. Workflow terminates a conversation when it reaches an End node in the flow or due to Idle timeout.

FieldDescription
averageAgentAnswerSpeedInSecondsAverage time it took the agents to respond to the customer messages per conversation.
averageBotAnswerSpeedInSecondsAverage time it took the bots to respond to the customer messages per conversation.
averageCustomerAnswerSpeedInSecondsAverage time it took the customer to respond to the agent or bot messages per conversation.
businessUnitIdThe ID of the business unit this conversation was associated with.
channelIDID of the channel for a particular conversation. Can be used with Channels table.
channelTypeType of the channel. Facebook, Viber, Webchat types are currently available.
conversationEndedReasonReason why the conversation ended.
customerFirstNameThe first name of the customer.
customerIdThe unique identifier of the customer.
customerLastNameThe last name of the customer.
customerJoinedAtTimestamp of when the customer joined the conversation
customerJoinedAtUtcTimestamp of when the customer joined the conversation in UTC
durationInSecondsTotal duration of the conversation. This is a calculation based on startedAt and endedAt timestamps, rounded up or down depending on the value.
endedAtTimestamp of when the conversation was ended. Uses your tenant timezone settings. A conversation ends when the customer participant explicitly clicks the Terminate conversation button, the agent terminates the conversation and there is no survey configured in the workflow or when the agent transfers the conversation to another queue.
endedAtUTCUTC Timestamp of when the conversation was ended.
firstCustomerAnswerSpeedInSecondsTime it took the customer to respond to an outbound chat conversation.
idThe unique ID of the conversation. Pair this with conversationId from other tables.
identifiedCustomerEmailAddressThe email address of the identified customer.
isChannelClosedDurationInSecondsTotal amount of time in seconds elapsed for a given conversation while the channel was closed (out of business hours).
isChannelOpenDurationInSecondsTotal amount of time in seconds elapsed for a given conversation while the channel was open.
nextConversationIDReference to the next conversation in case of a transfer.
openingCheckResultOpen or Holiday or Closed depending on the result of the openingCheckNode of the workflow.
startedAtTimestamp of when the conversation was started. Uses your tenant timezone settings. Conversation is started when the customer participant sends his first message, or when the agent transfers an existing conversation to another or the same queue.
startedAtUTCUTC Timestamp of when the conversation was started.
webcallDurationInSecondsDuration of the webcall initiated by the agent from a chat conversation.
WorkflowIdThe ID of the workflow used for a given chat conversation.

The conversationEndedReason field can be:

  • CustomerDisconnected: Also known as Abandoned, applied to a conversation when the customer disconnects from a chat (Webchat only).
  • Default: Workflow reaches the end of the conversation, in other words the conversation reaches an End output in a node. This can happen when the agent closes the task and there's no survey afterwards, a bot exits conversation and so on.
  • IdleTimeout: This is applied whenever the conversation times out due to workflow timeout.
  • TransferredToQueue: The conversation was transferred to another queue.
  • BotFailed: Due to a misconfiguration or system error, a bot in the workflow failed and the conversation ended.

Collected Data​

The Collected Data table refers to data collected through Scripting. Data is stored in Graia CCaaS only if the Persist Collected Data is set to true in the Agent Workspace.

FieldDescription
createdAtUtcUTC timestamp of the entry creation.
nameThe name of the scripting variable or field that was set.
valueThe value of the scripting variable or field. Value is added by the agent or system.
workitemIdThe id of the agent workitem through which data was collected and stored.

Conversations​

Similar to Calls, Chats, emails, but without any filtering applied.

Emails (Conversation data)​

Emails table refers to Email conversation level data. A new conversation starts when a customer participant engages with an email workflow. Additionally, a new conversation is created when the agent transfers the email conversation to another or the same channel. The agent may initiate conversations through the Outbound email functionality, in such cases, the conversation is initiated when the agent clicks the compose button. The conversation ends when the workflow terminates the conversation. Workflow terminates the conversation when an End output is reached on a node or when the idle timeout is reached.

FieldDescription
businessUnitIdThe business unit ID associated to a particular email conversation.
channelEmailAddressThe email address of the channel used for a given conversation.
channelIDID of the channel for a particular conversation. Can be used with Channels table.
channelTypeType of the channel. In the case of email, this will always be Email, however, you may use the channelType for filtering purposes when building generic reports.
conversationEndedReasonReason why the conversation ended.
customerEmailAddressThe email address of the customer.
customerFirstNameThe first name of the customer.
customerIdThe unique identifier of the customer.
customerJoinedAtTimestamp of when the customer joined the conversation.
customerJoinedAtUtcTimestamp in UTC of when the customer joined the conversation.
customerLastNameThe last name of the customer.
durationInSecondsTotal duration of the conversation. This is calculated based on startedAt and endedAt timestamps rounded.
endedAtTimestamp of when the conversation was ended. Uses your tenant timezone settings.
endedAtUTCUTC Timestamp of when the conversation was ended.
firstReplyTimeInSecondsTime elapsed until the customer received a first reply. Subsequent replies are not calculated here.
idconversationID, the unique identifier of the conversation.
identifiedCustomerEmailAddressThe email address used to identify the customer.
inChannelClosedDurationInSecondsTotal duration of the conversation outside of business hours.
inChannelOpenDurationInSecondsTotal duration of the conversation during business hours.
isOutboundTrue or False, determines if the conversation was an outbound email.
nextConversationIdPopulated in case of transfers, allows tracking the customer journey.
startedAtTimestamp of when the conversation was started. Uses your tenant timezone settings.
startedAtUTCUTC Timestamp of when the conversation was started.
subjectThe subject line of the email conversation.
threadIDMultiple conversations may belong to the same thread. It changes when the subject of the email changes and remains the same otherwise (e.g. the customer and agent engage in multiple back and forth responses under the same subject, or the customer sends multiple followup emails with the same subject, etc).
workflowIdThe ID of the workflow used for a given email conversation.

The conversationEndedReason field can take the following values:

  • TransferToChannel: Conversation was transferred to a channel.
  • Default: Standard reason when a conversation ends normally when an End node is reached in the workflow, such as Agent Disconnected.
  • IdleTimeout: Conversation was terminated due to workflow idle timeout.
  • BotFailed: Due to a misconfiguration or system error, a bot in the workflow failed and the conversation ended.

Pending Agent States​

This table refers to the transient states of an agent. While the agent is busy with a task and requests a break or logout, they enter a transient pending state.

FieldDescription
agentIdThe ID of the agent.
agentStateChangeIdSystem ID of the change state event.
durationInSecondsThe pending state duration in seconds.
pendingBreakBusinessUnitIdThe business ID of the requested break.
pendingBreakNameThe name of the requested break.
pendingStateThe name of the pending state, can be pending logout or pending break.
startTimeTimestamp of when the pending request started.
startTimeUtcTimestamp of when the pending request started in UTC.

Queues (lookup)​

Applies to: Voice, Chat, Email

Queues table is another lookup table, it provides the name for each queue ID. Pair ID of this table with the queueId found in other tables.

FieldDescription
channelIDOriginating channel ID, pair this with channel lookup to discover the media type of a given queue.
deletedAtUTC timestamp of when our refresh service detected the queue as deleted. This timestamp should not be used for audit purposes.
idThe unique ID of the queue.
NameThe name of the queue.
routing modeCan be Automatic or Manual. Reflects the queue node setting for routing conversations.

See the Lookup tables section for important details.

Queue Segments​

Applies to: Voice, Chat, Email

A queue segment is created when a participant enters a queue node in the workflow. It ends when the participant leaves the queue, a dequeuedReason is provided to identify the reason of leaving the queue segment.

A single conversation may be part of multiple queue segments, e.g. during a timeout when the conversation gets sent to another queue.

FieldDescription
abandonedThresholdInSecondsThe configured abandoned threshold value for a given queue, in seconds
channelIdID of the channel through which a conversation reached a particular queue segment.
conversationIdUnique ID of a given conversation.
dequeuedAtLocal timestamp of when the user left the queue and the segment ended.
dequeuedAtUTCUTC timestamp of when the user left the queue and the segment ended.
dequeuedReasonSystem reason of why the user was dequeued.
durationInSecondsTotal duration of the queue segment. This is calculated based on queuedAtUTC and dequeuedAtUTC.
queuedAtLocal timestamp of when the segment was created. A segment is created when a user enters the queue. Local timestamp is based on your Graia CCaaS Teams' timezone settings. Learn more about setting your Teams timezone.
queuedAtUTCUTC timestamp of when the segment was created. A segment is created when a user enters the queue.
queueIdUnique ID of a given queue node. Pair with ID of the Queues (lookup) table.
queueSlaInSecondsThe configured SLA value for a given queue, in seconds

The dequeuedReason can be one of the following:

Rejected Enqueue Attempts​

Applies to: Webchat, Voice, Email, Viber, Facebook

Whenever a user cannot enter the queue due to no agent being logged in across the tenant, no skilled agent being logged in across the tenant, or the maximum queued conversation threshold has been reached, an attempt record is created within this table.

A single conversation may have multiple rejected enqueue entries, depending on the workflow configuration. For example when multiple queue nodes are linked together and the participant cannot enter any of them.

FieldDescription
channelIdThe ID of the channel through which a conversation attempted to reach a queue but was rejected.
conversationIdUnique ID of the conversation.
idunique ID of the attempt.
queueIdUnique ID of the queue rejecting the user's entry. Can be paired with Queue (lookup) table.
rejectedAtLocal timestamp of when the conversation was rejected.
rejectedAtUTCUTC timestamp of when the conversation was rejected.
rejectReasonReason why the conversation was rejected.

The rejectReason field can be:

  • NoAgentLoggedIn
  • NoStaffedAgentLoggedIn
  • NoAvailableStaffedAgent
  • EstimatedWaitTimeLimitReached
  • QueueSizeLimitReached

Users (lookup)​

The users table is very similar to the Agents table as Agents are users as well.

FieldDescription
customIdCustom ID set through the portal for a user.
deletedAtWhen the system detected the user as deleted.
emailAddressThe email address of the user.
idThe Unique ID of the user.
NameThe name of the user.
userTypeType of the user. This can take the values Agent, Supervisor or User.

See the Lookup tables section for important details.

Workflows (lookup)​

The workflows table shows the workflow IDs, their name, media group, business unit ID and a timestamp of when they were deleted.

Workitem Conversation Sessions​

This table contains additional details about a particular workitem such as hold count, duration, and calculated values for those.

FieldDescription
connectedDurationInSecondsDuration of agent active time on the given task.
conversationIDID of the conversation.
endedReasonThe reason why the workitem has ended. Can take values such as AgentFailedToJoin, ConversationEnded, Transferred or default.
holdCountHow many times the agent placed the customer on hold.
idEntry Id.
lastHoldDurationThe duration of the last time the customer was on hold in the context of this workitem.
sentEmailCountRepresents the total number of emails sent by an agent in the context of a workitem. An email sent is considered any outbound email, customer reply or forward done by an agent.
totalHoldDurationTotal duration of the customer being on hold in the context of a workitem.
workitemIdThe ID of the workitem.

Workitem Evaluation Data​

This table contains data about the result of quality management task evaluations carried out through the portal by users with proper rights.

FieldDescription
createdAtWhen the evaluation was done in local time.
createdAtUTCWhen the evaluation was done in UTC time.
createdByThe ID of the user that did the evaluation.
evaluationIDUnique ID of an evaluation.
idEntry ID.
nameThe KEY from a script.
scriptIDID of the script used for evaluation.
valueThe key value of a script.
workitemIdThe ID of the workitem that was evaluated.

Workitem Evaluations​

This table contains the individual evaluations and can be used to calculate the evaluation duration. See the previous table for the data.

FieldDescription
createdByThe ID of the user that created the evaluation.
endedAtWhen the evaluation ended in local time.
endedAtUTCWhen the evaluation ended in UTC time.
idEntry ID.
scriptIDThe ID of the script used for evaluation.
startedAtWhen the evaluation was started in local time.
startedAtUtcWhen the evaluation was started in UTC time.
workitemIDThe ID of the evaluated workitem.

Workitem​

Applies to: Webchat, Viber, Facebook, Email, Voice

Workitems represent agent tasks. Data in this table offers insight into the output of a given task and the agent performance on it.

A task/workitem is created when an eligible agent has been found for a given conversation and the system began routing the conversation to that agent. It ends when the agent clicks the Close Task button or, when the wrap up timer is reached (if used). A workitem may end if the preview timeout is reached and the task is automatically closed (preview timeout is also known as RONA). Agents may also create workitems through the outbound functionality. A workitem may contain multiple conversations depending on the agent's action.

FieldDescription
activeDurationInSecondsActive time of a task. This does not include preview or wrap up times, rounded to seconds.
agentIdID of the agent that handled the task.
agentPhoneNumberThe agent's phone number set in the portal & used for this workitem.
agentWorkspaceIdThe ID of the workspace used for this workitem.
businessUnitIdID of the business unit associated to the conversation that triggered a workitem.
campaignIdIf the workitem was generated from a campaign, this is the ID of the campaign from which it was generated.
campaignRecordIdIf a workitem was generated from a campaign, this is the ID of the record that resulted in the agent's task.
caseIdID of a case assigned to a workitem.
completionCodeSystem added or agent added completion code of the task.
customerIdID of the customer.
durationInSecondsTotal duration of the task, from the moment the agent receives it until the agent closes it. Rounded to seconds.
endTimeWhen the task was closed.
endTimeUTCSame as endTime but timestamp is in UTC instead of local time.
idID of the workitem.
lookupDurationTime spent in Lookup state (outbound or contact lookup only)
mediaTypeMedia type of the task. Can be Email, Messaging, Webchat, Voice, Lookup.
notesNotes added by the agent through the agent UI.
previewDurationTime elapsed while waiting for an agent to accept the task. For non-voice channels, this is usually <2 seconds as the system automatically accepts these tasks.
primaryChannelIdID of the first channel used for a workitem.
primaryConversationIDOriginal conversation ID.
queueIDID of the queue from which the workitem was created. In case of outbound, this field is empty.
resultResult of the workitem.
scriptIdThe ID of the script that was run against a particular workitem.
startTimeWhen the workitem was created.
startTimeUTCSame as startTime, but timestamp is in UTC.
wrapUpDurationTime elapsed while the task was in wrap up. Does not include active time or preview time. Rounded to seconds.

The result field can be:

  • Handled: Agent handled the task and closed it normally.
  • Missed: Agent missed the task and RONA timeout kicked in moving the agent to RONA break.
  • Cancelled: Outbound only. Agent closed the outbound task without initiating a conversation.
  • Abandoned: Customer dropped the call while the task was being previewed to the agent.
  • Rejected: Agent explicitly rejected the task, by clicking the reject button.
note

Due to automatic conversion to seconds and to rounding, Active + Wrap Up will not necessarily and precisely equal Duration. Preview time is also rounded, but for the current supported media types, this is generally <2 seconds.