---
description: This is your go to guide for dynamic variables in Workflow.
---

# Dynamic Variables

### What are dynamic variables?

Dynamic variables serve as placeholders that capture and retain values throughout a user’s session, enabling seamless data sharing between nodes and across workflows. For example, after collecting a user’s name via a form, you can reference that same value in subsequent steps or even in entirely different workflows, ensuring continuity and personalization. <mark style="color:yellow;">**It’s important to remember that this session-scoped data is temporary—once the user’s session ends, all stored values are cleared and cannot be recovered.**</mark>



### Where to find?

The Dynamic Variables Manager lives on the Workflow Home page in the top-right corner, immediately beside the **Create New Workflow** button. The button is the same throughout the entire interface, giving you instant access to view, create, or update shared data elements no matter which node or workflow you’re editing. It also resides in the individual workflow canvas page in the top-right corner adjacent to **Add new node** button.



### 1. Creating a variable

To create a new variable follow the below steps:\


1. **Open the Variable:** Click the **Variables** button in the top-right corner. The Variable Manager modal will appear, giving you a centralized view of all your session variables.
2. **Review Existing Variables:** Inside the modal, you’ll see a table listing every variable you’ve created so far. If this is your first time, the table will be empty.
3. **Start a New Variable:** Click the **Add New Variable** button above the table. A configuration form will slide in just above the table header.
4. **Complete the Variable Form:**
   * **Key**: Define the internal name for your variable. You may only use letters, numbers, dots (`.`), and square brackets (`[]`). The names `data` and `response` are reserved and cannot be used. This key will be referenced in workflows by wrapping it in double curly braces.
   * **Label**: Enter a human-friendly name for quick reference in the UI.
   * **Description**: Provide a brief explanation of what this variable represents.
   * **Default Value**: Set the initial value that this variable will hold unless overridden.
   * **Lock**: Toggle the lock icon to freeze the default value, preventing accidental updates during workflow execution.
5. **Save Your Variable:** After filling out each field, click **Save**. The modal will close, and your new variable will appear in the table, ready for use in any node.

<figure><img src="https://55912965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxUW02x9klXneNc1Bxtt6%2Fuploads%2FWke4HpqeYt8WxNCRM2wj%2FScreenshot%202025-06-09%20at%2011.51.41%E2%80%AFPM.png?alt=media&#x26;token=6303ff6f-5aa4-45f9-94bf-5b7435e75334" alt="" width="563"><figcaption><p>Variable Manager</p></figcaption></figure>

{% hint style="warning" %}
**NOTE**:  At present, all dynamic variable values are strictly treated as strings—attempts to assign numbers, booleans, or null/undefined values won’t be recognized. We’re actively enhancing this capability and will introduce full support for numeric, boolean, and nullish types in an upcoming release.
{% endhint %}

### 2. Using dynamic variables

When you build your workflow, dynamic variables let you effortlessly carry information from one step to the next without rewriting or hard-coding values. Here’s how and where to use them:

* **Inside Text Nodes**: Insert `{{variableKey}}` directly into your messages to personalize content (for example, greeting a user by name or displaying the result of a previous API call).
* **In Action Nodes**: Embed variables within your JSON payload —`{{variableKey}}` will be replaced at runtime, so you can pass form inputs or earlier API responses into downstream services.
* **Across Multiple Workflows**: Because variables persist for the session, you can capture data in one workflow and reference it in another—ideal for multi-step processes like onboarding or support ticket escalation.



{% hint style="warning" %}
**NOTE**: Throughout the workflow, dynamic content is always inserted using double curly braces `{{ }}`. For example, you can pull form values from a Text Node with `{{data.key_name}}` or access a successful API response field in an Action Node via `{{response.title}}`. This uniform syntax applies wherever you need to inject shared data at runtime.
{% endhint %}
