# EnrollHere Agent Availability Integration

> How to make a CallGrid destination check an EnrollHere dialer queue for available agents before each call or bid.

Source: https://callgrid.com/knowledge-base/enrollhere-agent-availability-integration
Last updated: 2026-10-28
Topics: Integrations, Agent Availability

## What this article covers

How to make a CallGrid destination check an EnrollHere dialer queue for available agents before each call or bid. The check is the destination's **Ping**: an outbound request to EnrollHere for the queue, whose response decides whether the destination is considered for that call.

## Prerequisites

- An EnrollHere account with admin access.
- The **Queue ID** of the queue to monitor (usually numeric).
- Confirmation from EnrollHere of how the availability endpoint authenticates for your account. The EnrollHere Ping Template asks only for the Queue ID; if EnrollHere requires an authentication header, add it under **Headers**.
- A CallGrid destination (Buyers > Destinations) for this buyer, saved at least once. The Ping tab is enabled only after the destination is saved.

## Step 1: Find the Queue ID

1. Log in to EnrollHere.
2. Find the queue you want to monitor. If EnrollHere does not show its Queue ID, ask EnrollHere support for it.
3. Copy the Queue ID.

## Step 2: Build the destination Ping in CallGrid

![Destination Ping tab with the EnrollHere template selected](https://callgrid.com/api/media/file/kb-EnrollHere-template.png)

![EnrollHere ping request data and test variables](https://callgrid.com/api/media/file/kb-EnrollHere-request.png)

1. Open **Buyers (Destinations)**, edit the destination and select the **Ping** tab.
2. **Ping Template**: choose **EnrollHere** and enter the **Queue ID** (the template's only field). The template builds the request; review it under Request Data. To configure it manually instead, use the settings below.
3. **Request Data**:
  - Method: **GET**
  - URL: `https://api.enrollhere.com/dialer/availability/byQueue/<Queue ID>`
  - Headers: the template sends no authentication header. If EnrollHere requires one for your account, add it under **Headers**.
  - **Timeout**: seconds CallGrid waits for EnrollHere. Keep it short.
4. **Optional additions:** the template sends only the Queue ID. If EnrollHere tells you the endpoint accepts other values, such as the caller's phone number or state, you can add them to the URL with tags such as `[[tag:CallerId]]` or `[[tag:InboundStateCode]]`.
5. **Acceptance Parsing**: Parsing Type **JSON**, key `count`, operator **Greater Than**, value `0` (the template's rule). To require more agents, use a higher value, one less than the minimum (for example `2` for at least 3 agents). Run Ping and check that the response contains `count`; key names are case-sensitive.
6. **Field Mapping > Agent Availability**: map `count` to Agent Availability to record available agents.
7. Open **Ping Testing** and click **Run Ping**. Check the response and acceptance result.
8. Click **Save Ping**.

## How it behaves on live traffic

- CallGrid sends the ping when the destination is being considered for a call or bid.
- **Turbo Routing** can cancel this ping once a winning destination is decided.
- **Ping Guard** (bidding campaigns) reuses one ping per caller across duplicate bidders during the bid expiration window.
- **Capacity Guard** holds the destination out of new auctions for a set number of seconds after it wins.
- Pair availability with **Max Concurrent Calls** or **Hard Concurrency Cap** as a backstop.
- For several queues or state-specialized teams, create one destination per queue, and use destination tag filters on state where helpful.

## Rate limits and IP allowlisting

- Set **Max Pings Per Minute** on the destination (0 means unlimited). It applies on top of the buyer-level ping cap.
- Enable Ping Guard on bidding campaigns.
- A 429 returned by EnrollHere is counted under **API Failed** in the Pings report together with genuine errors.
- If EnrollHere requires allowlisted IPs, turn on **Use Static IP** on the Ping and allowlist 3.232.249.88 and 54.160.65.103. These apply to pings and webhooks when the checkbox is on.

## Monitoring

- **Reports > Pings**, grouped by DestinationName: accepted, failed, timeout, API failed and rate-limited counts, response time and average agents.
- **Reports > Agents**: agents available per destination from recent pings.

## Troubleshooting

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| 404 or invalid queue | Wrong or inactive Queue ID | Recheck the ID in EnrollHere |
| 401 or 403 | Account not enabled for the API or auth required | Ask EnrollHere how the endpoint authenticates and add the header |
| Always rejected with agents online | Acceptance key does not match the response | Run Ping and fix the key name (case-sensitive) |
| High Timeout % | EnrollHere slow or Timeout too low | Raise Timeout slightly; the per-source override labelled **Webhook Timeout** on the campaign Sources tab also sets the ping timeout (minimum 1 second) |
| High API Failed | Rate limited (429) or EnrollHere errors | Lower Max Pings Per Minute, enable Ping Guard |

Consider **Rejection Protection** ("Do not reject the call or bid if the webhook http status code is not 200") only if the buyer prefers calls during an EnrollHere outage over losing them.

## Manual API test

```bash
curl "https://api.enrollhere.com/dialer/availability/byQueue/<Queue ID>"
```

## EnrollHere resources

- EnrollHere support, for API access, authentication and Queue IDs on your account.

## Do it with AI

**Ask Griddy, Claude or ChatGPT.** Try: "What was the accept rate on pings to my EnrollHere destination yesterday?" Claude and ChatGPT need the CallGrid connector turned on (setup guides for [Claude](https://callgrid.com/knowledge-base/callgrid-mcp-connect-to-claude-desktop) and [ChatGPT](https://callgrid.com/knowledge-base/callgrid-mcp-connect-to-chatgpt)).

The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.
