Skip to main content
Back to blog

IVR Builder in Devotel Orbit — from Intent Graph to NLU Routing

The IVR Builder is the visual flow-design surface behind Voice → IVR Builder on Devotel Orbit — what the node vocabulary actually covers (menus, transfers, queues, voicemail, HTTP, SMS, AI agent), where explicit flow design pays off, how a canvas route plugs into the NLU intent-routing layer next to it, a worked menu → transfer → voicemail example with a quality read, and when a flow should graduate to an AI-voice-agent front end.

Orbit Editorial Team

Quick answer: The IVR Builder on Devotel Orbit is a visual flow canvas under Voice → IVR Builder (`/voice/ivr-builder`): you drag a route out of nineteen node types — play-audio prompts, DTMF and speech input, menus, time checks, transfers, queues, ring groups, recording, HTTP requests, SMS sends, dial-by-name, callbacks, an AI-agent leg, and the terminals (voicemail, hangup) — and wire them into one graph the publish guardrail refuses to ship until every branch ends on a terminal. The first-IVR walkthrough taught the five-step setup; the NLU-routing explainer taught the intent catalog. This post is about the builder surface itself — what the canvas lets a flow designer say, where explicit design beats the intent layer, and how the two compose.

The IVR-builder surface

Every route the builder ships is a graph of nodes and edges, and the node vocabulary is the whole design space. The grouping that matters when you design:

  • Prompt and capture. Play-audio speaks synthesized text or hosted HTTPS audio; DTMF-input collects digits with a timeout and finish key; speech-input collects a spoken utterance for the intent layer. Prompt-bearing nodes carry localized variants, so a detected language upstream renders the right recording downstream.
  • Branch. A menu maps digits to labeled destinations; a time-check splits on business hours and timezone; a language branch splits on the detected language. Branches are where flow design earns its keep — every branch edge is an explicit decision, not an implicit platform default.
  • Action. HTTP requests call your backend mid-call and stash the response on the call context; send-message texts the caller with {{var}} placeholders off that context; transfer, queue, ring-group, and dial-by-name move the call; record captures audio; offer-callback parks a queue position; an AI-agent leg hands off to a voice agent.
  • Terminal. Voicemail, hangup, and the announcement terminal you route every leaf to. Publish validation requires exactly one start node and every branch ending on a terminal — a dangling edge cannot ship.

That vocabulary is why the digit tree and the intent catalog are siblings rather than competitors. The NLU intent layer decides what the call is about from spoken language; the builder canvas decides what happens to the call once a branch — digit or intent — owns it. An intent matched on "billing dispute" still lands somewhere, and the somewhere is a builder route.

Where visual flow design pays off

Three shapes are genuinely hard to express in an intent catalog alone, and all three are the builder's home ground.

Explicit fallbacks. The fallback that saves a call is a node, not an implicit behavior — but "route unmatched input to capture" is a sentence in a catalog until someone draws the no-input and invalid-digit edges onto a capture terminal. The canvas makes the failure path visible: when the fallback edge is on the graph, reviewers see it; when it is missing, the publish guardrail sees it too. See the tracing pattern in the sibling NLU-routing explainer for why the fall-through owner must exist before you prune anything.

Queue hand-offs. A powerful branch is sometimes a queue wipe: overflow from a queue node, attended-transfer fallbacks, or a time-check that routes after-hours callers out of the queue path entirely. The queue node carries hold music, position announcements, max-wait caps, and an overflow destination; pairing that with a time-check and a callback offer removes the "queue drops the call" failure a bare intent target cannot express.

SMS-on-fallback. The send-message node texts the caller from the flow — a "we sent you a link while you were on hold" or a post-call confirmation — using {{var}} placeholders against the call context the HTTP node populated. The node that fails the lookup can still send the SMS apology and route to callback instead of hanging up.

Wire builder nodes into the NLU intent patterns

