🇪🇸 Español 🇬🇧 English 🇧🇷 Português

IVR Node: Branch

How to use the Branch node in the IVR flow editor to route a call based on the value of a previously stored variable.

Jul 11, 2026

The Branch node is a pure routing node: it reads a variable that was stored earlier by another node and picks the output that matches its value. It doesn't play audio or interact with the caller; the engine evaluates it server-side and chains straight to the next node, with no round-trip to the phone system.

Configuration

  • From variable: the name of the variable this node will evaluate. It must have been set earlier by another node (for example, the "Store in variable" field of a Caller input node, or any node with a "Store in variable" option).
  • Cases (comma-separated): the list of possible values. Each value in the list gets its own output on the canvas with that same name; if the variable's value doesn't match any of them, the call follows the default output.

Example

A Caller input node stores the digit the caller pressed (1, 2, or 3) into the variable menu_choice. You then drop a Branch node with "From variable" = menu_choice and "Cases" = 1,2,3. You wire output 1 to Route to team (Sales), 2 to Route to team (Support), 3 to Voicemail, and the default output to an "invalid option" message followed by a retry.

Tips

  • "Cases" values are compared as exact text, so make sure you type the digit the way the upstream node actually stores it.
  • If the variable was never set (typo in the name, or the upstream node never ran), Branch always falls through to default — double-check the variable name matches on both nodes if calls never take the expected paths.
  • It's the natural companion to Condition: use Branch when you have several discrete possible values (a menu of options), and Condition when you need to evaluate a more complex boolean expression.

Troubleshooting

If calls always land on default, check: (1) that the name in "From variable" matches EXACTLY the name used in the upstream node's "Store in variable" field, and (2) that the upstream node actually ran earlier in the flow (e.g., the caller reached the point where they pressed a digit).

Was this helpful?

Related articles