Skip to main content

Variables

Variables are values referenced as {{name}} in endpoint paths, headers, parameters, bodies, export-system connection fields, action fields and filters. They keep tenant ids, date ranges, keys and secrets out of the objects that use them, and they are what lets one configuration be promoted between environments: the variable travels, the value stays.

Variables in the sidebar lists them with Variable, Value (masked for encrypted ones; a dash for the kinds that are computed), Type, Encrypted and actions Preview and Edit; system variables appear as read-only rows at the end. New Variable opens the dialog. The name is required, at most 50 characters, unique, and cannot be changed after creation; p:, j:, g: and o: are reserved prefixes.

Static​

A fixed value, optionally Encrypted. An encrypted value is stored encrypted and masked on every read; when editing, the field shows dots and an eye icon reveals it (the reveal is audited). Saving without revealing never overwrites the secret. Use encrypted variables for passwords and keys in credentials, headers and export systems.

Date​

A date computed when the variable is used, from an Expression: today, today±N (days), startOfMonth and endOfMonth (±N months, so startOfMonth-1 is the first day of last month), lastLoadedAt and lastLoadedAtDate (with -N for hours or days, and a Reference Dataset whose last-load stamp is used). Format uses the tokens YYYY, MM, DD, HH, mm, SS, default YYYY-MM-DD. Dates are UTC.

A Date variable's lastLoadedAt is the referenced dataset's stamp, which every instance's load advances. For an incremental filter that must be right per instance, use the system variable {{system:lastLoadedAt}} instead (see System variables).

Data reference​

Values read from an already-loaded dataset, so an endpoint can fan out over them or page from a watermark:

  • Schema, Dataset, Field — where the values come from. The eye icon shows a sample record to pick the field from.
  • Aggregation — None gives every distinct value and the endpoint is called once per value. MAX or MIN gives a single value, for example the highest entry number already loaded, to page from. Group by gives one MAX per distinct value of another field.
  • Filter (JSON) — a Mongo-style filter applied before the values are read, for example { "Closed": { "$ne": 1 } }. Other variables work inside it ({{system:today-7}}, {{lastEntry}}). The Tune icon opens the Filter builder, which shows sample rows and inserts a clause when you click a cell, with a cheat sheet of operators.
  • Ask AI in the filter builder opens a chat: describe the rows you want in your own words, and the assistant proposes a filter, runs it, and shows how many rows match and what the variable resolves to. Use this filter puts the proposal in the editor; Apply writes it. The assistant sees field names, types and a few sample values per field, never whole rows. Needs the Standard or Enterprise plan and AI configured.
  • Only values not loaded before — skip values whose generated endpoint URL already exists in the target dataset. For fan-out loops such as invoice numbers that drive an /invoices/{{number}}/lines fetch: once an invoice's lines are loaded, that number stops appearing.
  • Date format — format the value when it is a date.

When the referenced dataset belongs to the source system being loaded, the values are read for the instance being loaded; a dataset of another source system is read across all its instances. Deleted rows are never read.

Preview lists the values per instance. After previewing a MAX or MIN, the dialog suggests an index when the aggregation reads every matching record, and Create index builds it; without the index a large dataset makes the preview, and the loads using the variable, time out.

Key Vault secret​

The value is read from your Azure Key Vault each time the variable is used, so rotating the secret takes effect without editing anything here, and nothing is stored in Cloud Connector. Pick the Key Vault and the Secret (or type their names when they cannot be listed) and press Test access. The deployment's managed identity needs Key Vault Secrets User on the vault, and Reader on the subscription or resource group to list vaults. Enterprise only; an existing Key Vault variable keeps resolving after a downgrade.

Integer loop​

An incrementing counter for page-numbered APIs: ?page={{loop}} in the URL path or in a query parameter.

  • Start From (page-based APIs usually start at 1) and Increment By.
  • Stop Criteria (optional) — leave empty to stop when a page returns no rows. Set it only when the API returns a non-empty "no more data" answer; give a substring unique to that answer.
  • Max Iterations — a safety limit, default 500. Reaching it stops the loop without a warning, so raise it for a source with more pages.

A refused first page fails the load with the API's answer; a 4xx after rows have arrived counts as the end. Next-link paging is still followed inside each iteration.

Global variables​

A global variable has the same value in every environment and is referenced as {{g:name}}, always with the prefix ({{name}} and {{g:name}} are different variables). The Global variables tab on the Variables page, shown on plans with several environments, lists them; New Global Variable creates one. Globals are created and edited in the default environment only and listed read-only elsewhere. They can be static (optionally encrypted) or a Key Vault secret; the other kinds depend on the environment they run in. Packages carry globals, and an import writes them only when loading into the default environment.

System variables​

Resolved at load time, no setup needed:

VariableValue
{{system:today}}Today's date, YYYY-MM-DD, UTC. -N / +N offsets by days; :FORMAT changes the layout, for example {{system:today-1:YYYYMMDD}}
{{system:now}}Date and time, YYYY-MM-DD HH:MM:SS, with :FORMAT. No offset
{{system:lastLoadedAt}}The start of the previous finished load of this dataset for the instance being loaded, YYYY-MM-DDTHH:MM:SSZ. -N subtracts hours. A load that ended with a warning counts; a failed one never does. An instance that never finished a load gets 1970-01-01T00:00:00Z
{{system:lastLoadedAtDate}}The date alone. -N subtracts days

The two lastLoadedAt variables take no :FORMAT and are resolved in the endpoint URL path only: a token in a header, parameter row or body is sent as literal text. Put the incremental filter in the path.

Inside jobs, {{j:system:jobName}} and {{j:system:activityName}} name the running job and activity (see Jobs).

Inline arithmetic and several tokens​

On a data reference or integer loop variable, {{name+N}} and {{name-N}} shift the value: No ge {{loop}} and No le {{loop+100000}} reads a window per iteration, {{lastEntry-100}} re-reads the last hundred entries. N may be a decimal; a variable literally named field-2 wins over the arithmetic reading. It is not available on other kinds, in filters, or on a data reference that has a date format.

One data-reference or integer-loop variable may appear several times in an endpoint path ({{d}}T00:00:00 and {{d}}T23:59:59, or {{d}} next to {{d+1}}). An endpoint may use one data-reference variable or one integer-loop variable, not two different ones and not both.

Where each kind resolves​

FieldResolves
Endpoint URL pathEvery kind, including data reference (one request per value), integer loop and lastLoadedAt
Query parametersStatic, Key Vault, global, date, system:today / now, integer loop
Base URL, credentials, headers, bodies, action fields, export-system fields, filtersStatic, Key Vault, global, date, system:today / now

Typing {{ in any of these fields opens the picker; it hides what the field cannot resolve.