Fix Dialpad to Google Sheets call transcripts in Zapier
Fix missing Dialpad call transcripts in Google Sheets Zaps: use the /v2/call endpoint, started_after Unix timestamps, and a post-call delay so transcripts are ready.
If your Dialpad → Google Sheets Zap runs but the transcript is blank (or your API step throws 404/403 errors), the fix is usually: use Dialpad’s /v2/call endpoint (singular), filter with started_after using a Unix timestamp, and trigger on call ended with a short delay so Dialpad has time to finish transcription.
Photo by Carlos Muza on Unsplash
Why your Dialpad transcript Zap “works” but the transcript is empty
Most broken setups fall into one (or more) of these buckets:
Wrong Dialpad endpoint (commonly .../v2/calls instead of .../v2/call).
Wrong time filter parameter (using created_after instead of started_after).
Wrong time filter format (trying “last 3 hours” instead of a Unix timestamp).
Trigger happens before the transcript is ready (Zap fires instantly when a call ends, but transcription completes later).
Auth/scope mismatch (works in one step/test but returns 403 in the live run).
Instead of polling (“every X minutes, get calls from the last 3 hours”), use a post-call trigger and fetch the transcript after Dialpad finishes processing.
Step 1: Trigger on a Dialpad call ending (not “transcript created”)
In Zapier, prefer a Dialpad trigger that fires when a call ends/hangs up. This gives you a stable call ID immediately.
Why this matters: some “transcript” triggers are inconsistent, and even when they fire, they often don’t include the transcript payload you actually need.
Step 2: Add a delay (so the transcript exists)
Add Delay by Zapier right after the trigger.
Start with 10–30 minutes if you want faster turnaround.
Use ~60 minutes if you want maximum reliability and don’t mind waiting.
Transcription time varies with call length and Dialpad processing.
Step 3: Fetch the full call record (API) and pull transcript fields
Use Zapier Webhooks (or the Dialpad “API Request” style action if you have it) to request the call record by ID.
Key API gotchas to avoid:
Endpoint is singular:.../api/v2/call/{id} (not calls).
If you’re listing calls, confirm you’re using the “Call — List” API, and that your query params match Dialpad’s docs.
Step 4: Write a clean row into your Calls tab
Once you have the transcript + call metadata, write one row per call into your Google Sheet.
A practical minimal column set:
Call ID
Start time
End time
From / To (phone numbers)
Agent / user
Duration
Transcript text
Recording URL (if available)
How to build the started_after Unix timestamp (so you stop getting 404/empty results)
Dialpad’s API expects a Unix-style timestamp for time filtering.
If you’re filtering “calls that started after X,” your Zap needs to generate something like:
“Now minus 3 hours” → converted into a Unix timestamp
In Zapier, you can do this a few ways:
Formatter → Date/Time to subtract time and output a timestamp
Code by Zapier (JavaScript/Python) if you need full control
If you don’t need historical backfill, you can skip time filters entirely and just fetch by call ID from the call-ended trigger.
Verify the endpoint path is exactly/v2/call (or /api/v2/call/{id} when fetching by ID).
Confirm you’re using the correct Dialpad base URL for the API you’re calling.
If you’re listing calls, confirm you’re using the correct list route and not mixing list vs get-by-id.
If you see a 403
Re-check authentication (API key / bearer token).
Confirm the Dialpad user behind the key has the permissions required for the call/transcript endpoints.
If you changed the endpoint from wrong → right and went from 404 → 403, that’s a sign you’re now hitting the real route but auth/scope is blocking it.
If the transcript is blank but everything else writes
Increase the delay.
Confirm you’re requesting the correct transcript field (some endpoints return voicemail transcripts, not call transcripts).
Confirm the call actually has AI transcription enabled in Dialpad.
A clean Sheet mapping strategy (so analysis is easy later)
If your spreadsheet has multiple tabs (Calls, Appointments, Quotes, Invoices, Customers, etc.), keep your “Calls” tab strict and normalized.
One row = one call
Avoid mixing computed insights into the raw Calls table
Add separate tabs for analysis/pivots so the base data stays stable
This makes it much easier to later summarize outcomes (appointments booked, conversion rates, lag time) and run AI analysis reliably.
Get help building this
Building a Dialpad → Google Sheets transcript Zap usually breaks at the delay timing and the API endpoint — the two places where most Zapier builds go wrong before they ship. If you’ve hit that wall, book a ZoomFlow session — one of our consultants can debug it with you live and ship the working version in the same call.
Fix Lex Reception → Locus routing errors in Zapier by verifying Contacts/Leads/Matters in Locus first, reducing branching, and adding better logging and safeguards.
Fix a broken Zapier QuickBooks integration fast: diagnose auth, mapping, and replay issues, prevent duplicates, and safely retry or escalate in 60 minutes.