xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Analytics & Reporting/Create a report with the report wizard
HOW-TO · Last reviewed

Create a report with the report wizard

VIDEO
Building your first report with the report wizard
A 5-minute walkthrough of this page is coming soon — the written steps below cover the same ground.

The report wizard builds grid reports step by step: choose the entity the report reads, join the related entities it needs, pick fields and arrange them as columns, add grouping, summaries, buckets and filters, then name and save it. The result opens immediately in the viewer and behaves like any other report — shareable, cloneable, subscribable. Document prints start in the same wizard (titled Document Print Data) from Document Prints → New document print and continue into the report designer.

Prerequisites

  • The Reports page of an app you can open; New report sits in its page header.
  • A clear idea of the primary entity — every row of a report starts as a row of one entity, with related data joined onto it.

The step rail

A grid report walks nine steps: Data Source, Relationships, Fields, Columns, Display Grouping, Display Summary, Bucketing, Filters, Details. A document print skips Bucketing. Next stays disabled until the current step has what it needs; Reports in the header leaves the wizard without saving.

Procedure

Step 1 — Start a new report

Open Reports and choose New report. The wizard opens as New Report on the Data Source step.

Step 2 — Choose the data source

Pick the Primary Entity — orders, invoices, visits, any entity in your data model including custom ones. This decides what one row of the report is: a report on orders produces one row per order, before any grouping. Once it is chosen, Related Entities lists the entity's lookups (link icon) and child collections (branch icon); tick the ones whose fields you need, and expand one to walk further along the relation. Search related entities narrows a long list.

New Report wizard on the Data Source step with Order chosen as the primary entity and its related entities listed with checkboxes
Every report starts by choosing the primary entity that defines one result row; its lookups and child collections then appear as related entities you can tick to join.UI captured
  1. 1

    The step rail shows the grid-report sequence; a document print drops Bucketing. Next stays disabled until the step is complete.

  2. 2

    Primary Entity decides what one row of the report is — here one row per order, before any grouping.

  3. 3

    Related Entities lists the primary entity's lookups (link icon) and child collections (branch icon); tick one to join its fields and expand it to walk further.

  4. 4

    Next opens Relationships, where each ticked relation gets its record-matching rule; Reports leaves the wizard without saving.

  5. 5

    Search related entities narrows a long relation list — the Order entity alone has more relations than fit on screen.

Read from archive. Under Reads from, a Live report has a Read from archive switch. Turn it on and the same report — the same entity, related entities, columns and filters — shows the rows your archive rules moved out of the live database instead of the live ones. It never shows both: archived and live rows are two different reports, or one report you switch. Every entity the report reads, related entities included, comes from its own archive table, so each of them needs an archive rule that has run at least once; a report that reads an entity without one stops with a message naming it. While the switch is on, the entity list offers the entities that have an archive rule. Custom fields are available only where the archive copied them. The switch can be changed later from Edit.

Step 3 — Set the relationships

Each ticked relation gets a Record matching rule: Keep all base records (a left join — rows without a match keep their place with blank related fields) or Only matched records (an inner join — rows without a match are dropped). Additional match rules let you add field-to-field conditions on top of the relation's own key. Reach for Only matched records deliberately: it is the most common reason a finished report has fewer rows than expected.

Step 4 — Choose fields

Select the fields to include from the primary entity and everything you joined. Fields are listed per entity with their captions; a lookup field brings its display name along, so a report on orders can show the account's name rather than its identifier.

Step 5 — Arrange the columns

The Columns step turns selected fields into the grid: set each column's caption, Width (px) and default sort (ascending or descending), drag to reorder, and group related columns under a band — a header row that spans several columns, given its own band label. You can also add a calculated column: an expression over the other columns. The expression is validated as you type against the columns actually present in the report, and an invalid one is refused with the position of the problem, so fix it in place before continuing.

Step 6 — Group and summarize

