8x8 Contact Center Agent Availability Integration
Let CallGrid check an 8x8 Contact Center queue for available agents with a destination ping before it routes a call to that buyer.
Updated 6 min read
Browse the knowledge base
On this page
- Overview
- Prerequisites
- Step 1: Get the 8x8 credentials
- Step 2: Configure the destination Ping
- Step 3: Acceptance Parsing
- Step 4: Field Mapping > Agent Availability
- Step 5: Test
- 8x8 response fields
- Example acceptance rules
- How it behaves on a call
- Capacity backstops
- Troubleshooting
- 8x8-side limits
- Security
- Resources
- Do it with AI
Overview#
This integration lets CallGrid check an 8x8 Contact Center queue for available agents before routing a call to that buyer. CallGrid sends a destination Ping to 8x8's Real Time Statistics API during routing. If the response shows agents waiting for calls, the destination is considered; if not, it is skipped and the call moves on through routing.
The check is configured on the destination's Ping tab. Destination webhooks are now called destination pings, so older instructions that say "Webhook tab" or "Run Webhook" refer to the Ping tab and Run Ping.
Prerequisites#
- An 8x8 Contact Center account with admin access to Configuration Manager.
- The 8x8 platform subdomain for the tenant, for example
vcc-na12orvcc-eu1. It appears in the URL when you open 8x8 Configuration Manager. - The numeric Queue ID of the queue that answers CallGrid calls.
- The tenant name and a Data Request Token.
- A CallGrid buyer and a saved destination for this queue (the Ping tab needs a saved destination).
Step 1: Get the 8x8 credentials#
In 8x8 Configuration Manager:
- Go to Integration > API Token.
- Next to Data Request Token, click New Token and copy it.
- Go to Queues and note the numeric Queue ID of the queue to monitor.
- Note the platform subdomain from the 8x8 login URL.
Step 2: Configure the destination Ping#

- Buyers > Destinations, open the destination for this 8x8 queue.
- Open the Ping tab and enable Ping Integration.
- Turn on Ping Template, select 8x8 and fill in the template fields:
- Queue ID: the numeric Queue ID from Step 1.
- Platform Subdomain: the platform subdomain from your 8x8 login URL.
- Basic Auth Token: the Base64 encoding of
TENANT_NAME:AUTH_TOKEN, your tenant name and Data Request Token joined by a colon.
- Request Data (the template fills in the method and URL):
- Method: GET
- URL:
https://<Platform Subdomain>.8x8.com/api/rtstats/stats/queue/<Queue ID>.json - Timeout: keep it short so a slow 8x8 response does not delay routing. New destination Pings default to 5 seconds; the per-source Webhook Timeout override has a 1-second minimum.
- Use Static IP for requests: turn on only if your 8x8 tenant restricts API access by IP. Requests then come from
3.232.249.88and54.160.65.103.
- Headers (only if you build the request by hand instead of using the template): add
Authorizationwith the valueBasic [[b64:TENANT_NAME:AUTH_TOKEN]]. The[[b64:...]]macro inserts the base64 encoding of the literal text, which is what Basic auth needs. Do not paste the rawtenant:tokenunencoded. - Click Save Ping.
Step 3: Acceptance Parsing#

