Reports

Reports

 

XCALLY section

Analytics → Reports

On this page

 

Overview

The Reports section within XCALLY provides a powerful suite of pre-configured reports, along with options for customization, allowing you to tailor your reports according to the specific needs of your call center.

Additionally, you can create entirely new reports, import previously exported reports, and manage your custom reports from a centralized interface.

This page describes the Reports section on the New Client Experience, available from version 3.57.0. We recommend using the New Experience web interface to take full advantage of the latest features.

The Reports Section

In the Reports section, you can:

  • Use default reports offering essential call center statistics.

  • Customize existing reports as needed.

  • Create new reports under the "Custom Reports" folder.

  • Import previously exported reports in JSON format.

You can access and manage these reports under the Analytics menu.

The Reports section is part of the Analytics menu, providing a range of default reports that give insights into the performance of your call center. These reports are grouped into folders and sub-folders, making it easy to navigate and find the information you need.

The default reports are organized under the Motion Reports panel, which includes the following categories:

  • Voice (Queues, Calls, Agents, Cally Square, Recordings)

  • Motion Bull (Queue Campaigns, IVR Campaigns)

  • Chat, Email, OpenChannel, SMS, Fax

  • Agents

When you select a folder, the list of reports available within that folder will appear in the right panel.

image-20251124-144001.png

 

For each default report, you can perform several actions, by clicking the command menu

  • Copy Report

  • Preview Report

  • Run Report

  • Export Report JSON


Copy Report

The Copy Report action allows you to duplicate an existing report into another folder for edit.

  • Click on Copy Report.

  • Enter a name for the copied report.

  • Select the destination folder.

  • Once copied, the report will be available for editing and further use.

Preview Report

Click on Preview Report to display a limited preview of the report results, without considering date and time ranges.

To view the full report with date-based filtering, use the Run Report action.

Run Report

The Run Report action allows you to generate a report by specifying a date range and time filters.

Report formats available: CSV, PDF, Excel (XLS), and Web.

image-20251124-144307.png

 

The report will be available under Analytics → Extracted Reports, where you can download or delete it.

 

Web Format: If you select Web format, the report will immediately display results in a web pop-up.

Export Report JSON

The Export Report JSON action downloads the report structure in JSON format, enabling easy replication on another XCALLY Motion server without the need to rebuild the report.

 

Custom Reports

XCALLY Motion allows you to create and manage Custom Reports that are specific to your business needs.

To create a custom report:

  1. Navigate to the Custom Reports panel.

  2. Right-click on the Custom Reports folder and select Create Folder to organize your reports.

  3. Click on Create Report to add a new report.

Create a new Custom Report

You can create a new custom report in two ways:

  • Click on Import button to upload a report previously exported in JSON format.

  • Click on Add button to create a brand-new report by following the procedure and building the query.

image-20251124-150358.png

 

In the creation form insert:

  • Name: Enter a name for your custom report.

  • optional description

  • Table: Select the database table you want to query.

  • Click Add Report to create the report.

Please see Motion DB Tables for further details.

Note: Once the report is created, you cannot change the table name

Once you have created or imported a custom report, you can perform the following actions, clicking the command menu with three dots:

  • Copy Report

  • Preview Report

  • Run Report

  • Export Report JSON

  • Edit Report

  • Delete Report

 

When you hover over a folder in the Custom Reports section, the following options are available:

image-20250915-105828.png
  • Edit name – Click the ✏️ pencil icon to rename the folder.

  • Delete – Click the 🗑️ trash icon to remove the folder.

  • Create subfolder – Click the ➕ plus icon to create a new folder inside the selected one.

Usage notes:

  • Deleting a folder will also remove any subfolders it contains (make sure to back up reports if needed).

  • Organizing reports into folders and subfolders helps maintain a clear and structured workspace.

From version 3.58.0
It’s possible to use drag-and-drop functionality for folders within Custom Reports, allowing you to insert folders into other ones or move them to change their order



Edit Report

The Edit Report action enables you to design the query for retrieving data from the database. Clicking Edit Report will open the following sections:

  • Settings: Modify the report's name and description.

  • Fields: Choose the fields to include in the query (table columns or metrics).

  • Conditions: Define the filter conditions for the query.

  • Preview: View a preview of the report’s output.

  • Query: View the SQL query generated for the report.

Design the query

To build your report query, use the Fields and Conditions sections.

Fields Section

The Fields section allows you to define which data to fetch from the database.

The SELECT statement is used to retrieve data and the basic syntax is as follows:

SELECT field1,field2,fieldN FROM table_name;

 

Where field1, field2... are fields whose values you want to fetch. A field can be the table's column name or a metric.

For example: In the following query, uniqueid and duration are column names in the table report_call, while AVG(duration) is a metric. 

SELECT uniqueid,duration,AVG(duration) FROM report_call;

 


