Unify Logo Footer.svg
Unify Automations
Logo
Query Reports

Query Reports

Logo

3 mins READ

Query Reports retrieves data from a saved report in the platform's reporting store. Rather than writing raw SQL, you reference a report that has already been defined and apply optional filters at runtime — making it the fastest path to standardized report data inside an automation.

Overview

Query Reports lets you consume saved platform reports from within a workflow without repeating their underlying SQL logic. Identify the report you want, supply any runtime filter values, and the action returns the report's data rows ready for downstream processing. Results are paginated so large reports do not overwhelm your workflow.

Screenshot 2026-08-27 at 17.08.01 1.png
Screenshot 2026-08-27 at 17.08.01 1.png

This action is the right choice when a report is already configured in the platform and you want consistent, governed output — the same report definition used by your dashboards, now accessible from an automation for scheduling, routing, or export purposes.

Input

Field

Description

Required

Report ID

The unique identifier of the saved report to query. Find this on the report's settings page within the platform.

*

Filters

Optional runtime filter conditions to narrow the report's result set. Supplied as key-value pairs that map to the report's defined filter fields.

Page

The page number to retrieve from a paginated result set. Defaults to the first page when omitted.

Page Size

Maximum number of rows to return per page. Reduce this for reports with large row counts to keep downstream nodes manageable.

Output

The action returns a paginated result object containing:

  • An array of row objects representing the report's data, where each object's keys match the report's column definitions.

  • has more boolean flag indicating whether additional pages of results exist beyond the current page.

  • The current page index, which downstream nodes can use to request subsequent pages.

Notes

Keep the following in mind when using Query Reports.

  • Query Reports runs against the analytics and reporting store — the same data layer as Execute SQL Query, but accessed through a pre-defined report rather than ad hoc SQL.

  • Results are paginated. For reports with many rows, loop using the has more flag rather than expecting all data in a single call.

  • Runtime filters narrow the report's rows but do not change the report's column structure — the output schema always matches the saved report's definition.

  • If the report definition changes in the platform (columns added, filters modified), the output of this action will change accordingly on the next run — keep downstream nodes aligned with the current report schema.

  • To run entirely custom SQL rather than a saved report, use Execute SQL Query instead.

If the report returns no rows for the given filters, the output array is empty and has more is false. This is not an error — handle the empty case explicitly when your automation depends on data being present.

FAQs

Where do I find the Report ID?

The Report ID appears on the report's settings or detail page within the platform. It is a stable identifier — it does not change when the report's name or filters are updated.

Can I apply filters that the saved report does not define?

Filters supplied at runtime must match fields the report already exposes as filterable. Passing an unrecognized filter key will either be ignored or cause an error depending on the report's configuration — confirm the report's available filter fields before use.

How is this different from Execute SQL Query?

Query Reports uses a saved report definition — you reference it by ID and optionally filter it. Execute SQL Query lets you write arbitrary SQL directly. Use Query Reports when a governed, reusable report already exists; use Execute SQL Query for custom or one-off queries.