# Get Queue Info

Get Queue Info is one of the Internal Data Ops operations. It takes a snapshot of a queue as it stands right now, how many agents are free, how many are not, how many calls are being handled, and how many are still waiting, and saves those counts in variables. Later components can read the variables to decide what happens next in the call.

## What it does

The component reports four live figures for the queue you point it at: agents available to answer, agents currently unavailable, calls being handled, and calls waiting to connect.

You can name the queue directly or supply an expression so the target is chosen while the call runs. Either way, the results land in variables you can pass to a following component or test in a **Condition**.

## Configure the component

1. Drag the **Internal Data Ops** component onto the canvas, then click it to open its settings.

   ![The Internal Data Ops block placed on the call flow canvas](/images/pbx/developer-component-cfd.png)

2. In the **Component Type** drop-down list, choose **Get Queue Info**.

   ![Choosing Get Queue Info from the Component Type list](/images/pbx/get-queue-info-cfd.png)

3. Point the component at a queue using one of these methods:

   ![Selecting the target queue for the lookup](/images/pbx/developer-select-queue-cfd.png)

   - **Queue**: pick a queue from the drop-down list.
   - **Expression**: click the *fx* icon and enter an expression to resolve the queue at runtime.

     ![Entering an expression that resolves the target queue](/images/pbx/get-queue-agent-expression.png)

     For example, `$UserInput1.userInput` uses the queue number the caller keyed in.

   :::note
   For the variables and functions you can use in an expression, see [Variables and Functions in Cloud Voice Expression](/pbx/call-flow-designer-guide/constants-and-variables-in-cloud-voice-cfd-expression/).
   :::

4. Click **Confirm** in the bottom-right corner.

## Variables

When you add a Get Queue Info component, it writes the queue's live counts into the variables below. Read them from any expression-aware component, **Condition**, for instance, to act on what the lookup returned.

:::note
A call flow can hold more than one Get Queue Info component, so each is numbered in the order you add it (Get Queue Info 1, Get Queue Info 2, and so on). Include the matching index in the variable name so you read from the right component.
:::

| Variable | Type | Description | Example |
|----------|------|-------------|---------|
| `$GetQueueInfo{index}.availableAgents` | Integer | The number of agents free to take calls right now. | `5` |
| `$GetQueueInfo{index}.unavailableAgents` | Integer | The number of agents unable to take calls right now. | `1` |
| `$GetQueueInfo{index}.callsActive` | Integer | The number of calls queue agents are currently handling. | `2` |
| `$GetQueueInfo{index}.callsWaiting` | Integer | The number of calls still waiting in the queue. | `10` |

:::tip
A common use is to branch on how busy a queue is. Feed a variable such as `$GetQueueInfo1.callsWaiting` into a **Condition** component, then route the caller to voicemail, a callback offer, or an overflow queue when the wait is long, or through to an agent when the queue is quiet.
:::

:::note
The counts are a snapshot taken the moment the component runs, not a live figure that keeps updating. If the flow pauses (for example, playing a long prompt) before it acts on a value, the queue may have changed by then.
:::

## What it can connect to

A Get Queue Info component leads to **exactly one** downstream component. Any of the following can follow it:

| Component | Purpose |
|-----------|---------|
| [Prompt](/pbx/call-flow-designer-guide/prompt/) | Play an audio file or a text-to-speech message to the caller. |
| [Business Hours](/pbx/call-flow-designer-guide/business-hours/) | Route the call to different destinations depending on the time of day. |
| [Menu](/pbx/call-flow-designer-guide/menu/) | Offer callers a set of options and route them by the DTMF (Dual-Tone Multi-Frequency, the tone a phone keypad sends when a key is pressed) key they press. |
| [User Input](/pbx/call-flow-designer-guide/user-input/) | Collect DTMF digits from the caller, usually paired with **Condition** to act on what was entered. |
| [Language](/pbx/call-flow-designer-guide/language/) | Change the system prompt language for the rest of the flow. |
| [Record](/pbx/call-flow-designer-guide/record/) | Start recording once the caller connects to another party, with optional notification prompts, or turn recording off for a call that would otherwise be recorded. |
| [Dial by Number](/pbx/call-flow-designer-guide/dial-by-number/) | Let callers dial a number directly to reach their destination. |
| [Dial by Name](/pbx/call-flow-designer-guide/dial-by-name/) | An end component that lets callers reach a user by typing the first three letters of their name. |
| [Transfer](/pbx/call-flow-designer-guide/transfer/) | An end component that sends the caller to a chosen destination, with optional prompts announcing the transfer. |
| [Hang Up Call](/pbx/call-flow-designer-guide/hang-up-call/) | An end component that disconnects the call. |
| [Condition](/pbx/call-flow-designer-guide/condition/) | Route the call based on logical expressions. |
| [Loop](/pbx/call-flow-designer-guide/loop/) | Repeat a group of components a set number of times or until a condition is met. |
| Internal Data Ops | Read from and write to the Cloud Voice system's own database. See [Get Extension Presence Status](/pbx/call-flow-designer-guide/get-extension-presence-status/), [Set Extension Presence Status](/pbx/call-flow-designer-guide/set-extension-presence-status/), [Get Queue Agent](/pbx/call-flow-designer-guide/get-queue-agent/), [Get Queue Info](/pbx/call-flow-designer-guide/get-queue-info/), [Get Agent Status](/pbx/call-flow-designer-guide/get-agent-status/), [Set Agent Status](/pbx/call-flow-designer-guide/set-agent-status/), [Get System Info](/pbx/call-flow-designer-guide/get-system-info/), [Get System Capacity](/pbx/call-flow-designer-guide/get-system-capacity/), [Get Extension Info](/pbx/call-flow-designer-guide/get-extension-info/), and [Get Company Contact Info](/pbx/call-flow-designer-guide/get-company-contact-info/). |
| [Email Sender](/pbx/call-flow-designer-guide/email-sender/) | Send an email for real-time notifications, alerts, or user-specific information. |
| [Database Access](/pbx/call-flow-designer-guide/database-access/) | Run a SQL operation against an external database during the call flow. |
| [HTTP Request](/pbx/call-flow-designer-guide/http-request/) | Send an HTTP request to an external server to exchange data with a third-party service. |
