---
schema_version: "1"
id: b82f656cd699fd4a7815b1640ad33404f2f81574b87a068e8c7a95b677c48eaf
title: Tailor the In-Queue Experience for Voice Calls
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/service/264-0-0/afcc_sv_in_queue_experience.md
canonical_url: https://help.salesforce.com/s/articleView?id=service.afcc_sv_in_queue_experience.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: ff2905a55ff989e7b5f3a8555b3948de13814980bad38e9896c8cbb4b4980b56
description: Turn idle wait time into an in-queue experience by overriding the default org-wide queue music. Play prompts, greetings, and announcements, offer queued or scheduled callbacks, and periodically announce each caller's queue position and estimated wait time to connect to a rep.
products:
  - Service Cloud
  - Digital Engagement
release: "264"
---
# Tailor the In-Queue Experience for Voice Calls

Turn idle wait time into an in-queue experience by overriding the default org-wide queue music. Play prompts, greetings, and announcements, offer queued or scheduled callbacks, and periodically announce each caller's queue position and estimated wait time to connect to a rep.

### Required Editions

This article applies to:

Salesforce Voice (Native Telephony)

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col style="width:100%"></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=service.voice_editions.htm&amp;release=264.0.0&amp;type=5" title="Learn about the user interfaces, editions, and add-ons that support Voice solutions by Salesforce.">View supported editions</a>.</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d22688e70">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d22688e70 ">To open, edit, or create a flow in Flow Builder:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d22688e70 ">
              <p>Manage Flow</p>
              <p style="margin-bottom:0;">Agentforce Contact Center Admin (Salesforce Voice) permission set</p>
            </td>

          </tr>
        </tbody>
      </table>

Queue position, skill matching, and priority stay unchanged while the in-queue experience flow runs, and playback stops immediately when a rep is available. If a flow fails or times out, callers fall back safely to the default queue music.

1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**.
2. Search for and open the Omni-Channel flow that you want to modify, or create a new [Omni-Channel flow](https://help.salesforce.com/s/articleView?id=service.omnichannel_create_a_flow.htm&type=5&language=en_US).
3. Add an action element and search for **Set In-Queue Experience**.
4. Click **Set In-Queue Experience** and add it to your flow.
5. Enter the In-Queue Experience Flow. This is the flow you want to run while callers wait in the queue. For example, a flow can:
    
    - Play a welcome message to greet the caller.
    - Add the **Get In-Queue Status** action with a label and the Record ID as the voice call ID. The action returns the estimated wait time (EWT) and position in queue (PIQ) as output. If a value isn't available, the action returns a defined signal value so you can branch your in-queue flow accordingly. For more information on EWT and how it’s calculated in the Get In-Queue Status action, see [Estimated Wait Time Calculation When Routing Work with Omni-Channel](https://help.salesforce.com/s/articleView?id=003817179&type=1&language=en_US).<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
                <thead class="slds-text-title_caps ">
                  <tr><th class="slds-cell-wrap" scope="col" id="d22688e169">Output</th>
                  <th class="slds-cell-wrap" scope="col" id="d22688e172">Description</th>
                  <th class="slds-cell-wrap" scope="col" id="d22688e175">Valid Value</th>
                  <th class="slds-cell-wrap" scope="col" id="d22688e178">If Unavailable</th>
                </tr></thead>
                <tbody><tr class="">
                  <td class="slds-cell-wrap" data-label="Output" headers="d22688e169">Position in Queue (PIQ)</td>
                  <td class="slds-cell-wrap" data-label="Description" headers="d22688e172">The call's place in line, counting down to 1.</td>
                  <td class="slds-cell-wrap" data-label="Valid Value" headers="d22688e175">1 or higher, where 1 is next to be connected to the rep</td>
                  <td class="slds-cell-wrap" data-label="If Unavailable" headers="d22688e178">-1, indicating that the position is unavailable</td>
                </tr>
                <tr class="">
                  <td class="slds-cell-wrap" data-label="Output" headers="d22688e169">Estimated Wait Time (EWT)</td>
                  <td class="slds-cell-wrap" data-label="Description" headers="d22688e172">Estimated wait, in seconds.</td>
                  <td class="slds-cell-wrap" data-label="Valid Value" headers="d22688e175">0 or higher</td>
                  <td class="slds-cell-wrap" data-label="If Unavailable" headers="d22688e178">
                    <p>-1, where no calls were accepted in the last 10 minutes so there's no basis
                      for an estimate</p>
                    <p>-2, when temporarily unavailable</p>
                  </td>
                </tr>
              </tbody></table>Before relaying a value to the caller, check for the signal values (-1, -2) and branch your flow accordingly — for example, skip the position or wait-time message. A position of 1 is a normal value (the call is next in line or being connected).
    - Evaluate the estimated wait time and route the caller to the appropriate path. The table shows some examples of what a flow can do during wait times.
        
         
        | Estimated Wait Time | Action |
        | --- | --- |
        | More than 90 seconds | Offer a callback option. |
        | 60–90 seconds | Share queue information and promote digital self-service channels. |
        | 30–60 seconds | Announce the updated wait time and queue position, and include a security reminder. |
        | 0–30 seconds | Inform the caller that a rep is becoming available, and ask them to stay on the line. |
        | Unavailable (default) | Play a message acknowledging that queue information is temporarily unavailable. |
    - Loop back to the **Get In-Queue Status** action after playing the appropriate message. This refreshes the wait time and queue position as the caller moves through the queue.
    - The loop ends automatically when a rep accepts and connects to the call.
6. Set the Minimum Wait Time. This is a threshold time value that determines when to trigger the In-Queue Experience flow instead of playing org-level queue music. Having this threshold prevents short announcements or callback offers when customers might be connected within a few seconds.
7. Save and activate your flow.

For longer wait times, use the in-queue experience to highlight digital self-service channels so your customers can complete common tasks without waiting. Medium wait windows are a good opportunity to include security reminders, such as never sharing passwords or PINs. Always configure a default path for cases where queue information is temporarily unavailable. Keep messages short. The loop refreshes regularly, so concise messages give callers updated information quickly.