Help Center / Smarter Voice / Advanced / Connect Zapier

Advanced

Connect Zapier to Business Phone

If you don’t already have a Zapier account, you can create one for free at the Zapier Sign Up page.

On this page

Visit our Zapier Integration feature page to find our full list of Zapier templates and to learn more about the structure of Zapier apps.

Visit our Developer Site for documentation on API’s

Creating a Zapier Account and Linking to VirtualPBX

  1. First, create a Zapier account or log in to your existing account. You can find the “Sign In” / “Sign Up” buttons in the upper part of the Zapier homepage.

  2. Navigate to “My Apps” from the side menu bar. This will open up a new screen where you can view the connections you’ve created in your zaps to other services. For example, a VirtualPBX App login to a Google Sheets login.

    Creating a Zapier Account and Linking to VirtualPBX
  3. A search bar will be present in the “My Apps” screen — noted with the “Connect a new account…” phrase.

  4. Click it to search for “VirtualPBX”. Then click the VirtualPBX listing to open a new window.

  5. Enter your VirtualPBX credentials into the login screen to connect your VirtualPBX app to Zapier.

  6. When you’re logged in to VirtualPBX, you can start creating an automation! Use a pre-made Zap or create your own with the Zap Editor. Creating a Zap requires no coding knowledge and you’ll be walked step-by-step through the setup.

Building and Customizing a Zap

The following tutorials can direct you toward specific goals in creating and customizing a Zap. You can begin from scratch or by using one of our pre-built Zap Templates.

Log my call data

Send my call data to a Google Sheets Spreadsheet

Send my voicemail data to Google Sheets

Keep a running count of weekly calls in Gmail Reports

Automate my reporting

Automatically deliver weekly Gmail events containing call data

Send Slack notifications when call events happen (call is received, voicemail is left)

Keep an ongoing log in Google Sheets of all calls on your VirtualPBX account

Create Trello cards, using conditional logic to reach different teams (Sales, Marketing, etc)

Make sense of call data

Use Google Sheets for calculations (total calls, voicemails left this week, etc)

Log your voicemail data in Google Sheets

Make sense of call data (such as calculating average call duration)

Notify my team about inbound calls or voicemails

Send Slack notifications when a call takes place

Automate email-based reports through Gmail that include call data

Building Your Own Zap from Scratch

You can create you own Zap from scratch by first signing in to your Zapier account. Then, on your Home screen in the left-hand side menu, click the Make a Zap button.

  1. A new screen will load. In the search box, type “virtualpbx” to find our app. Then click the app icon that appears

  2. Next, choose your trigger event — the action you want to the Zap to look for — such as Call Started to take action when a new call starts on your VirtualPBX account.

    Building Your Own Zap from Scratch
  3. Then choose your VirtualPBX account. Instructions for connecting the VirtualPBX app in your Zapier account are listed above. Or you can log in on this screen.

  4. If calls have been made while your Zapier account has been linked to you VirtualPBX account, you can find test data in this next step. You can click the Test and Continue button to move to the next step, or click the “Skip Test” text to proceed without it.

  5. This is your opportunity to choose what happens after your VirtualPBX trigger (such as Call Started) fires. You can search for other apps, like Google Sheets, to log your started calls in a spreadsheet. You can add additional apps by clicking the plus sign underneath any existing step.

  6. When your Zap is complete, you can turn it on by clicking the button at the top of your screen. All new Zaps are off by default and will be turned off when actively edited.

Hook Configuration

Dash Webhooks can be configured to send HTTP(S) requests to report URLs and supports GET and POST requests. The data delivered depends on the Trigger event selected. The current version of Dash Webhooks only supports Channel events, which are directly related to call activity.

You should not send multiple Dash Webhooks to the same Zapier URL. Zapier will not handle differences in the payloads in a way that allows you to process all the data. Using separate Zapier Triggers and URLs is the best approach.

  1. Click on the Menu Icon at the top right

  2. Click on Webhooks

  3. Click on New Webhook

  4. Fill out the form

  5. Click on Create Webhook

