Skip to content

Pass data between blocks

Variables carry information from one block to another: user messages, HTTP responses, instructions, LLM answers, tools, or tool results.

Scopes

ScopeLifetimeExamples
SYSTEMProvided by the platform for every executionuserMessage, datetime, customParams
USERTied to the signed-in useruserData.email, locale, timezone
CONVERSATIONRetained across several messagesconversationHistory, collected information
REQUESTLimited to the current pathdocuments.body, chatCompletion-1.content

Use REQUEST by default. Reserve CONVERSATION for information that must survive across turns.

Global variables

VariablePurpose
userMessage / queryUser request
datetime, datetime.date, datetime.hour, datetime.minuteCurrent date and time
customParamsParameters supplied by a web integration
llmAppId, organizationId, workflowIdContext identifiers
workflowExecutionId, queryExecutionIdExecution identifiers
conversationHistoryConversation history
userDataUser object
userData.email, name, givenName, familyName, userIdCommon user attributes
userData.organizationId, attributes, iamProfilesOrganization, attributes, and IAM profiles
locale, timezoneLanguage and time zone

Block outputs

By default, an output reference uses this format:

txt
{{blockIdentifier.variableName}}

For example, {{http-1.body}} is the response body produced by http-1.

If http-1 receives the alias documents, the reference becomes {{documents.body}}. Aliases improve readability but must remain unique.

BlockMain outputs
Simple messagemessage
HTTP requestbody, metadata
VariablesDirectly named variables
ConditionhasMatch, matchedIndex, nextStep
LLM instructionraw, metadata, messages, instruction, tools
LLM requestcontent, genericToolCalls, metadata
MCP - List toolstools, toolServerRouting, metadata
MCP - Call toolsmetadata, toolCallResults

Create a variable

The Variables block creates a directly named value:

ScopeNameValue
REQUESTuserEmail{{userData.email}}

The value is then available as {{userEmail}}.

Avoid spaces, accents, special characters, and duplicate names.

Write a reference

In compatible fields, type {{ and choose a suggestion. This prevents typos and references to blocks that are not available on the route.

NeedReference
User message{{userMessage}}
Current date{{datetime.date}}
HTTP body{{http-1.body}}
Prepared instruction{{generatePrompt-1.instruction}}
LLM answer{{chatCompletion-1.content}}
Tool calls{{chatCompletion-1.genericToolCalls}}
MCP tools{{listTools-1.tools}}
MCP routing{{listTools-1.toolServerRouting}}

A reference can be embedded in text:

txt
Hello {{userData.givenName}}, your request is: {{userMessage}}

Or in JSON:

json
{
  "query": "{{userMessage}}",
  "email": "{{userData.email}}"
}

Integration parameters with customParams

customParams carries runtime values even when they are unknown during configuration:

txt
{{customParams.mcpAuthorization}}
{{customParams.mcpAccessToken}}
{{customParams.source}}

Studio intentionally skips some validation for references beginning with customParams..

Debug a variable

Temporarily add a Simple message:

txt
{{codeblock documents.body}}

To force a display language:

txt
{{codeblock documents.body "json"}}

Remove this block before publication if it might reveal a secret or personal data.