Incoming Call incomingCall
In Five9: In the guide's words, “the first module of all IVR scripts.” It is already on the canvas when you create a script and cannot be removed or given properties. (p. 100)
In ivrloom: Every reachability check starts here: a module no path from Incoming Call reaches is flagged as unreachable in the Issues panel.
- Dead branches: finding the paths nobody can reach — on the blog November 17, 2026
- Reading a Five9 export by hand
Play play
In Five9: Plays “prompts and greetings anywhere in the script.” (p. 204)
In ivrloom: A simulated call lists every prompt the caller hears, and the editor plays a prompt's recording from your bundle. ivrloom also models an announcement module, which the first post below compares with Play.
- announcement and play: the difference that shows up in the flow — on the blog January 19, 2027
- Prompt libraries: naming, reuse, and the duplicate problem — on the blog November 24, 2026
Get Digits getDigits
In Five9: Routes the call “by using digits entered by the caller into a variable”; the result can go to a string or an integer variable. (p. 135)
In ivrloom: In step mode you type the caller's digits or choose “No input”, and you can make the module fail with one of the error codes Five9 lists for it.
- getDigits: the timeouts and retries that decide your abandon rate
- Variables in a call flow: scope, lifetime, and the blank-value bug — on the blog October 27, 2026
If/Else ifElse
In Five9: Two branches: If when the condition is true, Else when it is false. “If you need more than two branches, use the Case module.” (p. 143)
In ivrloom: Conditions are edited in the property panel, dates, times and yes/no values included, and saved as the same kind of value Five9 uses. A branch the simulator cannot decide is flagged in the trace.
- ifElse or case: choosing how to branch — on the blog November 3, 2026
- Hours-of-operation routing: the patterns that actually hold up
Case case
In Five9: “As many branches as you need”, one per possible value, plus No Match for everything else — the guide's example routes a Get Digits result to Sales or Support. (p. 111)
In ivrloom: The simulator takes the matching branch and says so in the trace; a value that matches no branch, with no No Match to catch it, ends the simulated call as a dead end.
- ifElse or case: choosing how to branch — on the blog November 3, 2026
- Holiday schedules: the annual maintenance nobody owns — on the blog October 20, 2026
Set Variable setVariable
In Five9: Assigns values to variables, typically for a later If/Else, Case, web request or routing decision. Script variables hold up to 1M characters, call variables 2,040. (p. 238)
In ivrloom: The simulator evaluates the assignments it can, in order. The script's own JavaScript functions and RANDOM are never run: in step mode it asks you for the value instead.
- Variables in a call flow: scope, lifetime, and the blank-value bug — on the blog October 27, 2026
- The emergency message path, and why it is always broken — on the blog January 5, 2027
Query and Lookup Contact Record query
In Five9: Query obtains data “from an external Web site”, a third-party web service or another source of contact data. Lookup Contact Record (p. 178) reads the caller's contact record. (p. 214)
In ivrloom: The simulator never calls the service. The values it would return are the ones you set before the run (unset, they are empty), and you can make the module fail with one of Five9's error codes to walk its error branch.
- CRM lookups in the flow: latency, failure, and the branch you forgot — on the blog January 26, 2027
Skill Transfer skillTransfer
In Five9: Transfers the call to one or more skills and configures the queue; “after the call transfers to an agent, the IVR script is complete.” (p. 250)
In ivrloom: The simulator offers the outcomes the module's settings allow — an agent answers, a queue callback, voicemail, a queue timeout, a transfer error — and the Issues panel flags a transfer with nowhere to go if it fails.
- Skill transfers and the overflow paths you hope never run — on the blog October 13, 2026
- Callback offers: the queue decision you make on the caller's behalf — on the blog February 2, 2027
Foreign Script foreignScript
In Five9: Runs another IVR script from this one and returns its variables — “you can use the same search script in multiple scripts.” (p. 132)
In ivrloom: When the called script is in the bundle you imported, the simulator steps into it and comes back; otherwise the trace says the sub-script was skipped.
- Subscripts: when to split a flow and when not to — on the blog November 10, 2026
Hangup hangup
In Five9: Disconnects the call and ends the script — or, “if the script was started from another IVR script,” returns the call to it. Start on Hangup (p. 102) starts another process when a caller hangs up before the script ends. (p. 100)
In ivrloom: The modules that run on hangup are a second flow in the export; the reachability check knows about it, so they are not reported as orphans.
- Subscripts: when to split a flow and when not to — on the blog November 10, 2026
- Dead branches: finding the paths nobody can reach — on the blog November 17, 2026