Hook Trigger Events

A Webhook will deliver data about the selected channel events to the configured URL. Currently the available events include:

  • Channel:AnswerBridgeCreateDestroy

  • ACD Queue:Queue JoinQueue LeaveRecipient AwayRecipient DeliveredRecipient HangupRecipient LoginRecipient LogoutRecipient OfferRecipient ReadyRecipient RejectedRecipient Status Change

  • Call Parking

  • SMS

  • Notifications Webhook (including the following custom data types):Callflow Webhook TriggeredVoicemail Message SavedNew Voicemail MessageVoicemail Box FullRegistrationPortedPort UnconfirmedPort ScheduledPort RequestPort RejectedPort PendingPort CommentPort CancelPassword RecoveryInvalid Email-to-Fax EmailFax Transmission ErrorSuccessful Fax TransmissionNew UserMissed CallFax Reception ErrorSuccessful Fax ReceptionDe-RegistrationCNAM Update

Channel events deliver information about calls in the form of a call detail record. The information is formatted as a JSON payload.

Hook Payload

Here’s what you can expect to receive when a webhook fires to your server – most of these fields should be present on all payloads:

Base Payload

  • hook_event: the type of hook being fired

  • call_direction: “inbound” or “outbound”, relative to your Dash system

  • timestamp: Gregorian timestamp of the event

  • account_id: ID of the account generating the event

  • request: SIP Request

  • to: SIP To

  • from: SIP From

  • call_id: SIP Call ID

  • other_leg_call_id: if bridged, the Call ID of the other leg

  • caller_id_name: Caller ID Name

  • caller_id_number: Caller ID Number

  • callee_id_name: Callee Name

  • callee_id_number: Callee Number

    Hook Specific

  • channel_createhook_event: channel_create

  • channel_answerhook_event: channel_answer

  • channel_destroyhook_event: channel_destroyhangup_cause: SIP Hangup Cause (NORMAL_CLEARING, ORIGINATOR_CANCEL, etc)hangup_code: SIP Hangup Code (404, 503, etc)

Configuring Zapier with a Webhook

Zapier accepts Webhooks which can be chained to other services. When configuring a Zapier Webhook, keep in mind the volume of calls a system receives will generate one or more events for each call event. This can quickly consume Zapier Tasks if multiple webhooks are configured or your account has a high volume of call traffic. Please review Zapier’s Plans for more detail.

Configuring Zapier with a Webhook
  1. Create a new Zap, locate Webhooks by Zapier and select that App.

    Configuring Zapier with a Webhook
  2. Select “Catch Hook” as the Zapier Trigger.

    Configuring Zapier with a Webhook
  3. Pick off a Child Key should remain empty to capture all data delivered.

    Configuring Zapier with a Webhook
  4. Next, copy the Webhook URL. This is needed to create the Webhook on Dash.

    Configuring Zapier with a Webhook
  5. In Dash, create a Webhook. Select a Trigger event – Channel Destroy provides ideal data for capturing call activity. Enter the Zapier Webhook URL into the URL field and select 4 Re-try Attempts and finally Create Webhook.

    Configuring Zapier with a Webhook
  6. The Webhook will now be created. Make sure it’s toggled to On. This must be completed before completing configuration in Zapier.

    Configuring Zapier with a Webhook
  7. In Zapier, continue the to the next step. Zapier will wait for the Dash Webhook to send a request. You must place a call to a number on your account, wait a few seconds, then hang up to trigger the Dash Webhook.

    Configuring Zapier with a Webhook
  8. When Zapier receives the Dash Webhook test call request, you will see the following screen.

    Configuring Zapier with a Webhook Configuring Zapier with a Webhook
  9. Finally, you can select whatever service you want Zapier to use to process incoming Dash Webhooks.

