IVR Node: Set Variable
Stores a literal or computed value in a variable that later IVR nodes can read.
The Set variable node (SetVariable) stores a text value — literal or built from dynamic parts — inside the call's execution context, so a later node (Branch, Condition, or another) can make a decision based on it. It doesn't play audio or pause the call.
Requirements
- None special; it's available inside the IVR Editor for any calling channel.
Configuration
- Variable name: the identifier later nodes will read the value by (e.g.
caller_segment). - Value (literal or ${...}): fixed text, or a template with dynamic variables. This node resolves a limited set of accessors:
${contact.id},${contact.name},${contact.phone},${contact.email},${caller.number},${locale},${wacid}, or any variable stored earlier with another Set variable node. It does not share the extended resolver (${channel.*},${now.*}, etc.) used by other nodes such as HTTP Request, Notify agent, or Track event.
Example
A Set variable node named caller_email with value ${contact.email} stores the contact's email for later use — for example, in the body of an HTTP Request or a notification. A later Condition node can check caller_email != '' to decide whether the caller has full contact data before routing them one way or another.
Tips
- Use it to "pre-compute" a value once and reuse it across several later conditions, instead of repeating the same long expression in every node.
- Tokens that don't match any known variable are left as literal text (e.g.
${typo_variable}stays as-is), which makes typos easy to spot in the execution trace. This also applies to accessors this specific node doesn't support, such as${contact.tags[0]}: even though "tags" exists as a contact concept elsewhere in Omnifox, this node doesn't resolve it, and the token is left literal.
Troubleshooting
If a later node doesn't find the expected value, check that the variable name matches exactly (case-sensitive) between the Set variable node and the node reading it. If the value comes out empty or shows up as the literal ${...} text, confirm you're using one of the supported accessors (contact.id, contact.name, contact.phone, contact.email, caller.number, locale, wacid) and that the contact actually has that data for that caller.
Related articles
-
WhatsApp calls in Omnifox
Receive and make WhatsApp voice calls directly from the Omnifox inbox.
-
IVR, call queues and routing
Design voice menus (IVR), organize call queues, and connect your own PBX to Omnifox.
-
View call history and play recordings in the inbox
Find every call in the inbox Calls tab and listen back to recordings without leaving Omnifox.
-
Start a call from a conversation
Voice-call a contact without leaving the chat: the Call via WhatsApp button dials the call and logs it in the inbox.
-
Configure your call settings (device, microphone and SIP)
Get your browser, microphone and SIP connection ready to place and receive calls right from the Omnifox Inbox.