Display Grouping nominates columns to group rows by — by customer, by status, by a date at Year, Quarter, Month, Day or Day of Week granularity. Display Summary adds the arithmetic: Sum, Average, Count, Min or Max per column, shown per group and for the report total, with optional custom labels and a choice of where group summaries appear (in the group row, in a group footer, or both). A report with grouping and summaries reads as answers rather than raw rows.

Step 7 — Add buckets (grid reports)

Bucketing splits a measure across generated columns so a flat query becomes a comparison you can scan. Each bucket definition has a Label, an Active switch, a Bucket type — Numeric ranges you define (half-open: from ≤ value < to), Picklist values (one column per value) or Date (calendar periods, or a comparative period such as this month against last) — the field to Bucket on, an Aggregate (type and field) and an optional Caption prefix; values outside your ranges land in an Overflow column labelled Other unless you rename it. The wizard warns when a filter already restricts the field you are bucketing on.

Step 8 — Filter

Add the report's built-in conditions — the ones that define what the report means, such as Status = Open or a date window. Mark a condition as Promoted to expose it in the viewer as a filter bar, so readers can change the period or branch without opening the filter builder. Viewers can always add their own filters on top; theirs narrow the result without changing yours.

Step 9 — Name it and save

The Details step takes the Name (a unique internal name such as MonthlyRevenueReport), the Label readers see, a Description and the Folder — pick an existing folder or type a new one, as Persona/Sub-folder or a plain name (see Reports for how folders are read). For a grid report, Grid Layout offers Use centered content width for narrow reports. Visibility is not set here: the step reminds you that reports are created as private and shared afterwards. Save, and the report opens in its viewer with live data.

Step 10 — Share it

A new report is visible only to you. When it is ready for others, open its row's Edit action in the library and set Visibility to All users or Selected users with roles, profiles and teams — see Sharing & access for the mechanics and the pitfalls.

Expected result: the saved report opens with live rows, its totals and filters answer the intended question, and only the selected audience can discover and run it.

Cross-tabs without pivot reports

Pivot reports no longer exist. For a two-dimensional question — sales by product by month, counts by status by team — use the Bucketing step, which spreads a dimension across generated columns while keeping the row-level view, or a pivot-table widget on a dashboard.

Common problems

  • Fewer rows than expected. Almost always a relation set to Only matched records dropping rows that have no match, or a built-in filter tighter than intended. Switch the rule to Keep all base records, or loosen the filter, and compare the Total Records count.
  • A calculated column will not save. The expression validator rejected it and reports the offending position. Check field names against the columns you actually selected — an expression can only reference columns present in the report.
  • The report runs but colleagues cannot find it. It is still private. Nothing is wrong with the report — share it (Sharing & access).
  • Next is disabled. The current step is missing something required — most often a primary entity on Data Source or a label on Details.
  • "This report reads from the archive, and … has no archive table yet." Read from archive is on and one of the entities the report reads has never been archived. Run that entity's archive rule, remove the entity from the report, or turn Read from archive off.

Common questions

Can I change a report after saving it?

Yes — Edit in the report viewer's actions menu, or Design on the library row, reopens the wizard pre-filled with the current definition, and saving applies the changes in place. Sharing and subscriptions survive the edit; anyone who runs the report next sees the new definition. Note that Save in the viewer toolbar also writes column and filter changes into the shared definition — see Reports.

What happened to pivot reports?

They were removed, and existing pivot reports are deleted. A grid report with bucketing generates comparison columns (one per month, status or team) while keeping the row-level view; for an interactive matrix, add a pivot-table widget to a dashboard.

Where did the Archive data source go?

It became the Read from archive switch on Live reports (October 2026). The old Archive source read one entity with no related entities; the switch reads archived rows for any Live report, related entities included. Existing archive reports were moved to Live with the switch on and read exactly what they read before.

Is the data a snapshot from when I built the report?

No. A report stores only its definition; the query runs afresh every time anyone opens it, so the result always reflects the data at that moment. If you need a fixed point-in-time copy, export the result from the viewer, or set up a subscription — each delivery is generated at send time.