> For the complete documentation index, see [llms.txt](https://atlas.anywhere.now/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atlas.anywhere.now/product-reference/dialogue-studio/dialogue-studio-example-flows/simple-ivr.md).

# Simple IVR

Import a starter DTMF menu IVR flow for Dialogue Studio that routes callers to Sales or Support, with timeout and invalid-input handling.

This example builds a basic DTMF menu. A caller hears a welcome message with three options, presses a digit, and is routed to a skill or disconnected. Use it as a starting point for a menu-driven call flow.

## What it does

The caller is asked to press 1 for Sales, 2 for Support, or 3 to end the call. Based on the digit pressed, the flow plays a short confirmation message and then enqueues the caller to the matching skill, or disconnects the call.

## Prerequisites

* A UCC configured with Dialogue Studio.
* Skills named `Sales` and `Support` created for your UCC, or the enqueue nodes updated to reference your own skill names.

## Preview

![Simple IVR flow](https://2627137428-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FscZpnEdBjDgQmlVn1iLr%2Fuploads%2Fgit-blob-a97ef60b07cbcaa595515610b2a688da9bf725b0%2Fsimple-ivr.png?alt=media)

## Import the flow

1. Log in to your Dialogue Studio environment.
2. Open or create a tab for the flow.
3. From the menu in the top right, select **Import** and add the JSON from [`flows/simple-ivr.json`](https://github.com/AnywhereNow/atlas-docs/tree/main/product-reference/dialogue-studio/dialogue-studio-example-flows/flows/simple-ivr.json).

## Configure after import

1. Open the **Incoming Call** node and select or configure the UCC that should trigger this flow.
2. Open the two **Todo: Add or change skill** comment nodes. Confirm that the skills `Sales` and `Support` exist in your UCC, or change the skill name on the corresponding **Enqueue** action node to an existing skill.
3. Save the node configuration, then select **Deploy** during the agreed change window. Complete the UCC connection and skill configuration before deploying.

## How the flow works

* **Incoming Call** node listens for audio/video sessions only.
* **Ask and wait for input** node plays the welcome message and waits up to 30 seconds for a DTMF digit (1 character).
* A **Switch** node checks `payload.dtmf` against `1`, `2`, `3`, and an `else` branch:
  * `1` plays "I will try to reach someone from sales" and enqueues the `Sales` skill.
  * `2` plays "I will try to reach someone from support" and enqueues the `Support` skill.
  * `3` plays a message that no one could help and disconnects the call.
  * Anything else plays "Your choice was not recognized, please try again" and loops back to the Ask and wait for input node.

## Safe fallback behavior

If the caller does not respond within 30 seconds, a **Say** node plays "We didn't receive an answer, please try again" and the flow loops back to the same Ask and wait for input node, so the caller is never left in silence. An unrecognized digit behaves the same way instead of disconnecting the call.

A comment node in the flow notes that after testing, you can extend the menu with more options by repeating the same pattern, or replace an option with a sub-menu.

## Verification

1. Call the UCC and confirm the welcome message plays.
2. Press 1 and confirm the caller is enqueued to the `Sales` skill.
3. Press 2 and confirm the caller is enqueued to the `Support` skill.
4. Press 3 and confirm the call disconnects with the expected message.
5. Press an unused digit (or wait past the 30 second timeout) and confirm the flow reprompts instead of failing silently.

## Related topics

Go to [Dialogue Studio example flows](/product-reference/dialogue-studio/dialogue-studio-example-flows.md) for the full gallery of example flows.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://atlas.anywhere.now/product-reference/dialogue-studio/dialogue-studio-example-flows/simple-ivr.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
