Skip to main content

Global Variables

A global variable is a named, reusable value stored in one place that any job in Qinfinite can reference. Instead of typing the same email address, URL, or token into dozens of workflows, you save it once as a global variable and reference it by name. When the value needs to change, you update it in one place and every job that uses it automatically picks up the new value.

Global variables also support encryption for sensitive values, expiry reminders for time-limited credentials, and typed inputs so the platform knows whether you're storing a number, a date, a list, or plain text.

How It Works

Create Once
Define a named value — a URL, a threshold, a list of emails, or a secret token
Reference Everywhere
Any job can use the variable by its name — no copying, no repetition
Update Once
Change the variable's value and every job that references it reflects the change immediately
One variable, one update — all jobs stay in sync automatically.

When to Use Global Variables

SituationHow a global variable helps
The same value appears in many workflowsChange it once and all jobs pick up the new value
A sensitive value like a token or passwordEncrypt it — jobs can use it without the value ever being visible in plain text
A value with a renewal dateSet an expiry date and get email alerts before it becomes stale
A business rule that should stay consistentStore thresholds, limits, or owner names centrally so they never drift
Environment-specific settingsUse a naming convention like Prod_API_URL and QA_API_URL to keep environments separate
Global scope

Global variables are shared across all jobs. Editing or deleting a variable affects every job that references it. Double-check what's using a variable before making changes.

Variable Types

When you create a global variable you choose a type. The type determines what the value input looks like in the form and how the platform stores and validates the value.

TypeWhat it storesInput format
StringAny text — a URL, an email address, a nameFree-text input field
NumberA numeric value — a limit, a count, a thresholdNumeric input field
BooleanA true/false flagDropdown: True or False
DateA calendar dateDate picker (yyyy-MM-dd)
DateTimeA date combined with a specific timeDate-and-time picker
TimeA time of day without a dateTime picker
ListAn ordered collection of values (all the same type)Repeatable rows — add one item per row
MapA set of key-value pairs (all values the same type)Key-value pair rows — each key must be unique

List and Map Types

List and Map require you to choose a sub-type first — the type of the individual items inside the collection. Sub-type options are String, Number, and Boolean.

  • List example: A list of notification email addresses (sub-type: String). You add one email per row and can add or remove rows freely.
  • Map example: A map of department names to budget limits (sub-type: Number). Each row has a key (department name) and a value (the budget). Duplicate keys are flagged immediately.

Creating a Global Variable

  1. Open Global Configurator and go to the Global Variables tab.
  2. Click Add Variable.
  3. Fill in the form:
FieldRulesNotes
Variable Name4–30 characters, letters, numbers, underscore, or hyphenMust be unique — the form checks for duplicates as you type
DescriptionOptionalHelps teammates understand what the variable is for
TagsOptional, chip-style inputUse tags to filter and search later
Variable TypeRequiredDetermines the value input format
ValueRequiredMatches the input style for the selected type
EncryptedCheckboxTick this to protect a sensitive value before saving
  1. If the value has an expiry date, tick Notify Expiry. Three more fields appear:

    • Expiry Date — the date the value becomes invalid (yyyy-MM-dd)
    • Days Before Expiry — how many days before the expiry date to send the first alert
    • Notification Emails — the email addresses that should receive the alert (chip input, one address per chip)
  2. Click Save.

Naming convention

Use a consistent naming pattern such as Prod_Support_Email or QA_API_Base_URL. Underscores and hyphens are both allowed. A clear prefix makes variables much easier to find and avoids accidental edits to the wrong environment's values.

Referencing a Variable in a Workflow

Once saved, a global variable can be referenced inside any job step that accepts dynamic expressions. The reference syntax is:

{{gv.variableName}}

For example, if your variable is named Support_Email, use:

{{gv.Support_Email}}

The platform resolves the reference at runtime and substitutes the stored value. If the variable is encrypted, it is decrypted automatically — the decrypted value is used for the job without ever being written to a log.

To copy the reference format, click the copy icon next to the variable name in the table. The copied text uses the format #[gv.variableName].

Encryption

Tick the Encrypted checkbox before saving to protect a sensitive value.

How it works behind the scenes:

  1. When you save, the value is serialized and encrypted using HashiCorp Vault Transit encryption.
  2. The encrypted bytes are stored — the original plain-text value is not retained in the database.
  3. Jobs that reference the variable receive the decrypted value at runtime, directly in memory.
  4. The variable row in the table shows a lock icon to indicate the value is encrypted, and the displayed value is truncated and masked.

To view the decrypted value manually:

Click the Decrypt action in the row's action menu. A dialog will prompt you for a decryption key (between 2 and 100 characters). Enter the key and confirm. The platform calls the decrypt API and reveals the value in the dialog only — it is not stored anywhere in plain text.

note

Decryption requires the correct key. If you do not have the key, the value cannot be retrieved from the UI. Keep your decryption keys safe.

Expiry Notifications

If a variable holds a value that will eventually become invalid — such as an API token, a certificate, or a contract date — you can configure an expiry reminder.

How notifications work:

  • The platform runs a scheduled check every day at 10:00 AM.
  • If a variable's expiry date is within the configured notification window (for example, 30 days out), an HTML email is sent to every address in the notification list.
  • The email is rendered from a template and clearly identifies the variable name, its expiry date, and how many days remain.
  • Notifications continue to fire each day until the expiry date passes or the variable is updated.
FieldWhat to enter
Expiry DateThe date the value becomes invalid, in yyyy-MM-dd format
Days Before ExpiryThe number of days before that date to start sending alerts
Notification EmailsThe people who should receive the alert — add one address per chip

The Variable Table

The main table shows all global variables with these columns:

ColumnNotes
NameShown with a globe icon. Copy icon copies the reference format.
TypeShown with a type icon
ValueTruncated for long values. Copy icon available. Lock icon shown if encrypted.
TagsAll tags for the variable
CreatedDate the variable was created
Last ModifiedDate of the most recent change
ActionsDecrypt (encrypted variables only), Edit, Delete
Deleting a variable is permanent

Global variables are hard-deleted — there is no recycle bin or undo. If a job still references the variable after deletion, that job will fail at runtime. Make sure no active jobs depend on a variable before you delete it.

  • Datasets — for structured data blocks like JSON, CSV, or lookup tables
  • Import and Export — move global variables between environments