CallGrid

DialPad Agent Availability Integration

Check Dialpad call center availability with a destination ping before CallGrid routes a call, with failover to a backup destination.

Updated 6 min read

Browse the knowledge base
On this page

Overview#

Dialpad is a cloud phone system. A CallGrid buyer running its agents on Dialpad can receive calls on a phone number or SIP address, and CallGrid can check whether agents are free before sending each call. This avoids sending calls into long holds or voicemail and cuts No Connects.

Two layers work together:

Layer

What it does

Where

Delivery with failover

Dial Dialpad; if the call does not connect, try the next destination

Destination Call Settings, campaign Failover Routing

Availability Ping (recommended)

Before dialing, ask Dialpad's API whether agents are available; reject the destination if not

Edit Destination > Ping tab

The availability check is a destination Ping, not an integration webhook.

Step 1: Create the Dialpad destination#

  1. Buyers > Destinations > New Destination.
  2. Basic Information: Name (for example "Dialpad - Sales Team"), Buyer, Timezone, Business Hours matching the team's hours.
  3. Call Settings:
    • Phone Type: Phone with the Dialpad number for the ring group or call center.
    • Dial Attempts: usually 1.
  4. Capacity and Limit Settings: Max Concurrent Calls equal to the agents who take these calls, as a backstop. Consider Capacity Guard on bidding campaigns so one free agent is not sent overlapping calls.
  5. Revenue Settings: match the buyer agreement.
  6. Save Destination.

Test delivery with a real call (Step 5).

Step 2: Add the availability Ping#

Destination Ping tab with the Dialpad template selected
Dialpad ping request data and headers
  1. Open the destination's Ping tab and turn on Ping Integration.
  2. Turn on Ping Template and select Dialpad.
  3. Fill in the template fields:
    • Bearer Authentication Token: the token that authorizes API access to your Dialpad account.
    • Call Center ID: the Dialpad call center whose agents take these calls.
  4. Click Run Ping and confirm the ping is accepted when agents are on duty and rejected when none are.
  5. Click Save Ping.

The template fills in the request and the acceptance rule for you:

Setting

Value

Method

GET

URL

https://dialpad.com/api/v2/callcenters/<Call Center ID>/status

Acceptance Parsing

on_duty_operators Greater Than 0

The ping is accepted when the call center reports at least one on-duty operator, and rejected when it reports none.

Optional settings#

  • Timeout: keep it to a few seconds; the ping is in the routing path.
  • Use Static IP for requests: turn it on only if Dialpad restricts API callers by IP.
  • Field Mapping > Agent Availability: the template does not set this mapping. Map on_duty_operators here if you want the count shown as Agents Available on Reports > Agents and Avg Agents on the Pings report.
  • Value Extraction: optionally store a response field in a custom tag for later routing or reporting.

Step 3: Failover when Dialpad cannot take the call#

On the campaign Routing tab:

  1. Add the Dialpad destination at the top priority, and a backup destination (another buyer, or a Voicemail destination) at a lower priority.
  2. Turn on Failover Routing: "If a Destination does not Connect, rerun the Routing Plan to select the next best Destination." Each attempt increments the CallFailoverAttempts tag.
  3. Optional Retry Routing Plan: if failover finds no eligible destination, wait (Retry Routing Timeout, caller hears silence) and re-check up to Max Retry Attempts.
  4. Optional Circuit Breaker: automatically pauses a destination when failures exceed a threshold in the Observation Window.

With the availability Ping, a Dialpad destination with no free agents is rejected before dialing, so the call goes straight to the backup. Without it, CallGrid only finds out after the dial fails (busy, no answer or timeout).

Twilio translates the SIP response and CallGrid maps the result: 486 Busy shows as Busy, 480 Temporarily Unavailable and 408 show as No Answer, and 403, 404 and 5xx responses show as Failed. Anything unrecognized shows as No Answer. All three are No Connects and trigger failover.

Step 4: Duration and early answer#

If Dialpad answers the call and plays hold music or ringback before an agent picks up (for example a call center queue), CallGrid's Connect Duration starts early and can disagree with the buyer's talk time. Options:

  • Review the Dialpad Contact Center's call routing (Admin Settings > Contact Centers > select the Contact Center > Business Hours & Call Handling > Call Routing). Dialpad rings agents with the routing method you choose and places callers in a hold queue with hold music when all agents are busy. To keep callers out of the queue when no agents are on duty, turn off Allow callers to be placed in your hold queue when no agents are available.
  • Turn on Match Connect Duration (Call Settings > Advanced) if Dialpad plays a ringing tone while it waits for an agent.
  • Ask your account manager about True Connect (Beta) before enabling it.

Step 5: Test#

Ping Testing panel with Run Ping
  1. With agents available: call the campaign number; confirm the call connects to Dialpad and Call History shows the Dialpad destination and a normal Connect Duration.
  2. With all agents unavailable: confirm the ping is rejected (Pings report, Failed Accept) and the call goes to the backup.
  3. With the Dialpad destination paused or its number wrong: confirm failover.

Monitoring#

  • Reports > Pings for the destination: Accepted, Failed Accept, Timeout, API Failed, Avg ms, Avg Agents. Dialpad 429 responses count as API Failed; lower Max Pings Per Minute if it rises.
  • Reports > Summary grouped by DestinationName: No Connect %, Completed, Billable %.
  • Reports > Agents: Agents Available per destination.
  • Per-call ping results are on the call timeline.

Troubleshooting#

Problem

Check

Calls do not reach Dialpad

Number or SIP URI; destination paused, capped or outside Business Hours

Calls go to backup while agents are free

Acceptance path or operator wrong; Run Ping and read the real response; agent status in Dialpad (do not disturb, ring group paused)

Every ping fails

API key expired or lacks scope; switch to Authorization if tokens rotate

High Timeout %

Dialpad API latency; raise the Ping Timeout slightly. The source Webhook Timeout override can also shorten it; minimum 1 second

Durations longer than Dialpad reports

Dialpad answering into a queue; Match Connect Duration or Dialpad routing change

Overlapping calls on one agent

Capacity Guard, lower Max Concurrent Calls

Best practices#

  1. Always have a backup destination and Failover Routing on.
  2. Use the availability Ping rather than relying on failed dials, so callers do not ring out.
  3. Set Business Hours on the destination to match the team.
  4. Keep Dial Timeout short enough that failover happens before callers give up.
  5. Place live test calls after any Dialpad routing change.

Do it with AI#

Ask Griddy, Claude or ChatGPT. Try: "What is the No Connect % on my Dialpad destination this week?" 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.