Push leads in via API, get call results via webhooks. Connect your CRM, cloud storage, and messaging tools.
When you configure a webhook URL on a list, this payload is POSTed after each call disposition:
{
"event": "call.completed",
"timestamp": "2025-05-14T16:30:00Z",
"call": {
"id": "abc-123",
"disposition": "Interested",
"duration_sec": 142,
"from_number": "+14143756757",
"to_number": "+15551234567",
"started_at": "...",
"ended_at": "...",
"notes": "...",
"recording_url": "...",
"transcript": "...",
"summary": "..."
},
"lead": {
"id": "lead-456",
"name": "John Smith",
"phone": "+15551234567",
"company": "Acme Corp",
"title": "VP Sales",
"email": "john@acme.com",
"city": "Miami",
"state": "FL",
"custom_fields": {
"Revenue": "$5M",
"Industry": "SaaS"
}
},
"agent": {
"name": "Jane Agent",
"email": "jane@company.com"
},
"list": "Q2 Florida Realtors"
}
X-Webhook-Event: call.completed headerAutomatically send call recordings to your CRM, cloud storage, or messaging platform using webhooks.
call.recording_url within seconds of call end.Go to Setup β App Manager β New Connected App. Enable OAuth, add the api and refresh_token scopes. Note your Consumer Key and Secret.
Create a small server (Node.js, Python, etc.) that receives the dylr webhook POST. This middleware will download the recording from call.recording_url and upload it to Salesforce.
Use POST /services/data/vXX.0/sobjects/ContentVersion to upload the MP3 as a ContentVersion. Link it to the relevant Contact or Lead using ContentDocumentLink.
Paste your middleware URL into the webhook field for each list above. dylr will POST call.completed events with the recording URL included.
Task object to log the call disposition and link the recording. Match leads by phone number using lead.phone from the payload.Go to Settings β Integrations β Private Apps β Create. Grant scopes: crm.objects.contacts.write, files. Copy your access token.
Create a server that receives the dylr webhook, downloads the recording MP3 from call.recording_url, then uploads it to HubSpot.
Use POST /files/v3/files to upload the MP3. Then create an Engagement (call activity) via POST /crm/v3/objects/calls and attach the file.
Paste your middleware URL into the webhook field above. Each call disposition will trigger a POST with full call data including the recording link.
lead.phone to look up the HubSpot contact via GET /crm/v3/objects/contacts/search and associate the call engagement.Go to api.slack.com/apps β Create New App. Enable Incoming Webhooks and add one to your target channel. Copy the webhook URL.
Create a server that receives the dylr webhook POST and formats a Slack message with the call summary, disposition, agent name, and a link to the recording.
Format a rich message using Slack's Block Kit: include the lead name, disposition badge, duration, and a <recording_url|ποΈ Listen> link.
Paste your middleware URL into the webhook field above. Every completed call will trigger a notification in your Slack channel.
Go to console.cloud.google.com β IAM β Service Accounts β Create. Download the JSON key file. Enable the Google Drive API.
Create a folder in Google Drive for recordings. Share it with the service account email (e.g., dylr@project.iam.gserviceaccount.com).
Create a server that receives the dylr webhook, downloads the MP3 from call.recording_url, and uploads it to Google Drive via POST /upload/drive/v3/files.
Paste your middleware URL into the webhook field above. Name files using the lead name and date for easy search: {lead.name} - {timestamp}.mp3.
list and agent.name fields from the webhook payload.Choose Webhooks by Zapier β Catch Hook as the trigger. Zapier gives you a unique webhook URL β copy it.
Set the Zapier webhook URL as the webhook for your list above. Make a test call and dispose it so Zapier receives sample data.
In Zapier, click Test trigger. You'll see the full payload: call.recording_url, lead.name, call.disposition, etc. Map these to your action step.
Choose any destination: Google Drive (upload file from URL), Slack (send message), HubSpot (create engagement), Notion (create page), email, etc. Zapier handles the integration.
call.recording_url as a "File URL" in actions that accept file uploads β Zapier will download and re-upload automatically.Create an endpoint on your server that accepts POST requests with Content-Type: application/json. Must respond with 2xx within 10 seconds.
The payload includes call.recording_url β a direct link to the MP3 file. Fetch it with a GET request (no auth required). The URL is valid for 72 hours.
Use fetch(call.recording_url) to download the MP3. Store it in your preferred location: S3, Azure Blob, local filesystem, or any cloud storage.
Check for X-Webhook-Event: call.completed header to validate the request is from dylr. Log the call.id to prevent duplicate processing.