Variables & Data
Variables allow your flow to be dynamic. Instead of sending the same static message to everyone, you can use variables to personalize content (e.g., “Hello $$name”) or make logic decisions.
System Global Variables
These variables are always available in every flow. You do not need to create them; the system automatically populates them for every interaction.
| Variable Name | Description |
|---|---|
$$recipientId | The unique ID (phone number) of the user currently interacting with the flow. |
$$inboundMessageText | The actual text content of the last message the user sent. Useful for AI processing or checking specific keywords. |
$$messagingChannel | The platform the user is on (e.g., “whatsapp”). |
$$messagingChannelConnectionId | The specific connection ID for the channel being used. |
$$whatsappBusinessAccountId | The ID of your WhatsApp Business Account. This is critical for filtering Templates and Sequences. |
$$isWhatsappFlowSubmitted | A specialized flag used to check if a structured WhatsApp Flow (form) was just submitted. |
Usage: You can insert these variables into Message blocks, API payloads, or Logic conditions by typing their name exactly as shown above.
User-Defined Variables
These are variables that are calculated on the run. They do not exist until you define them in a block.
- How to create them: You define these in the “Output” or “Destination” fields of blocks.
- Example 1 (Ask Question): If you ask “What is your name?” and set the Answer Field to
user_name, the variable$$user_nameis created the moment the user replies. - Example 2 (API): If you fetch data and save it to
apiData, the variable$$apiDatabecomes available for the rest of the flow.
Rule: You cannot use a user-defined variable before the block that creates it. For example, you cannot use $$user_name in a Welcome Message if the “Ask Name” question happens after the welcome message.