Query Builder

Build filtered reports on orders, loyalty, and menu data without writing SQL—compose rules visually, run them safely on the server, and save queries your team can reuse.

Admin tools Reporting

Query Builder — visual filters and results (animated)

Visual rule builder with dataset selection, saved queries, and paginated results—no raw SQL required from staff.

Visual rule builder

Administrators with Query Builder permission use a familiar point-and-click interface to add conditions, combine them with AND/OR groups, and reset or refine filters before running.

Server-side, parameterized SQL

Only whitelisted columns and operators are allowed. Rules are converted to parameterized SQL on the server— not executed from client-generated strings—so ad-hoc reporting stays controlled and safer.

Saved queries

Name and save filter sets, load them from a dropdown, update in place, or delete when no longer needed. Switch datasets and your saved list stays organized by query name.

Results you can act on

Run a query and review matching rows in a scrollable results modal with column headers, formatted values, and client-side paging (50 rows per page) up to 200 rows per run.

Eight datasets, one builder

Pick a dataset, and the builder loads only the filters defined for that data source. Each dataset has its own column set, filter groups, and sort order—so operators stay focused on the question they are trying to answer.

Operations & guest data

  • Customer orders — order date, status, payment type, order type, totals, customer name and phone
  • Loyalty points — point entries, dates, comments, linked order and customer
  • Loyalty rewards — reward definitions and point costs
  • Loyalty redemptions — redemption history tied to customers and orders

Menu & catalog

  • Items — menu items, pricing, categories, and availability flags
  • Item options — modifier and option definitions
  • Item option mappings — how options attach to items
  • Item images — image records linked to menu items

Filter types built for restaurant data

Filters support the field types your data actually uses—strings, numbers, dates, and yes/no selects—with operators such as equals, contains, greater/less than, between, in list, empty/not empty, and more. Phone numbers use digit-normalized matching so formatted entries still find the right customer.

Example: customer orders

  • Filter by order status (open, paid, refunded, cancelled)
  • Payment type — cash, card, pay in store, saved card
  • Order type — dine-in, takeout, delivery, online
  • Date ranges on order date and numeric filters on subtotal, tax, and total
  • Customer ID, first name, last name, or phone

Who uses it

  • Available from the admin dashboard when Query Builder permission is granted
  • Ideal for owners, operators, and back-office staff who need quick lists without report development
  • Complements fixed sales reports with flexible, on-demand lookups
  • Runs in the browser; execution and row limits are enforced on the server
Step What you do Outcome
Choose datasetSelect customer orders, loyalty, items, or another sourceBuilder loads the right filters for that data
Build rulesAdd conditions and AND/OR groups; optional resetVisual filter set ready to run or save
Save (optional)Name the query and save for laterReusable definition in the saved-query list
Run queryExecute with up to 200 matching rowsModal table with columns and paging
ReviewPage through results, export or follow up in other toolsActionable lists for ops, loyalty, or menu review