Articles on: PowerDialer Basics

Utilizing Outbound Webhooks in PowerDialer

Using Outbound Webhooks in PowerDialer


Outbound webhooks allow PowerDialer to send real-time data to your own systems — such as your CRM, Google Sheets, or any custom API.

They help you update your records instantly whenever something happens inside PowerDialer.



Types of Outbound Webhooks


1. Call Completed


Triggered whenever PowerDialer finishes a call attempt.

Use this if you want to log every call inside your CRM or custom system.


2. Disposition Added


Triggered when you add a disposition to a lead, either during or after a call.

Use this if you want to sync lead statuses into your CRM or workflow.



How to Configure Outbound Webhooks


  1. Go to the Contact List page in PowerDialer.
  2. Click Import Contacts, then open the Outbound Webhooks page.
  3. Select the type of webhook you want:
  • Call Completed
  • Disposition Added
  1. Click Create Webhook, then fill in:
  • Webhook name
  • Your server/CRM webhook URL
  • Data format (JSON recommended)
  • Description
  • Any required headers
  1. Once created, click the Play icon on the webhook card.

This sends test data to your URL.

  1. Use this test data to map fields inside your CRM or custom service.
  2. You’re all set — PowerDialer will now send data automatically whenever the selected event happens.




Interactive Guide




Video Tutorial




Webhook Data Examples (JSON)


Below are example payloads for each webhook type.


Example: CALL_COMPLETED Event


(No disposition data included)


{
"event": "call_completed",
"eventType": "CALL_COMPLETED",
"timestamp": "2025-01-01T12:00:00.000Z",

"callHistoryId": 9876,
"callSid": "CA23ab9f002134abcd89123f",
"phoneNumber": "+15551234567",
"fromPhoneNumber": "+14155552671",

"contactId": 12345,
"contact": {
"id": 12345,
"name": "John Doe",
"phoneNumber": "+15551234567",
"additionalNumbers": ["+15559876543"],
"metadata": {
"company": "Acme Corp",
"title": "Sales Manager",
"email": "john.doe@example.com",
"tags": ["sales", "qualified"]
}
},

"callHistory": {
"id": 9876,
"callStatus": "Completed",
"direction": "outbound",
"callTime": 125000,
"waitTime": 3000,
"wrapTime": 15000,
"recordingSid": "RE123abc4455ffe77889900",
"recordingUrl": "https://api.twilio.com/2010-04-01/Accounts/ACxxx/Recordings/REyyy",
"transcript": "Hi John, this is regarding your recent inquiry..."
},

"recording": {
"recordingSid": "RE123abc4455ffe77889900",
"recordingUrl": "https://api.twilio.com/2010-04-01/Accounts/ACxxx/Recordings/REyyy"
},

"userId": 42
}



Example: DISPOSITION_ADDED Event


(Includes disposition data)


{
"event": "disposition_added",
"eventType": "DISPOSITION_ADDED",
"timestamp": "2025-01-01T12:00:00.000Z",
"message": "This is a test disposition webhook delivery",

"callHistoryId": 9876,
"callSid": "CA23ab9f002134abcd89123f",
"contactId": 12345,
"phoneNumber": "+15551234567",
"fromPhoneNumber": "+14155552671",

"disposition": {
"id": 456,
"type": "Positive",
"notes": "Customer was interested and requested follow-up next week",
"contactId": 12345,
"callHistoryId": 9876,
"createdAt": "2025-01-01T12:00:00.000Z"
},

"contact": {
"id": 12345,
"name": "John Doe",
"phoneNumber": "+15551234567",
"metadata": {
"company": "Acme Corp",
"title": "Sales Manager",
"email": "john.doe@example.com"
}
},

"callHistory": {
"id": 9876,
"callStatus": "Completed",
"direction": "outbound",
"callTime": 125000,
"recordingSid": "RE123abc4455ffe77889900",
"recordingUrl": "https://api.twilio.com/2010-04-01/Accounts/ACxxx/Recordings/REyyy"
},

"recording": {
"recordingSid": "RE123abc4455ffe77889900",
"recordingUrl": "https://api.twilio.com/2010-04-01/Accounts/ACxxx/Recordings/REyyy"
},

"userId": 42
}

Updated on: 27/11/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!