--- title: "In-Queue Treatments and Controls" slug: "in-queue-treatments-and-controls" updated: 2026-07-23T10:06:43Z published: 2026-07-23T10:06:43Z canonical: "help.8x8.com/in-queue-treatments-and-controls" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.8x8.com/llms.txt > Use this file to discover all available pages before exploring further. # In-Queue Treatments and Controls In this release, we have introduced capabilities that improve caller experience while waiting to be served in the queue. Using enhanced IVR objects, you can now better engage callers waiting in a queue by playing multiple prompts or announcing the call's position in the queue. You can also allow them to opt out of the queue and direct themselves to an operator or leave a voicemail or opt to be called back when an agent is available. ### Features In-queue treatments and controls allow: - detection of caller input and or contact center conditions to opt out of a queue. - offer menu of multiple treatment options while waiting in a queue (no longer assumes voice mail will be the primary opt out choice). - announce a caller's position in queue - easy control of a timed pattern of multiple waiting announcements and background audio (queue music). To enable these new improvements, **8x8 Contact Center** IVR has introduced new and enhanced objects: - **Play**: Offers a choice of uninterruptable or interruptable Play. Formerly Play messages could not be interrupted by a caller. For example, If a main menu announcement has a long list of choices, callers familiar with the menu can skip listening to the entire message and input their choice by interrupting the announcement. - **Say**: This object converts programmed text and variable objects such as phone number and queue position into speech. The Say object is also interruptible or not. - **Get digit**: This object must be used after Play and Say messages that prompt for digit tone input. Get Digit is a menu optimized for the input of a single digit. - **Loop and Time Interval**: These new in-queue only objects control the pattern of announcements, queue music, and conditional contact center tests while waiting in queue. ### Use Case To understand the useability of In-queue treatments and enhancements, lets look at the call flow requirements for AcmeHealth Clinic, a fictitious medical hospital. In an effort to provide best care services, AcmeHealth wants to ensure best calling experience to their callers at all times.Their callers are typically patients or guardians. While waiting to be served in the queue, the clinic wants to engage its callers by playing announcements about the seasonal events occurring in the hospital such as flu vaccination hours or upcoming health seminars. If the wait is too long, they can drop out of the queue and reach an operator or leave a voicemail for their care team. 1. AcmeHealth allows customers to self direct themselves to the desired specialty department using a main menu announcement. 2. Once the caller selects a desired department such as Pediatrics, the call enters the dedicated queue. While in queue, the system plays courtesy announcements such as information about the on-going flu vaccination clinic or upcoming health seminars engaging the caller. 3. This is followed by an announcement of caller's current position in the queue. This informs the caller about an approximate waiting time. The caller is then given the following choices: The following diagram represents IVR requirements for a typical call flow at AcmeHealth. ![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ01.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) - Continue to wait in the queue for assistance. - Drop out of the queue for operator assistance. - Drop out of the queue to leave a message for the patient care team. ### Create an IVR Script Creating an IVR script to meet these requirements involves the following steps: **Step 1: Create a new phone IVR script.** 1. Log in to **8x8 Configuration Manager**. 2. Go to **Scripts**. 3. Add a new Script. 4. Under Main IVR, add **Menu** which acts as the main menu. 5. Build the main menu options as shown below. Add **Forward to Queue** and select the queue dedicated to the respective department under each node.![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ02.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) **Step 2: Define the In-Queue treatment for queues.** In this step, based on the menu choice opted by the caller, we define the in-queue treatments for each queue. Callers are served with the treatments and options defined under each queue while waiting to be served. 1. Under node 1, add **Forward to Queue** and specify an existing queue for Pediatrics to direct callers to the queue when they choose option 1 in the menu. Forward to Queue has the following exit points: - **In Queue** is true if a call has entered the queue. - **Queue Timeout** is true if the call waiting exceeded the time out period set. - **Overload** is true if any of the overload paths are met. 2. Under **In Queue**, select to **add an initial action** such as announcing the Flu clinic details. Add a Play object and select an audio file to be played to callers once they enter the queue. 3. Under In Queue, add a **Loop** object. Inside a loop, you can define multiple in-queue treatments using time intervals. These treatments are repeated for a specified number of times, or for a given duration. 4. Define the following information. ![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ04.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) - Object Tag: enter an identification tag for the loop. - Loop repeat count: Select the number of times to repeat the treatments defined under the loop. 5. Click **Ok** to add.![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ03.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) > [!NOTE] > Note: > > If you introduce multiple announcements, select the duration between executing each interval. By default, queue music is played between the intervals. **Step 3: Add the In-Queue prompts and choices using time intervals.** Add the audio prompts and queue opt-out choices for callers while waiting to be served in the queue using time intervals. 1. Add a **Time Interval** that defines actions for in-queue treatment. The Intervals inside a Loop can be used to define the multiple prompts. In this example, we add announcements that inform the caller about the queue status and offer choices to stay in the queue or exit the queue. 2. Add **Say** object with free text announcements of high call volume.![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ05.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D)![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ06.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) 3. To announce the current position of the call in the queue, add a **Say** statement and select **$QueuePosition**. 4. To allow the caller to opt out of the queue, add a **Say** statement announcing the exit choices. > [!NOTE] > Note: > > Actions after exiting the queue must be defined outside of the in-queue treatment, but at the parent Forward to Queue object. 5. Add **Get Digit** to receive the caller's input and apply the actions defined under its nodes. > [!NOTE] > Note: > > Get Digit must follow Say or Play objects. If you introduce any other object between Say and Get Digit, the Get Digit becomes void. - 0 for operator assistance - 1 to leave a message for the care team 6. At the parent Forward to Queue level, add the following labels and define actions to be followed after exiting the queue. 1. Create a label to reach an operator. Under the label add **Transfer to Agent** object. 2. Create a label to direct a message for the care team. Under the label add **Forward to Voicemail Queue** object. 7. Under the **Get Digit** node 0: 1. Add **Set Agent** to operator. Select an agent. 2. Under the **Agent found** exit, add **Go To** object and point it to the label you created earlier in step 6a. 8. Under the **Get Digit** node 1, add **Go To** object and point it to the label you created earlier in step 6b. This directs the caller to leave a message for the care team. ![](https://cdn.us.document360.io/e3a59e39-abd3-4423-964c-0a4008dc5673/Images/Documentation/VQ07.png?sv=2026-02-06&spr=https&st=2026-11-03T22%3A19%3A03Z&se=2026-11-03T23%3A19%3A03Z&sr=c&sp=r&sig=bkMjVkjOdeax3xs8uBIGOxrjvxnyjxoSOGKwd0hI0u0%3D) 9. Click **Save** to save the script. 10. Assign this script to an existing channel to complete the process.