Acceptance Parsing decides whether the destination is available, and the 8x8 template sets this rule for you. Tooltip: "If accepted, the Destination will be considered in the route decision for calls and bids."
- Parsing Type: JSON
- Property:
queue.agent-count-waitTransact(agents waiting for a transaction) - Operator: Greater Than (options are Equals, Not Equal To, Greater Than, Less Than)
- Value:
0
Add more criteria for stricter rules, for example queue.queue-size Less Than 10. Business hours are not an acceptance rule; set them on the destination's Business Hours and Timezone.
Rejection Protection ("Do not reject the call or bid if the webhook http status code is not 200") keeps a destination eligible when 8x8 returns an error. Turn it on only if the buyer prefers receiving calls during an 8x8 API outage over losing them.
Step 4: Field Mapping > Agent Availability#
Map Agent Availability to queue.agent-count-waitTransact. Tooltip: "Parse agent availability status from ping responses." The mapped value appears as Agents in the Pings report and on Reports > Agents.
Step 5: Test#
- In Ping Testing, click Run Ping.
- Confirm the response is JSON queue statistics, not an authentication error.
- Check the property paths against the real response and adjust Acceptance Parsing and Field Mapping if 8x8 nests fields differently.
- Test with agents available and with none available, and confirm the destination is accepted and rejected respectively.
- Place a live test call and check the call timeline and Reports > Pings (Accepted, Timeout, API Failed, Avg Agents).
8x8 response fields#
Use Run Ping to see your queue's live response. Fields used in this article's examples:
Field | Meaning |
|---|---|
| Agents available to take calls |
| Agents on calls |
| Callers waiting |
| Longest current wait, seconds |
| Agents enabled on the queue |
Example acceptance rules#
Goal | Criteria |
|---|---|
At least one free agent |
|
Keep a buffer |
|
Avoid long holds |
|
How it behaves on a call#
- The ping runs during routing for each call or bid that reaches this destination. It is not a background feed from 8x8.
- Availability can change between the ping and the call. Two calls a few seconds apart can both see the same free agent.
- If acceptance fails, CallGrid does not queue the call for this buyer. The destination is skipped and routing continues to the next destination or group; with Failover Routing and Retry Routing Plan on, a call that fails to connect or finds nothing can be rerouted or re-checked.
Capacity backstops#
Combine the ping with destination Capacity and Limit Settings: Max Concurrent calls, Hard Concurrency Cap, Capacity Guard with Capacity Guard Seconds (holds a destination out of new auctions after it wins), and Concurrency Schedule for staffed hours. Max Pings Per Minute limits how often CallGrid pings this destination, which protects the 8x8 API.
Troubleshooting#
Symptom | Likely cause | Fix |
|---|---|---|
401 or authentication error in Run Ping | Token wrong, expired, or not base64 encoded | Regenerate the Data Request Token; use |
Host not found or timeout | Wrong platform subdomain | Match the subdomain in the 8x8 login URL |
404 or empty queue data | Wrong Queue ID or inactive queue | Confirm the Queue ID in Configuration Manager |
Always rejected although agents are free | Property path does not match the response | Copy the path from the Run Ping response |
Calls reach a queue with no free agent | Availability changed after the ping | Add Capacity Guard or concurrency limits |
Many Timeout or API Failed in Reports > Pings | 8x8 slow or rate limiting | Raise Timeout slightly, lower Max Pings Per Minute, contact 8x8 |
8x8 blocks requests | IP restriction on the tenant | Turn on Use Static IP and allow both IPs |
8x8-side limits#
With high call volume, set a sensible Max Pings Per Minute on the destination, and ask 8x8 about any API limits that apply to your tenant.
Security#
- Store the token only in the destination Ping (the template's Basic Auth Token field, or the headers if you build the request by hand); regenerate it in 8x8 if it is exposed.
- All requests use HTTPS.
- Limit 8x8 Configuration Manager access to the people who manage the integration.
Resources#
- 8x8 Developer Hub: https://developer.8x8.com/
- 8x8 Contact Center Real Time Statistics API guide: https://support.8x8.com/contact-center/8x8-contact-center/developers/8x8-contact-center-real-time-statistics-reporting-api
Do it with AI#
Ask Griddy, Claude or ChatGPT. Try: "How many pings to my 8x8 destination were accepted today, and what was the average agent count?" Claude and ChatGPT need the CallGrid connector turned on (setup guides for Claude and ChatGPT).
The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.
Was this article helpful?
Related articles
- Five9 Agent Availability IntegrationLet a CallGrid destination check Five9's live agent availability before a call is sent, with setup, acceptance parsing and troubleshooting.
- EnrollHere Agent Availability IntegrationHow to make a CallGrid destination check an EnrollHere dialer queue for available agents before each call or bid.
- Aircall Agent Availability IntegrationLet a CallGrid destination check whether any of your Aircall agents are available before it sends a call, using the Aircall ping template.