Reports
Reports (/reports) is a builder for tabular data exports: columns (including fields of related entities), filters, grouping with subtotals, and sorting. A finished report can be viewed in the UI, exported to CSV / XLSX / PDF, and emailed on a schedule.
Reports complement dashboards and charts: a chart answers "how many and how it changes", a report answers "which exact records and with what values" — in a form ready to hand to a manager or a customer.
Who can do what
| Permission / role | Capabilities |
|---|---|
reports.view | See and run reports shared with you |
reports.build | Create and edit your own reports |
Report Builder role (report_builder) | Preset bundle: reports.build + reports.view |
Report Administrator role (report_administrator) | Same + the admin.reports section permission — administers all reports |
Administrator role (admin) | Full access to all reports |
Data is filtered by permissions
A report only shows records visible to the user running it under the record access rules. Scheduled reports run as the report owner — email recipients see data within the owner's permissions.
Creating a report
- Open the Reports section
- Click Create report
- On the General tab set the title, description and the entity — the data source
TIP
The entity cannot be changed after creation: columns, filters and groupings are bound to its schema. For another entity, create a new report.
The report is then configured tab by tab.
Columns
Add column opens the field tree:
- fields of the entity itself — any field from the builder;
- fields of related entities — through reference fields you can reach into the related record (up to 2 hops), e.g.
Ticket → Client → Company name; - each column can have a custom Column label.
Add related aggregate creates a computed column over child records: count, sum, average, min or max of a numeric field of a related entity, optionally with conditions on which child records to include. Example: an "Open deals" column in a clients report.
Filters
Each filter is a field (own or related), an operator and a value. Available operators: equals / not equals, contains, comparisons (>, <, >=, <=), "one of", date range, relative period (Today, Yesterday, This/Last week, Last N hours/days, …), between, empty / not empty, by category, related records exist.
A filter can be marked as a User parameter — it becomes editable at view time: the report viewer can substitute their own value (e.g. pick a period) without edit rights on the report itself. The Required flag prevents running the report until the parameter is filled in.
Grouping & Totals
Up to 3 grouping levels, each with its own sort direction. A grouped report can show totals per group and for the whole report:
count— number of records;sum,avg,min,max— over numeric fields;- percentiles
p50,p90,p95,p99… — over numeric fields (e.g. "90% of tickets are resolved faster than X hours").
A total is rendered in the column where the aggregated field is shown, so the field must be one of the report columns.
Sorting
A list of fields with direction — applied within groups, or to the whole report when there is no grouping.
Access
By default only the owner (and administrators) see the report. The Access tab shares it with:
- specific users;
- roles;
- groups.
Grantees see the report in their list and can run it (with their own parameter values) but cannot edit it.
Schedules
The Schedules tab automates delivery:
| Field | Description |
|---|---|
| Cron expression | Frequency in cron format, e.g. 0 8 * * 1 — Mondays at 08:00 |
| Timezone | Timezone the cron expression is evaluated in |
| Format | CSV, XLSX or PDF |
| Recipients | Email addresses and/or system users (can be mixed) |
| Parameters | Parameter-filter values for this schedule |
| Active | A disabled schedule is kept but never fires |
Run now fires the schedule immediately — handy for checking the email without waiting for cron.
Files up to 10 MB arrive as attachments; larger ones come as a download link (valid for 7 days).
Viewing and exporting
An opened report (/reports/view/…) renders data right in the UI — with groups, totals and a parameters panel when configured. The synchronous view is capped at 10,000 rows; for more data, use export.
Export runs in the background: click the format button — the job goes to a queue, and the finished file appears in the report's runs list for download. Format limits:
| Format | Row limit | Notes |
|---|---|---|
| CSV | practically unlimited | Fastest and lightest |
| XLSX | 50,000 | Excel-ready: headers, groups, totals |
| 1,000 | For printing/signing; for larger volumes use XLSX/CSV |
Generated files are kept for 30 days, then removed automatically. The run history can also be cleared manually.
Business-case examples
Weekly digest for a support manager
Entity Tickets:
- Columns: number, subject, status, assignee, created date;
- Filter: "Created date" → relative period → Last week;
- Grouping: by assignee; total —
count(how many tickets each person handled); - Schedule:
0 8 * * 1, XLSX, recipient — the team lead.
Every Monday at 08:00 the manager gets an email with a ready-made table for the past week.
SLA control via percentiles
Entity Tickets, assuming an automation or a process writes a numeric "Resolution time, h" field:
- Columns: category, resolution time;
- Parameter filter: "Closed date" → date range (the viewer picks the period);
- Grouping: by category; totals —
avgandp90of resolution time.
The report answers "90% of tickets in which category do we resolve faster than N hours" — more honest than an average, which masks outliers.
Clients with open deals (related aggregate)
Entity Clients from the CRM preset:
- Columns: name, manager + related aggregates:
countof deals with condition "status = Open" andsumof the "Amount" field of the same deals; - Sorting: by open deal amount, descending;
- Access: the sales role.
The result is a live "pipeline by client" that every manager opens with their own permissions — record access rules automatically narrow the list to their clients.
See also
- Dashboards and charts — real-time visual analytics
- Record access — how permissions shape report contents
- Users, groups, roles — assigning the
report_builder/report_administratorroles