









That makes the report a copy, not an interface. The moment the next submission arrives, the exported file is already behind the real system of record.
Reports read from the submission database, keeping operational views closer to the records users actually need.
Filtering, sorting, pagination, selectable rows, column visibility, and exports become part of the product experience.
Use the Reporting UI module in your application instead of hand-building a custom grid for every reporting request.
Without a reporting layer that understands those relationships, teams either export everything and stitch it together manually or ask developers to write custom MongoDB queries for every view.
Connect submissions across forms and resources through shared values instead of flattening every workflow into one giant form.
Add derived fields for dates, strings, counts, sums, averages, and other values without exporting data first.
Create grouped views and export report data when downstream evidence or offline analysis is still required.
If the reporting layer lives outside the application, teams have to recreate access rules and workflow controls somewhere else. That is where sensitive data quietly leaks into dashboards and exports.
Users need the right access to the reports and the underlying forms that provide report data.
Custom report actions can update submissions, trigger workflows, or call application services from selected records.
Run reports against submission data inside the same self-hosted architecture instead of sending sensitive exports into another analytics tool by default.
Give users interactive grids that support sorting, filtering, pagination, exports, and selected-row actions.
Build reports from the JSON submission documents Form.io already stores instead of maintaining a parallel reporting database for every use case.
Use MongoDB aggregation patterns for joins, calculated columns, grouped summaries, and derived values.
Keep report visibility tied to project and source-form permissions so reporting does not become a backdoor.
Reporting is not a replacement for every analytics platform. It is the operational reporting layer for teams that need application users to work with governed submission data directly.