Report Output Controls
Narrow, sort, and cap the rows a report delivers to its destination. No SQL. No changes to the underlying Data Mart. Each report carries its own output controls. OWOX applies them at query time.
Output controls work for both Data Mart reports in the web app and reports created from the OWOX Extension.
| Control | What it does |
|---|---|
| Filters | Drop rows from the final result after all JOINs |
| Slices | Narrow a joined Data Mart before the JOIN (blended reports only) |
| Sort | Order the result by one or more columns |
| Limit | Cap the total number of rows |
Where to Find Output Controls
Section titled “Where to Find Output Controls”- Open a Data Mart and go to the Destinations tab.
- Find the report row, click its three-dot menu, and select Edit report.
- In the edit panel, go to the Report Columns section.
- Click the Output controls button (sliders icon).
Each section — Filters, Slices, Sort, and Limit — expands independently.
Filters
Section titled “Filters”A filter runs against the final SELECT, after all joins complete. Use filters to drop rows from the delivered report.
Supported operators by column type
Section titled “Supported operators by column type”| Column type | Available operators |
|---|---|
| String | is, is not, contains, does not contain, starts with, ends with, is empty, is not empty, is null, is not null, matches regex, does not match regex |
| Number | =, ≠, >, <, ≥, ≤, between, is null, is not null |
| Date / DateTime / Timestamp | on, not on, after, before, on or after, on or before, between, relative, is null, is not null |
| Time | at, not at, after, before, at or after, at or before, between, is null, is not null |
| Boolean | is true, is false, is null, is not null |
Relative date presets
Section titled “Relative date presets”For date columns, the relative operator re-evaluates on every run:
- Today / Yesterday
- This month / Last month / This year
- Last N days / Last N months (N from 1 to 3650)
Use it so rolling reports stay current without touching filter values manually.
Add a filter
Section titled “Add a filter”- In the Filters section, click + Add Filter.
- Pick a column — search by display name, technical path, or Data Mart name.
- Select an operator.
- Enter a value (if the operator requires one).
- Click Apply.
Multiple filters use AND logic — every condition must match for a row to appear. OR logic between filters is not supported.
To edit an existing filter, click the pencil icon on its row. To remove one, click the ×.
Slices
Section titled “Slices”Slices are pre-join filters. They narrow a joined Data Mart’s rows inside its own subquery, before the main query joins it in. This trims the joined data without affecting the source row count.
Slices are only available when a report includes columns from at least one joined Data Mart. See Joinable Data Marts to configure joins.
How slices differ from filters
Section titled “How slices differ from filters”The join between a source Data Mart and a joined Data Mart is a LEFT JOIN.
- A filter on a joined column acts on the fully-assembled result. It drops source rows with no matching joined value.
- A slice removes rows from the joined subquery before the join runs. Source rows with no match still pass through — with
NULLon the joined columns.
To also drop source rows with no match, add a filter on the same column (is not null).
When to use slices
Section titled “When to use slices”Use slices to limit what you pull from a joined Data Mart. Example: fetch only records where status = Active from a CRM Data Mart. The source rows stay intact regardless.
Use filters to drop rows from the final result — any column, regardless of join order.
Add a slice
Section titled “Add a slice”If you don’t see the Slices section, the report has no joined Data Marts. Join at least one first — see Joinable Data Marts.
- Expand the Slices section.
- Click + Add Slice.
- Pick a column — the picker groups joined columns under their Data Mart alias.
- Select an operator and enter a value.
- Click Apply.
Slices support the same operators as filters, matched to the column’s data type.
To edit an existing slice, click the pencil icon on its row. To remove one, click the ×.
Slices require an explicit column selection. Select at least one column in Report Columns — a report with no explicit selection rejects slices at save time.
Sort orders the rows in the delivered report. It runs on the final result, after filters and slices.
- Expand the Sort section.
- Click + Add Sort by.
- Choose a column and select Ascending or Descending.
- Add more rules to sort by multiple columns. Drag to reorder — the top rule wins.
To remove a sort rule, click the × on its row.
Sort runs before the row limit.
You can only sort by columns that are selected in Report Columns. Sorting by an unselected column fails validation. If you sort by a joined column, that column must be explicitly checked in the column picker — reports without an explicit selection run as
SELECT *over native fields only.
Limit caps the row count. It runs last — after filters, slices, and sort.
| Setting | Value |
|---|---|
| Default | No limit (all rows return) |
| Minimum | 1 |
| Maximum | 10,000,000 |
Enter a number in the Limit field to set a cap. Clear the field to return all rows.
When a limit shrinks the result, OWOX removes extra rows it wrote to the destination on the previous run. In Google Sheets, OWOX clears cells below the last data row so stale values don’t sit under fresh ones. See Google Sheets for details.
Order of Execution
Section titled “Order of Execution”OWOX applies output controls in this order on every report run:
- Slices — filter rows inside each joined subquery.
- Joins — join subqueries into the main query.
- Filters — filter the assembled result.
- Sort — order the remaining rows.
- Limit — cap the row count.
Keep Rules Valid After Schema Changes
Section titled “Keep Rules Valid After Schema Changes”Output controls reference columns by name. If you remove or rename a column that a filter, slice, or sort rule points to, the next run fails with a validation error. Open the report, then update or delete the affected rule.