Add fields

To add a field in the query, go to fields section and click on + plus button.

You can choose from:

  1. Select a Column: Choose a table column to include in the report.

  2. Select an Existing Metric: Choose a predefined metric from the system.

  3. Write a Custom Metric: Define your own custom metric.


Select a column: is used to select a column of the table whose value you want to fetch. For this type of field, you can specify the following parameters:

  • Column: column of the table

  • Alias: define a custom name for the field that will appear in the report.

  • Function: choose functions to process string or numeric data → Reports | Functions & Formats

  • Format: to change the format of the column → Reports | Functions & Formats  

  • Group by (True or False): group data based on the selected column or metric

  • Order by (No Order, ASC or DESC): sort data (ASC or DESC) based on the selected field.

 

Select an existing metric: is used to select a metric predefined in the metrics section

  • Metric: a predefined metric

  • Alias: define a custom name for the field that will appear in the report

  • Group by (True or False): group data based on the selected column or metric

  • Order by (No Order, ASC or DESC): sort data (ASC or DESC) based on the selected field.

 

Write a custom metric: is used to to write a custom metric

  • Metric: a predefined metric

  • Alias: define a custom name for the field that will appear in the report

  • Function: choose functions to process string or numeric data Reports | Functions & Formats

  • Format: to change the format of the column → Reports | Functions & Formats

  • Group by (True or False): group data based on the selected column or metric. This GROUP BY clause follows the WHERE clause in a SELECT statement and precedes the ORDER BY clause.

  • Order by (No Order, ASC or DESC): sort data (ASC or DESC) based on the selected field.

 

Add Conditions

The Conditions section defines the criteria used to filter the data returned by the query. Use comparison operators such as =, <, >, LIKE, NOT LIKE

The WHERE clause is used to specify a condition to filter the records and fetch only the necessary data from a table. 

To add conditions:

  1. Click + Add Condition button

  2. Use logical operators AND/OR to combine multiple conditions.

You can also create groups of conditions using parentheses to define more complex filters. In this case you can use the Add Nested Group button to add a group of condition

image-20251124-151404.png

 

For example, two conditions with an AND operator as shown in the picture will result in the following Where clause:

WHERE (type = 'inbound' AND exten = 1001)

image-20251124-151518.png

It's mandatory to put the value inside single quotes ('value') for a string value.

 Using group of conditions as shown in the picture will result in the following Where clause:

WHERE (exten = 1005 AND (type = 'outbound' OR type = 'inbound'))

image-20251124-151704.png

 

Join Tables

To join data from multiple tables, use the Join functionality to build queries joining tables and retrieving data belonging to the sum of them.

  1. Select the table you wish to join.

  2. Choose the primary and foreign key fields to link the tables.

  3. Select the Join type (e.g., INNER JOIN, LEFT JOIN).

You can use this function and join XCALLY Motion DB Tables, if you have enough experience about DB structure and data queries.

  • Click on Add button to create a New Report. 

  • Enter the Name, select a table you want to query (from the list) and click on the button Select the table to join

  • Select the DB table field to join

Pay close attention to join on primary or secondary keys such as ID fields to avoid errors in data relationships.

 

  • Save the report and then Edit it in order to add Fields (the system will show all the fields available for each table joined), Conditions and to preview the query results.


Functions & Formats

XCALLY uses MYSQL Functions → https://dev.mysql.com/doc/refman/8.0/en/functions.html

XCALLY

MYSQL Function

Description

XCALLY

MYSQL Function

Description

Function

SUM

Return the sum

Function

COUNT

Return a count of the number of rows returned

Function

COUNT DISTINCT

Return the count of a number of different values

Function

MAX

Return the maximum value

Function

MIN

Return the minimum value

Function

AVG

Return the average value of the argument

Function

GROUP_CONCAT (ASC/DESC)

Return a concatenated string

Format

CONVERT_SIGNED

Cast a value as a signed BIGINT value.

Format

CONVERT_DOUBLE

Cast a value as a DOUBLE result value.

Format

SEC_TO_TIME

Converts seconds to 'hh:mm:ss' format

Format

DATE

Extract the date part of a date or datetime expression

Format

HOUR

Extract the hour

Format

ROUND

Round the argument

Format

UNIX_TIMESTAMP

Return a Unix timestamp

Use case

Scenario

You want to create a custom report, looking for the average waiting time in the queue for two specific inbound numbers. (so to know how long, on average, your customers have to wait in queue when calling these two numbers, before the call is answered).

In this case you can configure the report with these fields on report_queue table:

  • Column: report_queue.holdtime | Function AVG (average) | format SEC_TO_TIME

  • Column: report_queue.exten | Group by YES

While in conditions tab, you need to set the extensions of the inbound routes whose holdtime avg you want to calculate

image-20251210-132927.png
image-20251210-133035.png