The proven patterns from the NLU-routing explainer map onto the canvas one-to-one:

  • Log-only intent → builder entry node. An intent with no target measures demand. On the canvas that is a speech-input node that records the utterance and falls through to the default branch — same log, and the fall-through report aggregates it.
  • Intent with a boundary sentence → menu with a "not this" digit. When two intents overlap, you rewrite descriptions. When a fixed menu overlaps ("press 2 for billing, press 3 for payments"), the builder route splits one menu node into two, or merges them behind a submenu — the description-boundary discipline applies on the canvas as a route-shape decision.
  • No-match falls through → explicitly drawn fall-through. The intent layer falls through to a designated no-match branch; the builder makes that branch an edge you drew on purpose. Terminal: a queue a human answers, or voicemail-plus-callback. Never a dead announcement.
  • Skill-based routing target → queue node. An intent that points at a queue inherits the queue's skill gates; an intent pointed straight at one agent bypasses them. On the canvas, the queue node is a first-class leg and the skill-catalog eligibility rules still apply — so regulated queues stay governed by the queue, and the graphic route shows the handoff.

The skill catalog and skill certifications surfaces the explainer names are the queue-side governance; the canvas composes with them by routing into the queue and letting the queue decide eligibility. A route that draws agent-target edges for regulated categories is a route that bypasses certification gates — the canvas warns about it the same way the intent page does.

Worked example: menu → transfer → voicemail, with a QoS read

A three-tier inbound front door that route designers copy:

  1. Menu on the trunk. Speech-input node collects the caller's sentence; a menu node backs it up with digits for callers who prefer them. The two capture modes land on the same branch edge.
  2. Transfer with an owner. The transfer node moves the call to the destination the branch picked — a queue for staffable traffic, a ring group for direct-to-team, an attended transfer for a regulated handoff. Fallback edge: a callback-offer node or a queue-overflow destination.
  3. Voicemail with email notify. Unmatched or after-hours traffic terminates on the voicemail node with a greeting and an email-notify address, so capture never silently drops.

After the route lives, read it on the quality surface: the per-queue and per-route quality scores told you whether the transfer leg answered or the voicemail leg is absorbing pre-queue abandonment. Low score on the transfer branch is a destination problem, not a flow-shape problem; low score on voicemail is a staffing problem the route cannot fix.

When to graduate to agent-first deflection

A scriptable flow scales to about the point where callers cannot pre-record their need. The IVR vs AI voice agents decision guide grades the split call-by-call; the typical graduation triggers on the builder side:

  • The "everything else" fallback is the most-hit branch — the intent catalog is catching shape, and the scripted menu is what the intent layer should front.
  • Your after-hours voicemail absorbs the highest-quality calls — the ones you want a human next morning to hear are the ones an AI agent could resolve now.
  • Transfer legs flip between queues based on time-of-day — a time-check branch that does the same split a voice agent would do without a schedule.

The builder's AI-agent node is the graduation slot: the canvas accepts an agent leg in place of any terminal, so a route can graduate branch-by-branch rather than all at once. When the route is an agent front end end-to-end, the migrate-IVR-to-agent runbook walks the cutover.

Frequently asked questions

Does the publish guardrail enforce the one-terminal rule?

Yes — one start node, and every branch edge ends on a terminal node, or publish is refused. A dangling branch cannot go live with that shape.

Can a flow mix DTMF menus and spoken intents?

Yes — the common hybrid is speech-input at the trunk and a digit menu as backup; both share the same destination edges.

How do I test the flow before real callers?

The builder preview and simulate dialogs run the route without a live call. Pair with the intent test-classifier panel for the utterance side.

When does the AI-agent leg beat a transfer?

When the branch the caller lands on is a deflection class (hours, status, password reset) that needs no human — the agent answers with no queue, and the QoS read moves to resolution instead of abandonment.

What makes an edge a fallback?

Any edge you drew on purpose to own an unmatched input: no-input timeout, invalid digit, queue overflow, transfer-after-hours. The builder refuses to publish a fall-through edge that ends nowhere.

IVR Builder in Devotel Orbit — from Intent Graph to NLU Routing — Orbit by Devotel