Cheqq Docs
Core ConceptsWorkflows

Expressions

The {{...}} templating syntax for referencing trigger input and prior step output, plus runtime date/time values.

Steps reference each other's output — and the data that started the run — using {{...}} templating.

Syntax

Wrap a path in double curly braces: {{steps.stepName.output}}. Paths support:

  • Dot notation for object properties: {{steps.classifyEmail.category}}
  • Bracket notation with quotes for step names containing spaces: {{steps["Classify email"].result}}
  • Array indexes: {{steps.fetchItems.items[0].name}}

What's addressable

  • trigger — the data that started this run (an alias for inputData when the run started from a trigger).
  • inputData — the same input, addressable directly.
  • steps — every completed step's output, keyed by the step's name (e.g. steps.classifyEmail).

Use the editor's data picker (opened from any field that accepts an expression) to browse what's available rather than typing paths by hand — it lists every upstream step and trigger field for the step you're configuring.

Runtime and date/time values

A separate set of values, all under runtime., gives you the current date and time without depending on any step:

ValueResolves to
{{runtime.currentDate}}Today's date
{{runtime.currentDateTime}}The current date and time
{{runtime.currentTime}}The current time
{{runtime.currentTimestamp}}The current Unix timestamp
{{runtime.currentYear}}The current year
{{runtime.currentMonth}}The current month
{{runtime.currentDayOfMonth}}The current day of month
{{runtime.currentUserId}}The ID of the user who triggered the run (where applicable)
{{runtime.timezone}}The workspace's timezone

Date/time-based runtime values accept an offset: {{runtime.currentDateTime + 24h}} or {{runtime.currentDate - 7d}}. Supported units are m (minutes), h (hours), d (days), and w (weeks).

Example

A Wait step configured to resume at {{runtime.currentDateTime + 24h}} pauses the run for exactly one day from when that step executes.

Branch and loop conditions are a different language

The if condition on a Branch step, and the condition on a Do While / Do Until loop, are not {{...}} templates — they're raw JavaScript boolean expressions evaluated in a sandbox. Inside a condition, inputData and steps are available directly (no braces), and loops additionally expose iteration (the current 0-indexed loop count):

steps.classifyEmail.category === "urgent"
inputData.amount > 1000
iteration < 5

The sandbox has no access to Node globals, process.env, or require — only the data explicitly passed into it.

Continue with Error handling for how failures in these steps are handled.

Was this page helpful?