CallGrid

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#

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-na12 or vcc-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:

  1. Go to Integration > API Token.
  2. Next to Data Request Token, click New Token and copy it.
  3. Go to Queues and note the numeric Queue ID of the queue to monitor.
  4. Note the platform subdomain from the 8x8 login URL.

Step 2: Configure the destination Ping#

Destination Ping tab with the 8x8 template selected
  1. Buyers > Destinations, open the destination for this 8x8 queue.
  2. Open the Ping tab and enable Ping Integration.
  3. 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.
  4. 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.88 and 54.160.65.103.
  5. Headers (only if you build the request by hand instead of using the template): add Authorization with the value Basic [[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 raw tenant:token unencoded.
  6. Click Save Ping.

Step 3: Acceptance Parsing#

8x8 acceptance parsing and field mapping

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#

  1. In Ping Testing, click Run Ping.
  2. Confirm the response is JSON queue statistics, not an authentication error.
  3. Check the property paths against the real response and adjust Acceptance Parsing and Field Mapping if 8x8 nests fields differently.
  4. Test with agents available and with none available, and confirm the destination is accepted and rejected respectively.
  5. 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

agent-count-waitTransact

Agents available to take calls

agent-count-busy

Agents on calls

queue-size

Callers waiting

longest-wait-time

Longest current wait, seconds

enabled-agent-count

Agents enabled on the queue

Example acceptance rules#

Goal

Criteria

At least one free agent

queue.agent-count-waitTransact Greater Than 0

Keep a buffer

queue.agent-count-waitTransact Greater Than 2 and queue.queue-size Less Than 10

Avoid long holds

queue.longest-wait-time Less Than 300

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 Basic [[b64:TENANT_NAME:AUTH_TOKEN]]

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?

Still stuck on a setup step?

Email support@callgrid.com with this article and where it stopped matching. A CallGrid specialist will help you get it working.