Getting started

Getting Started

API Basics

APIs

Authentication

Blocklists

Call Channels

Call Center

Call Recordings

Devices

Pivot

Quickcall

Webhooks

Business SMS

VirtualText

Automation

Zapier

Use cases

Create Trello Card for Voicemails Received

Send Call Data to Google Sheets

Slack Notifications from Call Events

SMS Airtable Template

Trigger SMS Messages from Your CRM

Zapier Webinar Recording

About Webhooks

Webhooks allow Dash to send HTTP requests to a third-party web server, alerting that server of events occurring within Dash. Typically, events would be fired for new calls, when a call is answered, and when a call is finished, though other events will be added in the future.

Webhook Types

The following Webhooks are available on all Dash accounts:

Webhook Schema

Webhooks are subscriptions to allowed events that, when the event occurs, the event data is sent to the URI set in the Webhook document.

Key Description Type Default Required
custom_data These properties will be added to the event and will overwrite existing values. object() false
enabled Is the webhook enabled and running boolean() true false
hook The trigger event for a request being made to 'callback_uri'. string() true
http_verb What HTTP method to use when contacting the server `string('get' 'post')` post
name A friendly name for the webhook string() true
retries Retry the request this many times (if it fails) integer() 2 false
uri The 3rd party URI to call out to an event string() true

Webook Payload

Here's what you can expect to receive when a webhook fires to your server:

Base Payload

Most of these fields should be present on all payloads.

Hook Specific

Payloads for Creating Webhooks

Missed Calls Webhook

{
   "data":{
      "name":"Missed Call",
      "hook":"notifications",
      "include_subaccounts":false,
      "http_verb":"get",
      "retries":4,
      "uri":"<https://hooks.zapier.com/hooks/catch/591668/xlwslm/>",
      "type":"account",
      "action":"doc_created",
      "custom_data":{
         "type":"missed_call"
      },
      "enabled":true,
      "include_internal_legs":true,
      "id":"51840ffc8bde832a1f5477def32cd665"
   }
}

New Voicemail Mail Message Webhook

{
   "data":{
      "name":"Missed Call",
      "hook":"notifications",
      "include_subaccounts":false,
      "http_verb":"get",
      "retries":4,
      "uri":"<https://hooks.zapier.com/hooks/catch/591668/xlwslm/>",
      "type":"account",
      "action":"doc_created",
      "custom_data":{
         "type":"missed_call"
      },
      "enabled":true,
      "include_internal_legs":true,
      "id":"51840ffc8bde832a1f5477def32cd665"
   }
}

Create Webhook

Creates a webhook using parameters passed in the payload.

API

Method: PUT

<https://public-api.virtualpbx.com:8443/v2/accounts/{{account_id}>}/webhooks

Payload

{
  "data": {
    "name": "My New Webhook",
    "uri": "<http://my.server.net>",
    "http_verb": "post",
    "hook": "channel_destroy",
    "retries": 4
  }
}

List Webhooks

List all webhooks on the account. Any webhooks with disable_reason, in summary, have been auto-disabled.

API

Method: GET

<https://public-api.virtualpbx.com:8443/v2/accounts/{{account_id}>}/webhooks

Payload

{
  "data": {
    "name": "Main Blacklist",
    "numbers": {
      "+14154846048": {}
    }
  }
}

Edit Webhook

Edit a webhook with any changes passed in the payload.

API

Method: POST

<https://public-api.virtualpbx.com:8443/v2/accounts/{{account_id}>}/webhooks/{{webhook_id}}

Payload

{
  "data": {
    "enabled": true,
  "retiees": 4
  }
}

Delete Webhook

Delete a webhook. This is permanent and unrecoverable.

API

Method: DELETE

<https://public-api.virtualpbx.com:8443/v2/accounts/{{account_id}>}/webhooks/{{webhook_id}}