SparkTG
IVR & Call Flows

Setting up a multi-level IVR (nested menus)

Build nested IVR sub-menus in SparkTG for department routing, language selection, and business hours. Best practices to keep call trees clear and effective.

7 min readLast updated 05 May, 2026By SparkTG Support Team

A multi-level IVR lets you nest menus — for example, press 1 for Sales, then press 1 for New Enquiry or 2 for Existing Order. This guide covers how to structure these flows without making them confusing for callers.

Design before you build

Map the entire call tree on paper or in a tool like Miro before touching the IVR Builder. A typical 2-level IVR for SparkTG products looks like: Main Menu (Sales / Support / Billing) → each branch has its own sub-menu of 2–3 options.

Keep menus to a maximum of 4 options per level. More than 4 options causes callers to forget what they heard and hang up.

Building nested menus in SparkTG

  1. 1

    Create the sub-menu as a separate flow first

    Build each sub-menu (e.g., "Sales Sub-Menu") as its own IVR flow. This keeps each flow manageable and testable independently.

  2. 2

    In the main flow, use a Transfer to Flow node

    After the Sales keypress branch, instead of a Dial node, use Transfer to IVR Flow and select your "Sales Sub-Menu" flow. The caller seamlessly enters the sub-menu.

  3. 3

    Always add a Back to Main Menu option

    In each sub-menu, include a keypress (usually 0 or 9) that Transfers back to the Main Menu flow. Callers who end up in the wrong sub-menu need an escape.

  4. 4

    Add business hours logic at the top level

    Use a Time Condition node as the very first node in your Main Menu flow. Set office hours (e.g., Mon–Sat 9am–7pm IST). During-hours path continues to the menu; after-hours path goes directly to voicemail or an after-hours message.

Language selection example

For a bilingual IVR (English/Hindi): create two separate versions of your full IVR tree — one in English, one in Hindi. At the very top, add a Language Selection flow: "For English press 1, Hindi ke liye 2 dabayen." Keypress 1 → Transfer to English Main Menu; Keypress 2 → Transfer to Hindi Main Menu.

Frequently asked questions

How many levels of IVR menus can I create in SparkTG?
SparkTG supports unlimited nesting levels using the Transfer to IVR Flow node. In practice, we recommend a maximum of 2 levels (main menu + one sub-menu per department) — deeper nesting significantly increases caller drop-off rates.
What is the maximum number of options I should put in each IVR menu?
Keep each menu to a maximum of 4 options. Research consistently shows callers forget what they heard after 4 options, leading to wrong keypresses or hangups. If you need more options, split them across two menus.
How do I add a Hindi/bilingual IVR in SparkTG?
Create two separate IVR flow trees — one in English and one in Hindi. Then create a Language Selection flow at the top: 'For English press 1, Hindi ke liye 2 dabayen.' Use Transfer to IVR Flow nodes to send callers to the correct language tree based on their keypress.
How do I let callers return to the main menu from a sub-menu?
In each sub-menu flow, add a keypress branch (use key 0 or 9) that uses a Transfer to IVR Flow node pointing back to your Main Menu flow. Always include this — callers who reach the wrong sub-menu need an escape route.
Should I build sub-menus as separate flows or within the same flow?
Always build each sub-menu as a separate IVR flow, then link them using Transfer to IVR Flow nodes. This keeps each flow small, testable independently, and easier to update without affecting the entire call tree.

Was this article helpful?

Still stuck? Contact our support team →