Webhook Example: Receive a Slack Notification Displaying Caller ID

Phase 1: Prepare a Slack Channel to Receive Notifications

  1. Log into your Slack account and create a new channel by clicking on the + at the top of your Channels list.

  2. Give your channel a name (in this example, we will be using “dash-phonesystem”) keeping note that the title must be all lowercase and contain no spaces, mark it public or private, set the channel’s purpose (optional), and invite team members (optional). When you are finished, click Create Channel.

  3. Next, log into Zapier and select Slack from “Connected Accounts”. Complete the authentication steps to connect Slack to Zapier.

  4. Once your account has been authorized, you will see Slack in your list of connected accounts.

Phase 2: Configure Zapier to Accept a Webhook from Dash

  1. Select “Make a Zap”, name your Zap, and select Webhooks

  2. Select “Catch Hook”

  3. “Pick off a Child Key” should remain empty to capture all data delivered

  4. Next, copy the Webhook URL. It is needed to create the Webhook on Dash

  5. Zapier is now ready and waiting for a Webhook to be sent to the URL. Stay logged into Zapier. In a new browser window, log into your Dash account.

Phase 3: Configuring Dash to send the Webhook to Zapier

  1. In your Dash account, select Webhooks from the dropdown hamburger menu in the upper right of your screen.

  2. Name the Webhook (in this example, we will be using “Zapier”), select the trigger as “channel_create”, set the re-try attempts to 4, enter the URL we just got from Zapier, and click “Create Webhook”.

  3. The Webhook will now appear in your Webhooks list – make sure it’s toggled on.

  4. Now it’s time to test the Webhook. Go back to the Zapier Zap configuration where we left off. Press the “OK, I did this” button and now place a call into your VirtualPBX Dash System.

  5. If everything is working, you should see the page change to show that Zapier caught the Dash Webhook successfully.

  6. Now let’s set Zapier up to send this new data to our Slack channel. Choose Slack from your list of apps to continue.

  7. Select “Send Channel Message”.

  8. Select your Slack account and click “Save + Continue”.

  9. Now we’ll configure the message that gets sent to Slack: select the Slack channel created earlier, customize your message, and name the bot. You may return to this page later to tailor the slack message with icons, threaded messages, and other options. Press Continue at the bottom of the page when you are finished.

  10. Now we’re ready to test the integration. Start by turning on your Zap.

  11. Next, place a call into your Dash phone system. You should get a notification in Slack similar to this:

  12. It works! We have now captured all the incoming calls with a Slack message. If you have multiple inbound numbers you may modify the Zap to show which number a caller has dialed and added a bit of formatting for fun.

Phase 4: Formatting Your Notification

  1. In our example, the Webhook from Dash adds an IP address after the number. We need to strip that out to make the message look pretty.

  2. We can solve this by adding a “Formatter by Zapier” action to the Zap.

  3. Update your Formatter by Zapier screen to match the following settings:

  4. At this point, your notification in Slack will look the same as before. Our final step is to modify the Slack message to use the formatted version of the text field and not the original. Select your action “Send Channel Message” and change “Step 1” in your message to “Step 2”

  5. The message now looks like this.

  6. Slack will now show the properly formatted result.

  7. You may see notifications when someone from your company makes an outbound call. These may also appear as two notifications, indicating two legs of the call – an inbound call from the user to the system and then the system placing the outbound call. If you do not wish to see these notifications, please continue to filter them out of your Slack channel.

  8. To exclude outbound calls, we need to modify the original ZAP to filter out all calls except inbound callers dialing into our system. This is achieved by adding a filter to the Zap in-between the Catch Hook and the Formatter that will only allow the Zap to continue IF the call meets the following conditions:Call Direction (Text) Exactly Matches “inbound”Caller ID Number (Text) Starts with “+” (this indicates that it is a Caller ID number)

  9. Solved! We have now filtered the results to ONLY show incoming calls to our Dash phone system.