Enterprise Contact Center Report Catalog
Contact Center reporting and Omnichannel Management contribute immediately runnable reports to the shared Reports area (Contact Center reports activate automatically once CrestApps.OrchardCore.ContactCenter.Queues and CrestApps.OrchardCore.Reports are both enabled). The admin menu organizes them into Executive, Operations, Queue & Routing, Agent Performance, Workforce & Payroll, Billing & Usage, CRM & Campaigns, Compliance & Audit, and Technical & IT groups. The catalog intentionally reports only facts represented by durable Contact Center or CRM data. It does not infer schedules, pay rates, quality scores, survey responses, or customer-resolution outcomes that have not been collected.
Shared report behavior
| Capability | Behavior |
|---|---|
| Reporting population | Unless a report says otherwise, one interaction or CRM activity enters the report when its CreatedUtc is within the inclusive UTC bounds resolved from the selected tenant-local date and time range. This cohort rule prevents the same item from moving between periods when it later ends or completes. Backlog and aging are exceptions: they include currently nonterminal activities created on or before To, including older open work. |
| Default filters | Every report has tenant-local From and To date/time controls. Each report declares its supported dimensions, and the filter editor renders only those controls. Interaction reports commonly add queue group, queue, agent, channel, and direction. Workforce reports add agent. Contact Center campaign/subject reports add campaign group, campaign, channel, source, and activity status. Omnichannel reports add campaign group, campaign, channel, source, and activity status. The same filter values are applied to browser results and exports. |
| Time grouping | Durable source timestamps are stored and compared in UTC. Date/time controls are displayed in the tenant time zone and converted to UTC before the query runs, including daylight-saving transitions. Daily rows use UTC dates, except the daily agent timecard and the reconciled payroll timecard, which use the tenant's time zone. No percentage or average is averaged across displayed rows; totals are recalculated from raw counts and durations. |
| Sorting | Summary tables default to descending population. Daily tables sort chronologically. Interaction detail sorts newest first. Aging and attempt reports sort by ascending bucket. |
| Visualizations | The shared renderer supports KPI cards, tables, horizontal bars, and responsive Chart.js line, bar, stacked-bar, and doughnut charts. The Executive performance dashboard currently provides the interactive Chart.js visualizations. Other chart types described in the catalog are planned unless their report output explicitly includes a chart section. Heat-map, gauge, funnel, Sankey, and timeline renderers remain recommended extensions where noted below. |
| Aggregate rows | Every Contact Center aggregate table appends a semantic grand-total row recalculated from the filtered raw counts and durations. Layered tables add semantic subtotals: Queue Usage identifies queue-group subtotals, Campaign Summary identifies campaign-group subtotals, and Daily Agent Timecard identifies each tenant-local day's subtotal. Interaction detail, presence audit, and exception-detail tables remain raw lists and do not receive artificial totals. The browser renderer uses distinct background colors for subtotal and grand-total rows. |
| Queue-group membership | Queue groups are reporting/catalog metadata and use current-membership semantics. Reports resolve an interaction's stored queue identifier against the queue's current QueueGroupId; moving a queue changes historical group attribution without changing the interaction or any routing/SLA/entitlement behavior. Deleting a group makes its assigned queues ungrouped. |
| Export | CSV is built in. Excel is available when CrestApps.OrchardCore.Reports.OpenXml is enabled. Export actions appear in a report toolbar at the right edge of the first visible section heading and retain the active filter values. Table exports retain detail, subtotal, and grand-total rows in display order; the semantic row kind controls browser color only and does not remove rows from CSV or Excel. The toolbar and visible report heading are not exported; CSV starts with the data headings, and Excel uses the report title for worksheet tab names. PDF and JSON are not currently provided. |
| Scheduling | Reports are currently interactive and exportable. Scheduled delivery by email, collaboration channel, or SFTP is not yet implemented; daily, weekly, and monthly schedules are the recommended baseline when scheduling is added. |
| Permissions | Contact Center reports require View Contact Center reports and are granted to supervisors and administrators by default. CRM reports require View Omnichannel reports and are granted to administrators by default. Tenant isolation is enforced by Orchard shell scope and tenant-local YesSql collections. |
| Capability requirements | A report only measures data some capability writes. Reporting deliberately does not depend on the capabilities it measures, so that a tenant running chat and CRM only is never made to run, secure and upgrade voice call handling to read a queue report. Degradation happens at two levels. A report whose whole subject belongs to an absent capability renders a single notice naming the missing feature and shows no figures: transfer analysis, queue and agent transfer performance, provider performance, provider usage for billing, and call leg performance require Voice, and recording coverage and agent recording coverage require Recording. A report whose primary figures are real still runs, but drops the columns and metrics the absent capability feeds rather than rendering them as zeroes - the executive dashboard omits Transfer rate and Recording coverage, interaction and exception detail omit Provider and Transfers, agent volume and outcome reports omit Transfers, Recorded and Recording coverage, and the queue, agent, channel and daily usage reports omit Transfers and Recordings. In both cases the reason is the same: zero is a measurement, and an absent capability took none. |
| Drill-down | The current renderer presents report sections on one page. The drill paths below define the stable implementation target for linked drill-down navigation. |
Campaign, campaign-group, and disposition dimensions render their configured display names. Campaign reports retain campaign-level rows and add campaign-group aggregate sections where applicable. Because activities store a campaign rather than a campaign-group snapshot, reports resolve the campaign's current group at execution time; moving a campaign changes historical group aggregation. If a referenced catalog entry has been deleted, the report shows an unknown label instead of exposing the stored identifier. User table cells render through Orchard Core's cached UserDisplayName shape: the account username is the default text, and the User Display Name feature replaces it through the configured IDisplayNameProvider. Browser rendering preserves the enclosing admin layout, while the export resolver suppresses layout rendering so CSV and Excel contain only the resolved text value and never the surrounding admin-page HTML. Usernames are resolved from stable user identifiers when a report runs and are not duplicated in activity indexes. Deleted or unavailable users are shown as Unknown user or Unknown agent.
Canonical KPI definitions
These definitions are authoritative across the catalog.
| KPI | Exact definition and edge cases |
|---|---|
| Interactions | Count of interaction records in the report cohort. Every transfer, consult, conference, callback, or requeue remains part of the same interaction unless it creates a separate communication attempt and therefore a separate interaction record. |
| Inbound offered | Count of inbound interaction records. Queue overflows and requeues do not create another offered interaction. An inbound callback promoted into an outbound attempt is counted as an outbound interaction, not another inbound offered interaction. |
| Outcome | Every interaction has exactly one outcome, decided the same way by every report (see Interaction outcomes below): answered, abandoned, voicemail, callback requested, failed, not connected, or in progress. |
| Answered | Interactions whose outcome is answered: an agent took the call. Inbound answered restricts the numerator to inbound interactions. A caller the platform answered only to play the queue or to record a voicemail is not answered. |
| Answer rate | Answered interactions / all interactions in all-direction reports. Inbound answer rate is Inbound answered / Inbound offered. A zero denominator produces zero. |
| Abandoned | Inbound interactions whose outcome is abandoned: the caller hung up while waiting in a queue or while an agent was being offered the call, before anybody answered. A caller who hangs up while ringing an agent is an abandon, never a failure. All abandons are included because the platform has no short-abandon threshold setting. Transfers, consults, and conferences after answer cannot be abandoned. |
| Voicemail | Inbound interactions the platform sent to voicemail instead of connecting them: an unanswered offer, the queue's maximum wait, an entry point outside business hours, or a full queue. They are neither answered nor abandoned, are shown in their own column, and are left out of the abandonment rate's numerator and the service level. |
| Callback requested | Inbound interactions whose caller accepted the queue's callback offer instead of waiting. Nobody answered the call and the caller did not give up on it: the contact continues as the scheduled callback, which is its own outbound interaction. They are neither answered nor abandoned, are shown in their own column, and are left out of the abandonment rate's numerator and the service level. |
| Failed | Interactions that failed for a technical reason: the provider reported an error, or the call could not be placed or bridged. An answered call that later failed is answered. |
| Abandonment rate | Abandoned / Inbound offered. Voicemail and callback-requested calls count toward inbound offered but not toward abandoned. Percentages are recalculated from counts at every aggregation level. |
| Wait before abandon | From the moment the caller joined the queue to the moment they hung up, as the routing engine measured it when it recorded the abandon. |
| Wait before voicemail | From the moment the caller joined the queue to the moment routing took them out of it to send them to voicemail. The greeting and the message are not part of the wait. |
| Wait before callback | From the moment the caller joined the queue to the moment they accepted the callback offer. The confirmation they hear afterwards is not part of the wait. |
| Average speed of answer (ASA) | Sum(AnsweredUtc - CreatedUtc for inbound answered interactions) / Inbound answered. Negative durations are clamped to zero. Abandoned, failed, and outbound interactions are excluded. |
| Wait | The wait shown per interaction (interaction detail, high-wait detail, queue wait time, usage and lifecycle reports) runs to what became of the call: to the agent's answer for an answered call, to leaving the queue for voicemail for a voicemail, to accepting the offer for a callback request, and to hanging up for an abandon. In-progress, failed and not-connected interactions show no wait. |
| Connected duration | For a completed interaction whose outcome is answered, EndedUtc - AnsweredUtc. This interval includes hold because interaction history does not yet persist separate channel-neutral hold segments. Every other outcome has no connected duration: the platform answers a caller itself to record a voicemail or to play the queue, and the provider reports that as an answer, but nobody talked to the caller. |
| Wrap-up duration | WrapUpCompletedUtc - WrapUpStartedUtc when both values exist and completion is not before start. Incomplete or invalid intervals contribute zero seconds and remain visible in the wrap-up completion counts. |
| Average handle time (AHT) | Sum(connected duration + completed wrap-up duration) / handled interactions, where handled means answered with a valid end time. This is operationally equivalent to talk + hold + after-contact work with the current channel-neutral timestamps. Abandoned, voicemail and failed interactions are excluded, and are not counted as handled by any agent. |
| Transfer rate | Answered interactions with at least one transfer history entry / Answered interactions. Multiple transfers increase transfer volume but not the interaction-level transfer-rate numerator. Consultative and blind transfers are included when recorded; conferences are not transfers unless a transfer history entry also exists. |
| Recording coverage | Answered voice interactions with a non-empty recording reference / Answered voice interactions. Paused or stopped recordings count as covered when a recording reference exists. |
| Service level | Per queue: Inbound interactions answered within the queue SLA threshold / (Inbound answered + abandoned). Failed, voicemail and callback-requested interactions are excluded. All abandons remain in the denominator because no short-abandon threshold is stored. The original interaction is counted once after overflow or requeue. A queue without a positive threshold displays no service-level percentage. |
| Completion rate | Completed CRM activities / Activities in the group. Failed, cancelled, purged, pending, and in-progress activities remain in the denominator. Reopened work is represented by a new or nonterminal activity and is not treated as completed. |
| Average attempts | Sum(max(Attempts, 0)) / Activities in the group. |
| Overdue | A nonterminal activity whose ScheduledUtc is before the report's ToUtc as-of boundary. |
| Observed signed-in time | Sum of clipped agent-presence intervals whose current status is not Offline. The interval begins at the durable presence transition time, ends at the next transition, and is clipped to the selected report boundaries. Time before the first known transition is unknown and excluded. |
| Productive presence | Available + Reserved + Busy + WrapUp observed presence duration. This is a presence classification, not proof of payroll eligibility or schedule adherence. |
| Agent utilization | (Busy + WrapUp) / Observed signed-in time. Break, away, meeting, training, do-not-disturb, and other signed-in not-ready states remain in the denominator. |
| Agent occupancy | (Busy + WrapUp) / (Available + Reserved + Busy + WrapUp). Offline and explicitly not-ready states are excluded. This is a presence-derived operational occupancy measure and does not use workforce schedules. |
| Activity cycle time | For completed CRM activities, CompletedUtc - CreatedUtc, clamped to zero. Median is recalculated from the sorted raw duration population. |
| Usage for billing | Raw interaction count and measured connected, wrap-up, queue-wait, transfer, and recording usage. The platform does not apply prices, contracts, taxes, minimum billing increments, or currency conversion. |
Interaction outcomes
An interaction's status says where its communication session stopped; its outcome says what happened to the contact. The two differ: a caller who gave up and a caller sent to voicemail both leave an ended session. Every report takes the outcome from one classifier, InteractionOutcomeClassifier, which reads the interaction and the call events the routing engine records against it, and applies these rules in order:
- A caller who accepted the queue's callback offer is callback requested: a
CallbackRequestedevent, recorded when the callback is arranged, or thequeued_callbackterminal reason set on the interaction at the same time. They left the queue to be called back, which is neither an agent answering nor the caller giving up. - A recorded
CallAbandonedevent makes the interaction abandoned. Routing records it only for a caller who hung up while waiting, in a queue or while ringing an agent, before any agent answered, so it holds even when the platform had answered the caller itself to play the queue. - A call the platform sent to voicemail is voicemail: a
CallSentToVoicemailevent, or the voicemail flag set on the interaction when it was sent. The platform answers the leg to record the message, and that answer does not make it an answered call. - Any other call with an answer time is answered.
- A call that has not ended is in progress.
- A call whose session failed is failed.
- Any other inbound call that ended unanswered is abandoned (a caller who hung up before reaching a queue has no abandon on record); an outbound one is not connected.
A call sent to voicemail stays on the line while the caller listens to the greeting and leaves a message, so it ends when the caller hangs up. Sending it to voicemail ends routing's part in it (the caller leaves the queue and the agent is released) and records CallSentToVoicemail; the call's single CallEnded event and the interaction's EndedUtc come from the hangup. End-to-end duration therefore includes the greeting and the message, while wait stops when the call left the queue for voicemail and connected duration is zero.
A caller who hangs up before anybody answers cancels the call, and the interaction's status is Ended, not Failed. Failed is kept for a provider that could not carry the call, a dial that could not be placed, or an agent leg that could not be bridged.
Because the outcome is derived from the event log rather than stored, history reports correctly without a data migration. Interactions written before a caller's cancel stopped settling as Failed are still reported as abandoned, because the abandon was recorded alongside them.
Report catalog
Each report uses the shared date/time filter, export, permission, scheduling, and aggregation behavior above. “Columns/KPIs” names the complete default output.
Running and filtering a report
- Enable Reports and the feature that contributes the report. There is no separate Contact Center reports feature: the Contact Center reports switch on when Contact Center Work Distribution (
CrestApps.OrchardCore.ContactCenter.Queues) and Reports are both enabled. The CRM reports come with Omnichannel Management. - Open Reports in the admin menu and select a report.
- Set From and To in the tenant's local time zone. The default is today, from the start to the end of the current tenant-local day. A Contact Center report refuses a range wider than 400 days (
CrestApps:ContactCenter:Reporting:MaximumReportRange). - Narrow the population with the displayed dimensions. Interaction reports offer queue group, queue, agent, channel, and direction (queue usage has no agent filter); workforce, call-quality and call-handling reports offer agent, and the last two also queue; campaign, subject and CRM reports offer campaign group, campaign, channel, source, and status. The enterprise interaction reports have no grouping choice: each has the fixed layout described below.
- Select Show. Every metric, table row, total, percentage, and duration is recalculated from the filtered raw population.
- Open Export and choose Export CSV or, when Reports (OpenXml) is enabled, Export Excel (.xlsx). With only CSV available the toolbar shows a single Export CSV button. Export actions submit the same filter form, so downloaded data matches the visible report.
An empty dimension means All. If From is later than To, the report swaps the resolved UTC boundaries before querying. Filters combine with logical AND; for example, selecting Queue A, Agent B, Voice, and Inbound returns only interactions matching all four dimensions.
Executive and operational reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 1 | Executive performance dashboard | Gives executives and directors a concise, presentation-ready view of demand, accessibility, responsiveness, efficiency, transfers, recording coverage, channel adoption, queue SLA health, and agent workload. Enables capacity, provider, customer-experience, and operating-model investment decisions. | Historical interactive dashboard; enterprise cohort plus daily, channel, queue, agent, and channel-detail views. | Queue group, queue, agent, channel, direction; fixed day, channel, queue and agent sections; chronological trend, highest-volume queues, and highest-volume agents. | Interactions, inbound offered, inbound answered, inbound answer rate, abandoned, abandonment rate, voicemail, callback requested, failed, ASA, AHT, transfer rate, recording coverage, daily offered/answered/abandoned, channel volume, queue service level, handled by agent. | KPI hero cards + daily multi-series line chart + channel-mix doughnut + queue service-level bar chart + top-agent workload bar chart + channel detail table; enterprise → channel/queue/agent → interaction detail → recording. |
| 2 | Call insights | Gives operations leaders a broad interaction outcome and duration summary with channel/status breakdowns and daily volume. Supports trend and exception review. | Historical dashboard; enterprise cohort and one day per row. | Queue group, queue, agent, channel, direction; day, channel and status sections; chronological daily rows. | Total, inbound, outbound, answered, abandoned, voicemail, callback requested, failed, answer rate, abandonment rate, AHT, ASA, connected duration, wrap-up duration, volume by outcome. | KPI cards + bars + daily trend; day → channel/status → interaction detail. |
| 3 | Interaction volume trend | Shows demand and outcome movement over time for directors, workforce planners, and analysts. Supports staffing and anomaly detection without claiming a forecast. | Historical trend; one UTC day per row. | Queue group, queue, agent, channel, direction; day; chronological. | Date, interactions, answered, abandoned, failed. | Trend line + stacked bars; day → interval → interaction detail. |
| 4 | Interval performance | Combines daily workload, outcomes, rates, ASA, and AHT for operations reviews. Enables interval-level staffing and service remediation. | Historical interval report; one UTC day per row. | Queue group, queue, agent, channel, direction; day; chronological or worst abandonment/ASA. | Date, interactions, answered, abandoned, answer rate, abandonment rate, ASA, AHT. | Trend line + table; day → queue/channel → interaction detail. |
Queue and routing reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 5 | Queue usage | Shows handled outcomes, duration, configured SLA threshold, and current waiting depth. Supervisors use it to rebalance live operations. | Historical plus near-real-time snapshot; per-queue detail plus current queue-group aggregates and a grand total. | Queue group, queue, channel, direction; current queue membership; waiting then handled volume. | Queue/group, handled, answered, abandoned, AHT, ASA, waiting now, and per-queue SLA threshold. | Queue table + queue-group aggregate table; queue → interval → interaction detail. |
| 6 | Queue service level | Measures threshold attainment with a mathematically stable denominator. Enables SLA governance and queue-policy changes. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; ascending service level. | Queue, SLA threshold, eligible offered, answered within SLA, service level, ASA. | Gauge + table; queue → interval → answered/abandoned detail. |
| 7 | Queue abandonment analysis | Identifies queues where customers leave before answer and quantifies wait before abandonment. Supports staffing and routing remediation. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending abandonment rate or volume. | Queue, inbound offered, answered, abandoned, abandonment rate, average wait before abandon, voicemail, average wait before voicemail, callback requested, average wait before callback. | Heat map + table; queue → interval → abandoned interaction detail. |
| 8 | Channel performance | Compares interaction outcomes and durations across supported media. Helps allocate channel capacity and identify channel-specific failures. | Historical; one channel per row. | Queue group, queue, agent, channel, direction; channel; descending interactions. | Channel, interactions, answered, abandoned, failed, answer rate, abandonment rate, ASA, AHT. | Stacked bars + table; channel → queue/agent → interaction detail. |
| 9 | Direction performance | Separates inbound and outbound operating behavior without mixing inbound SLA semantics with outbound attempts. | Historical; one direction per row. | Queue group, queue, agent, channel, direction; direction; descending interactions. | Direction, interactions, answered, abandoned, failed, answer rate, abandonment rate, ASA, AHT. | Side-by-side bars; direction → outcome → interaction detail. |
| 10 | Provider performance | Compares normalized outcomes and duration across communications providers. Supports provider reliability and sourcing decisions. | Historical; one provider per row. | Queue group, queue, agent, channel, direction; provider; descending failures or interactions. | Provider, interactions, answered, abandoned, failed, answer rate, abandonment rate, ASA, AHT. | Scatter plot + table; provider → status → interaction detail. |
| 11 | Interaction outcome summary | Shows volume and response metrics by interaction outcome (answered, abandoned, voicemail, callback requested, failed, not connected, in progress). Helps operations teams isolate failures and unfinished work. | Historical; one status per row. | Queue group, queue, agent, channel, direction; outcome; descending interactions. | Outcome, interactions, answered, abandoned, failed, answer rate, abandonment rate, ASA, AHT. | Stacked bar + table; outcome → provider/queue → interaction detail. |
Agent reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 12 | Agent productivity | Gives supervisors handled volume, channel mix, connected time, wrap-up, AHT, and completed CRM work. Enables balanced coaching based on workload and outcomes. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending handled. | Agent, handled, inbound handled, outbound handled, connected duration, wrap-up duration, average wrap-up, AHT, activities completed. | Table + scatter plot; agent → day → interaction → activity. |
| 13 | Agent handle time analysis | Separates connected and wrap-up contributions to handle time by agent. Supports targeted process and coaching review without treating lower AHT as inherently better. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending AHT or volume. | Agent, handled, average connected duration, average wrap-up, AHT, total handle time. | Scatter plot (volume vs AHT) + table; agent → interaction detail → recording. |
| 14 | Agent wrap-up performance | Shows wrap-up starts, completions, completion rate, and duration. Helps supervisors identify incomplete after-contact work and workflow friction. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; ascending completion rate or descending duration. | Agent, wrap-up started, wrap-up completed, completion rate, average wrap-up, total wrap-up. | Table + bars; agent → incomplete/completed wrap-up interactions → CRM activity. |
Interaction, transfer, and recording reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 15 | Interaction detail | Provides the auditable source row behind summary reports. Analysts and supervisors use it to reconcile totals and investigate individual contacts. | Historical drill-down; one interaction per row. | Queue group, queue, agent, channel, direction; no grouping; newest first. | Started UTC, interaction id, channel, direction, status, queue, agent, provider, wait, connected duration, wrap-up, transfer count. | Table/timeline; interaction → event lifecycle → CRM activity → recording. |
| 16 | Transfer analysis | Quantifies transfer outcomes, destination types, completion, and latency. Supports routing improvement and first-owner coaching without claiming FCR. | Historical; one target-type/result pair per row. | Queue group, queue, agent, channel, direction; target type and result; descending transfers. | Target type, result, transfers, completed, completion rate, average completion time. | Sankey + table; target/result → interaction → transfer history. |
| 17 | Recording coverage | Finds answered voice interactions lacking a recording reference and compares provider coverage. Supports compliance and troubleshooting. | Historical; one provider per row. | Queue group, queue, agent, channel, direction; provider; ascending coverage. | Provider, answered voice interactions, with recording, without recording, coverage. | Gauge + table; provider → uncovered interaction → event/audit detail. |
Campaign and subject reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 18 | Campaign summary | Shows Contact Center campaign inventory progress and attempts. Directors use it to compare throughput and unresolved workload. | Historical; campaign rows plus campaign-group aggregate rows. | Campaign group, campaign, channel, source, status; campaign rows plus campaign-group rows; descending total. | Campaign or campaign group, total, completed, pending, in progress, failed, cancelled, not in service, attempts, completion rate. | Stacked bar + table; campaign group → campaign → status → activity → interaction. |
| 19 | Subject inventory | Shows progress by CRM subject content type. Business owners use it to understand which workflows generate backlog or failures. | Historical; one subject type per row. | Campaign group, campaign, channel, source, status; subject type; descending total. | Subject type, total, completed, pending, in progress, failed, cancelled, not in service, attempts, completion rate. | Stacked bar + table; subject → activity → interaction/disposition. |
CRM activity reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 20 | Activity summary | Gives CRM operations a top-level inventory and completion view with source, channel, status, and daily creation breakdowns. | Historical dashboard; cohort plus one day per row. | Source, channel, status, campaign; day/source/channel/status; chronological daily rows. | Total, completed, pending, in progress, failed, cancelled, completion rate, daily created. | KPI cards + bars + trend; dimension → activity list → activity. |
| 21 | Activity backlog | Quantifies currently nonterminal, unassigned, overdue, and reserved work created on or before To. Enables backlog clearance and assignment decisions without dropping older open work. | Current-state dashboard constrained by creation cutoff; one status per row. | Status, source, channel, campaign; status; descending open count. | Open, unassigned, overdue, reserved; status totals and progress columns. | KPI cards + stacked bars; status → activity. |
| 22 | Activity aging | Places currently open work created on or before To into stable age bands and highlights unassigned and overdue work. Supports backlog risk and staffing decisions. | Current-state aging report; one age bucket per row. | Source, channel, campaign, status; age bucket; oldest first. | Age bucket, activities, share, unassigned, overdue. | Aging histogram + table; bucket → activity detail. |
| 23 | Activity source performance | Compares manual, automatic, dialer, callback, inbound, workflow, and API work progress. Supports automation and workload-source decisions. | Historical; one source per row. | Source, status, channel; source/day; descending total. | Source, total, completed, in progress, pending, failed, cancelled, completion rate, average attempts. | Stacked bars + table; source → status → activity. |
| 24 | CRM channel performance | Shows CRM work progress by communication channel independent of interaction session outcomes. Helps identify channel workflow bottlenecks. | Historical; one channel per row. | Channel, source, campaign, status; channel/day; descending total. | Channel and standard activity progress columns. | Stacked bars + table; channel → campaign/status → activity. |
| 25 | Activity kind performance | Compares calls, messages, meetings, tasks, and future work kinds. Supports workload-mix planning. | Historical; one activity kind per row. | Kind, source, status; kind/day; descending total. | Activity kind and standard activity progress columns. | Donut + table; kind → source/status → activity. |
| 26 | Activity assignment performance | Shows progress by assignment lifecycle state and surfaces work stalled before ownership. Supports reservation and routing improvements. | Historical; one assignment status per row. | Assignment status, assignee, queue, source; assignment/day; descending total. | Assignment status and standard activity progress columns. | Funnel + table; assignment status → activity/reservation detail. |
| 27 | Activity attempt analysis | Shows outcome by nonnegative attempt count. Helps tune retries and identify diminishing returns. | Historical; one attempt count per row. | Attempt count, source, campaign, status; attempts; ascending attempts. | Attempts, activities, completed, failed, completion rate. | Funnel + table; attempt count → campaign/source → activity interactions. |
| 28 | Contact type workload | Compares activity workload across configured CRM contact content types. Supports business-unit and data-model planning. | Historical; one contact content type per row. | Contact type, source, campaign, channel; contact type/day; descending total. | Contact type and standard activity progress columns. | Bars + table; contact type → activity → contact timeline. |
| 29 | Activity urgency performance | Shows whether urgent work is completing or accumulating. Supports priority-policy and staffing decisions. | Historical; one urgency level per row. | Urgency, status, source, channel; urgency/day; urgency then total. | Urgency and standard activity progress columns. | Heat map + table; urgency → status → activity. |
| 30 | Campaign performance | Gives CRM campaign owners completed-versus-pending progress across activity inventory. Supports campaign pacing and remediation. | Historical; campaign rows plus campaign-group aggregate rows. | Campaign group, campaign, source, channel, status; campaign or group/day; descending total. | Campaign or campaign-group display name, total, completed, pending, in progress, failed, cancelled, completion rate. | Stacked bars + table; campaign group → campaign → status → activity. |
| 31 | Disposition breakdown | Shows how completed activities were dispositioned and each disposition's share. Enables outcome governance and workflow review. | Historical by completion date; one disposition display name per row. | Disposition, campaign, subject, channel, agent; disposition/day; descending completed. | Disposition display name, completed, share of completed activities. | Donut + table; disposition → completed activity → interaction history. |
Additional operations, queue, and interaction reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 32 | Hour-of-day performance | Identifies recurring demand and service patterns for intraday operating decisions. | Historical; one UTC hour per row. | Queue group, queue, agent, channel, direction; hour; chronological. | Standard interaction performance columns including volume, outcomes, rates, ASA, and AHT. | Table; hour → interaction detail. |
| 33 | Day-of-week performance | Compares recurring weekday workload and outcomes for staffing-pattern review. | Historical; one weekday per row. | Queue group, queue, agent, channel, direction; weekday; descending volume. | Standard interaction performance columns. | Table; weekday → interaction detail. |
| 34 | Queue performance summary | Gives floor managers one consistent comparison of workload, outcomes, ASA, and AHT by queue. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending volume. | Queue, interactions, answered, abandoned, failed, answer rate, abandonment rate, ASA, AHT. | Table; queue → interaction detail. |
| 35 | Queue wait time analysis | Quantifies customer waiting effort and queue-time consumption. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending total wait. | Queue, interactions, total wait, average wait, maximum wait. | Table; queue → high-wait detail. |
| 36 | Queue handle time analysis | Quantifies connected plus after-contact work time consumed by each queue. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending total handle time. | Queue, interactions, total handle time, average handle time, maximum handle time. | Table; queue → interaction detail. |
| 37 | Queue transfer performance | Finds queues that transfer work frequently and supports routing redesign. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending transfer volume. | Queue, handled, transferred interactions, transfer events, transfer rate. | Table; queue → transfer detail. |
| 38 | Interaction lifecycle duration | Separates wait, connected, wrap-up, and end-to-end duration by final state. | Historical; one status per row. | Queue group, queue, agent, channel, direction; status; status order. | Status, interactions, average wait, connected, wrap-up, end-to-end duration. | Table; status → interaction detail. |
| 39 | Long interaction detail | Supports cost, coaching, and exception review for sessions lasting at least 15 connected minutes. | Historical detail; one interaction per row. | Queue group, queue, agent, channel, direction; newest first. | Standard interaction detail columns. | Table; interaction → recording. |
| 40 | Failed interaction detail | Gives IT and operations an auditable list of failed communication attempts. | Historical detail; one failed interaction per row. | Queue group, queue, agent, channel, direction; newest first. | Standard interaction detail columns. | Table; interaction → provider/event history. |
| 41 | Abandoned interaction detail | Gives queue managers the source rows behind abandonment totals. | Historical detail; one abandoned interaction per row. | Queue group, queue, agent, channel, direction; newest first. | Standard interaction detail columns. | Table; interaction → queue history. |
| 42 | High-wait interaction detail | Identifies interactions with at least 60 seconds of observed wait. | Historical detail; one interaction per row. | Queue group, queue, agent, channel, direction; newest first. | Standard interaction detail columns. | Table; interaction → queue history. |
Additional agent performance reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 43 | Agent interaction volume | Compares workload and supporting outcomes by user. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending handled. | Agent, handled, answered, failed, transfers, recorded, AHT. | Table; agent → interaction detail. |
| 44 | Agent outcome performance | Surfaces agents with high failed interaction volume without treating failure as a quality score. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending failures. | Agent and standard agent performance columns. | Table; agent → failed interactions. |
| 45 | Agent inbound performance | Isolates inbound workload and outcomes by agent. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending inbound volume. | Agent and standard agent performance columns. | Table; agent → inbound detail. |
| 46 | Agent outbound performance | Isolates outbound workload and outcomes by agent. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending outbound volume. | Agent and standard agent performance columns. | Table; agent → outbound detail. |
| 47 | Agent transfer performance | Supports coaching and routing review with transfer volume by agent. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending transfers. | Agent, handled, answered, failed, transfers, recorded, AHT. | Table; agent → transfer detail. |
| 48 | Agent recording coverage | Finds agent-associated answered interactions lacking recording references. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending recorded volume. | Agent and standard agent performance columns. | Table; agent → uncovered interaction. |
| 49 | Assigned user performance | Compares CRM activity progress and attempts by assigned user. | Historical; one user per row. | CRM filters; assigned user; descending activity count. | Assigned user and standard activity progress columns. | Table; user → activity detail. |
| 50 | User completion time | Measures average, median, and maximum CRM activity cycle time by assigned user. | Historical; one user per row. | CRM filters; assigned user; descending average cycle time. | User, completed, average cycle time, median cycle time, maximum cycle time. | Table; user → completed activities. |
| 51 | Daily user productivity | Shows daily completed work, attempts, and cycle time by assigned user. | Historical; one user/day row. | CRM filters; day/user; chronological. | UTC date, user, completed, average cycle time, attempts. | Table; day/user → activity detail. |
| 52 | Overdue workload by user | Supports supervisor intervention by showing overdue volume and age per owner. | Current-state as-of report; one user per row. | CRM filters; user; descending overdue count. | User, overdue, unassigned, average overdue age, maximum overdue age. | Table; user → overdue activities. |
Workforce and payroll reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 53 | Agent time summary | Provides observed on-duty and state-duration inputs for workforce and payroll review. | Historical presence-duration report; one agent per row. | Date/time and agent; agent; descending signed-in time. | Agent, signed-in, available, busy, wrap-up, break, other not-ready, utilization. | Table; agent → presence audit. |
| 54 | Daily agent timecard | Provides day-level observed timecard inputs without applying schedules or pay rules. | Historical; one tenant-local day/agent row, one semantic subtotal per day, and one grand total. | Date/time and agent; day/agent; chronological. | Date, agent, signed-in, productive presence, busy + wrap-up, break + away, first observed, last observed. | Table; day/agent → presence audit. |
| 55 | Presence status duration | Shows how signed-in time is distributed across every presence state. | Historical; one status per row. | Date/time and agent; status; descending duration. | Presence status, duration, share of signed-in time, intervals. | Donut/table; status → agent intervals. |
| 56 | Agent break and away analysis | Quantifies break frequency and duration for workforce review. | Historical; one agent per row. | Date/time and agent; agent; descending break time. | Agent, breaks, total break time, average break, longest break. | Table; agent → presence audit. |
| 57 | Ready versus not-ready time | Separates ready, actively working, and not-ready time. | Historical; one agent per row. | Date/time and agent; agent. | Agent, ready time, working time, not-ready time, ready share. | Stacked bars/table; agent → status durations. |
| 58 | Agent utilization | Measures busy plus wrap-up time as a share of all observed signed-in time. | Historical; one agent per row. | Date/time and agent; agent; descending utilization. | Agent, working time, signed-in time, utilization. | Bar/table; agent → time summary. |
| 59 | Agent occupancy | Measures busy plus wrap-up time against available handling time. | Historical; one agent per row. | Date/time and agent; agent; descending occupancy. | Agent, working time, available handling time, occupancy. | Bar/table; agent → time summary. |
| 60 | Presence reason breakdown | Quantifies time associated with configured break/not-ready reasons. | Historical; one status/reason row. | Date/time and agent; status/reason; descending duration. | Status, reason, duration, intervals. | Table; reason → presence audit. |
| 61 | Agent presence audit | Provides the durable transition ledger used to reconcile time reports. | Historical detail; one transition per row. | Date/time and agent; newest first. | Changed UTC, agent, previous/current/requested status, reason, queue count, campaign count, event. | Table; transition → event record. |
| 62 | Queue signed-in hours | Attributes observed signed-in duration to queue memberships active during each presence interval. | Historical; one queue per row. | Date/time and agent; queue; descending duration. | Queue id, signed-in time, agent intervals. | Table; queue → agent presence audit. |
| 63 | Campaign signed-in hours | Attributes observed signed-in duration to campaign memberships active during each presence interval. | Historical; one campaign per row. | Date/time and agent; campaign; descending duration. | Campaign id, signed-in time, agent intervals. | Table; campaign → agent presence audit. |
| 64 | Payroll timecard inputs | Exports observed on-duty and state-classification durations for payroll review. It intentionally does not calculate wages. | Historical; one agent per row. | Date/time and agent; agent. | Agent, observed on-duty, productive presence, break + away, meeting + training, other not-ready. | Table/export; agent → daily timecard. |
Billing and usage reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 65 | Queue usage for billing | Supplies queue-level measured usage for invoice and client chargeback reconciliation. | Historical; one queue per row. | Queue group, queue, agent, channel, direction; queue; descending connected time. | Queue, interactions, answered, connected, wrap-up, queue wait, transfers, recordings. | Table/export; queue → interaction detail. |
| 66 | Agent usage for billing | Supplies agent-level measured service time for payroll and internal allocation. | Historical; one agent per row. | Queue group, queue, agent, channel, direction; agent; descending connected time. | Agent and standard usage columns. | Table/export; agent → interaction detail. |
| 67 | Provider usage for billing | Reconciles provider invoices against normalized platform usage. | Historical; one provider per row. | Queue group, queue, agent, channel, direction; provider; descending connected time. | Provider and standard usage columns. | Table/export; provider → interaction detail. |
| 68 | Channel usage for billing | Allocates measured usage across voice, SMS, email, chat, and future channels. | Historical; one channel per row. | Queue group, queue, agent, channel, direction; channel; descending connected time. | Channel and standard usage columns. | Table/export; channel → interaction detail. |
| 69 | Daily usage for billing | Supplies invoice-period daily usage totals for reconciliation. | Historical; one UTC day per row. | Queue group, queue, agent, channel, direction; day; chronological. | Date and standard usage columns. | Trend/table/export; day → interaction detail. |
Additional CRM and campaign reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 70 | Activity creation by user | Audits which user or system actor created CRM work and its eventual outcomes. | Historical; one creator per row. | CRM filters; creator; descending total. | Creator and standard activity progress columns. | Table; creator → activity detail. |
| 71 | Campaign source mix | Compares campaign workload and outcomes by activity source. | Historical; one campaign/source row. | CRM filters; campaign/source; descending total. | Campaign, source, activities, completed, failed, completion rate. | Stacked table; campaign → source → activities. |
| 72 | Campaign channel mix | Compares campaign workload and outcomes by channel. | Historical; one campaign/channel row. | CRM filters; campaign/channel; descending total. | Campaign, channel, activities, completed, failed, completion rate. | Stacked table; campaign → channel → activities. |
| 73 | Campaign disposition mix | Shows campaign results by durable disposition. | Historical; one campaign/disposition display-name row. | CRM filters; campaign/disposition; descending total. | Campaign display name, disposition display name, activities, completed, failed, completion rate. | Table; campaign → disposition → activities. |
| 74 | Campaign attempt performance | Shows how campaign outcomes vary by attempt count. | Historical; one campaign/attempt row. | CRM filters; campaign/attempt; descending total. | Campaign, attempts, activities, completed, failed, completion rate. | Funnel/table; campaign → attempt → activities. |
| 75 | Channel endpoint usage | Supports technical capacity and configuration review by endpoint. | Historical; one endpoint per row. | CRM filters; endpoint; descending total. | Endpoint and standard activity progress columns. | Table; endpoint → activities. |
| 76 | Customer workload | Shows CRM work volume, outcomes, and attempts per customer record. | Historical; one customer per row. | CRM filters; customer; descending total. | Customer and standard activity progress columns. | Table; customer → CRM timeline. |
| 77 | Scheduled completion performance | Compares activities completed by their scheduled time with late completions. | Historical; one schedule-result row. | CRM filters; result; result order. | Schedule result, activities, share, average absolute variance. | KPI/table; result → activities. |
Additional compliance and technical reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 78 | Call leg performance | Gives IT teams provider-leg volume, answer state, status, and duration. Legs are read from the call session the voice topology projector maintains, so the report requires the Voice capability and states that requirement when it is absent. | Historical; one leg status per row. | Queue group, queue, agent, channel, direction; leg status. | Leg status, legs, answered, average duration. | Table; status → interaction/provider detail. |
AI escalations
An automated conversation that hands over to a person is the moment the automation admits it cannot help, so it is
the measurement that says whether the automation is earning its place. The data is already recorded: the activity
carries AiEscalated (durable, and set even though the activity leaves the automated lane, so containment still
counts it), and the interaction carries HandoffReason, HandoffSummary and HandoffAiSessionId.
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 79 | Containment and escalation | States what share of automated conversations were resolved without a person, per channel and per subject. A containment rate quoted without its escalation reasons tells an operator the automation is working without saying where it is not. | Historical; one channel and subject per row. | Date range; channel; subject; campaign. | Automated conversations, escalated, containment rate. | Table with trend; rate → escalated interaction list. |
| 80 | Escalation reasons | Groups escalations by the reason the model gave, which is where the next automation improvement is found. | Historical; one reason per row. | Date range; channel; queue. | Reason, escalations, share, median automated turns before escalation. | Bar; reason → interaction detail with the stored summary. |
| 81 | Post-escalation outcome | Answers whether escalating actually helped: what happened to the customer after a person took over. A high containment rate is not a good outcome if the escalations that do happen then go unanswered. | Historical; one disposition per row. | Date range; channel; queue. | Disposition, escalated interactions, average wait after escalation, abandoned after escalation. | Table; disposition → interaction detail. |
Each of the three requires the AI escalation path to be enabled; when it is not, the report states that requirement rather than rendering an empty grid, the same way the voice-capability reports do.
Call quality, call handling, and audit reports
| # | Report | Purpose and business value | Type and granularity | Filters; grouping; sorting | Columns/KPIs | Visualization and drill-down |
|---|---|---|---|---|---|---|
| 82 | Call quality | Shows how calls rated, the agents and network paths poor calls cluster on, their likely cause, and each poor call's measurements. Category Operations. | Historical; summary, one agent per row, one network path per row, and one poor call per row. | Queue, agent; agent and network path sections. | Calls measured, good, degraded, poor, average MOS, customer legs measured, poor on the customer's side, likely cause; per agent and per network path: calls, poor, poor %, average MOS; poor-call detail with MOS, loss, jitter, round trip, likely cause, microphone, and network path. | Tables; agent or path → poor call → interaction. |
| 83 | Talk, hold, ring and queue wait | Talk time with hold taken out, hold, ring time and missed offers by agent, and the real queue wait and abandons by queue, from the calls' recorded changes. Category Agent Performance. | Historical; summary, one agent per row, and one queue per row. | Queue, agent; agent and queue sections. | Calls handled, talk time excluding hold, hold time, average ring to answer, missed offers, average queue wait, abandoned; per agent: calls, connected, hold, holds, talk, offers accepted/declined/missed/cancelled, ring time; per queue: queued, answered, abandoned, abandon rate, average wait to answer, average wait before abandon, longest wait. | Tables. |
| 84 | Agent activity timeline | Lists every agent state, offer, connection and call change in order, with start, end, duration and who made each change. Category Compliance & Audit. | Historical detail; one entry per row. | Agent; in order. | Agent, start, end, duration, kind, activity, detail, interaction, changed by, logged time; summary counts of entries, state changes, offers, call changes, and flagged entries. | Table; entry → interaction. |
| 85 | Reconciled payroll timecard | Per agent per day in the tenant's time zone, signed-in time beside the time in each state to the second, with a check that flags every day that does not add up. Category Workforce & Payroll. | Historical; one tenant-local day/agent row. | Agent; day/agent. | Agent, first in, last out, signed in, available, reserved, busy, wrap-up, break + away, meeting + training, other not ready, states total, difference, check; summary of reconciled and unreconciled days. | Table; flagged day → agent activity timeline. |
Known data limitations
The following common report families are intentionally not emitted until their source data exists:
- Workforce planning: forecast accuracy, staffing requirement, schedule adherence, conformance, shrinkage, overtime, and paid-hours compliance require forecasts, schedules, employment calendars, and pay policies. The included occupancy, utilization, and timecard reports use durable observed presence only.
- Quality management: evaluation scorecards, calibration, coaching completion, compliance failures, and evaluator productivity require the planned quality module.
- Customer experience: CSAT, NPS, customer effort, and first-contact resolution require survey responses and a durable case/resolution-reopen correlation model. Disposition alone is not a valid substitute for FCR.
- Advanced interaction analytics: sentiment, topic, silence, interruption, script adherence, and AI summaries require transcript analytics and an enabled provider.
- IVR journey analytics: menu path, containment, self-service completion, and opt-out require multi-step IVR event capture.
- Historical backlog reconstruction: activity reports use the current persisted activity status. Backlog and aging include all currently nonterminal work created by the selected To boundary, but they cannot reconstruct whether an activity that is completed today was still open at a past boundary without a dedicated activity-state history projection.
- Payroll and billing money: reports provide measured durations and counts, but wages, premiums, contracted rates, billing increments, taxes, discounts, currency, and invoice totals require organization-specific rate and policy data that is not persisted by these modules.
These exclusions prevent plausible-looking but operationally false enterprise KPIs.