Skip to content
DocsOpen Hub
Build workflows

Key Selectors and session values

On this page

Selectors let you reference named values using ${name}. Use stored selectors for reusable configuration and named node outputs for data that belongs to one workflow run.

Choose the right lifetime#

Value Where to keep it
An upstream service URL Stored text selector
A reusable service credential Stored secret selector
A customer lookup result The producing node's session result
An authenticated user's ID The IdP Authorize result
A business record needed next week A database
A shared token refreshed on a timer A dedicated refresh workflow and stored selector

Avoid storing a per-user login token in a global selector. Parallel requests can overwrite shared state; downstream steps in the same request can use the login node's result directly.

Create a stored selector#

Open Workflows → Key Selectors, choose its controller or global scope, and give it a descriptive name such as SERVICE_BASE_URL. Set the sandbox and production values deliberately.

Text selectors hold ordinary configuration. Text (Secret) stores sensitive text with protected access. Base64 encodes its input when used. Base64 (Secret) stores the original text as a secret and encodes it at execution time; enter the original text, not a pre-encoded value.

Secret values are masked and require the relevant secret permission to reveal or change. Template exports omit their values. After an import, configure them in the destination workspace.

Reference values#

text
Request URL: ${SERVICE_BASE_URL}/customers/${customerId}
Authorization header: Bearer ${AccessToken}
Python value: customer = ${FetchCustomer}

In Python, use ${body} or ${NodeName} directly for structured values. Put a selector inside quotes when you want text, such as customer_id = "${customerId}". Use ${session:Name} = value to assign a value for later nodes in the same run. For SQL, use parameterized values rather than building statement fragments from callers.

Use Base64 without an extra Python step#

For a service that expects a Basic-auth value, create SERVICE_BASIC_AUTH as Base64 (Secret) and enter the original username:password text for each environment. Configure the Request node header as:

text
Authorization: Basic ${SERVICE_BASIC_AUTH}

The selector supplies the Base64-encoded value automatically. For example, the text user:password becomes dXNlcjpwYXNzd29yZA==. Do not pre-encode that value or add a Python encoding node. Base64 itself is not encryption; the Secret type protects the stored original.

Troubleshoot a missing value#

Check spelling, scope, environment, and whether the producing node ran on the current branch. A stored key and a node result are not interchangeable. Use clear names to prevent ambiguity, and avoid using session history as long-term storage.

See the Selector node for scheduled refreshes and request data for input handling.

Need to investigate a problem? Start with troubleshooting