The query language
TraddalQL is a small, ShopifyQL-shaped language. Every query starts with the data to report on and what to measure:WHERE supports =, !=, <, <=, >, >=, IN (...), NOT IN (...),
IS NULL, IS NOT NULL, CONTAINS 'text', STARTS WITH 'text', combined
with AND, OR, NOT and parentheses. Text comparisons are
case-insensitive. Comments start with --.
DURING presets: today, yesterday, this_week, last_week,
this_month, last_month, this_quarter, last_quarter, this_year,
last_year, last_7_days, last_30_days, last_90_days, last_365_days,
all_time. A TIMESERIES without a window defaults to the last 30 days.
Schemas
Every schema that belongs to a shipment also groups by the shipment’s fields
(
shipment_ref, destination_country, receiver, incoterm, …) and its
customer. Weights and dimensions are stored in each shipment’s own units;
the _kg, _m3 and _litres metrics convert them so totals add up.
Volumetric weight uses the 5000 cm³/kg divisor.
The editor’s suggestions list every metric and dimension with a description,
and the Controls rail edits the same query text — pick metrics,
dimensions, a time window and a chart type without typing.
You can also ask the Assistant. With an exploration open, describe the
report (“shipments by carrier per week this quarter”) and it writes the query
into the editor and runs it. From any page it can save a report for you
(personal unless you ask it to share it) or change one you’ve saved — changes
to a saved report ask for your approval first.
Export downloads the results as an Excel workbook (numbers and dates stay
real values) or a CSV file.
Money metrics are summed in the row’s own currency: group by the schema’s
currency dimension when you bill in more than one.
Limits
- Reports run inside the organisation’s row-level security and never see another tenant’s data.
- A query runs for at most 15 seconds and returns at most 5,000 rows; a
TIMESERIESmay produce at most 2,000 buckets. - Report runs are limited per organisation (60 per minute) to keep dashboards responsive for everyone.
Scheduled deliveries
Any shared report can be sent to a customer automatically — as a file on their SFTP server or as an email attachment — at a set time. Open the report and choose Deliveries. Example: every weekday at 06:30 send a customer the shipment reference and the final-mile tracking number of their FedEx parcels:
Use Test connection to check an SFTP login before saving; the server’s host
key is shown so you can trust it. The key is pinned on first use and a delivery
fails rather than send to a server whose key has changed. Passwords and keys
are stored encrypted and are never shown again.
Every run is listed with its row count and status, and the file it sent can be
downloaded. Send now sends straight away; Resend these rows puts a past
run’s rows back in the queue for the next file.
When nothing is new the run is recorded as empty and no file is sent (switch
on Send a file even when there’s nothing new if the customer expects one
every day). After 5 failed runs in a row a delivery pauses itself and you are
notified; switch it back on once the problem is fixed.