Wouter Dijkstra

I make things like VoiPPush, FileFish & HappyMaps.

Integrating VoIP calls with your CRM using VoiPPush

Integrating VoIP calls with your CRM using VoiPPush

Written by Wouter in Projects on

Here we are, soft launching yet another project! It has been a while since I've started writing the source code for a project, before buying a domain. Which has to mean VoiPPush is already unique.

What does VoiPPush do?

VoiPPush is like a little man-in-the-middle, but far from an attack!

Upon receiving an incoming call on a phoneline that is connected to the VoiPPush service, a few checks happen and VoiPPush sends the appropriate users an OS native push notification. Clicking on this opens their contact card up!

These notifications get filled with information about who's calling and on behalf of which company they call.

This data gets pulled automatically through a secure connection with the API of the configured Customer Relationship Management System, or CRM for short.

Want to see the wonders of VoiPPush with your own eyes? Don't hesitate to get in touch for a quick demo!

It's me calling

How does it work behind the scenes?

Most companies use Voice over IP (VoIP) solutions to manage their phonelines. Some providers (for example VoIPGRID) created some pretty nifty technologies to come along with just a simple callable phonenumber.

Almost every aspect of handling a phone call can be managed through their intuitive dashboard. Incoming calls should ring x-amount of telephone sets for x-amount of time, before playing a little .wav-file to tell the caller the line is busy (and much more).

VoiPPush uses one of VoIPGRID's features to receive webhook requests every time a call changes its status, for example, when it gets created, it gets picked up, phones start ringing, or when the call gets transfered.

Using these POST requests, VoiPPush automatically discovers all internal call channels. These are used by end-users for internal call routing.

Internal call channels- what?

To have a clearer vision of what's going on behind the scenes, I'm going to give a little example of what a simple configuration could look like.

Within my VoIPGRID account I create an end-user account. VoIPGRID lets you assign a three-digit number to these. We'll give my end-user account the number 601.

To be available on my mobile phone, I'll download an app. To login to this app, I need a VoIP account. I can create this in VoIPGRID's dashboard and link it to my end-user account. We'll give the created VoIP account the number 201.

Now, I'd like to have my physical phone to ring as well. Otherwise it's just another useless piece of technology on my desk. For the physical phone we'll create another VoIP account and number it 202.

From VoIPGRID's dashboard or from the mobile app I can now set my availability. I can either set this to my mobile phone (201) or the phone on my desk (202).

In the routing section of my phone number I'll now say that incoming calls should be routed to me, the end-user. This way an incoming call will be ring the user (601) for x-amount of seconds, before going to voicemail.

The VoIPGRID system will check on which VoIP account I've set my availability and route the incoming call accordingly.

Old School Phone

Where does VoiPPush come in?

VoiPPush receives a POST request when phones start ringing. These requests contain end-user channels and VoIP account channels.

If I set my availability to the phone on my desk, an incoming call will trigger the channels 601 and 202. VoiPPush will cross reference these channels with its registered users and active channel subscriptions to send the subscribed users realtime Push Notifications.


Auto discovery and integrating a CRM

VoiPPush will auto-discover the channels we talked about before. Since these channels can also include external phone numbers, VoiPPush will determine whether the routing channels are external or internal.

External channels can be configured to perform search queries using your CRM's API. Internal channels are automatically routed to an internal contact list.

External CRM intergrations are able to check multiple endpoints and will keep searching until it finds exactly one match. If we find out exactly who's calling, we'll gather their details and use those to populate the push notifications.

If no match is found, we'll send a notification saying that we couldn't find a match. We'll optionally also prompt you to enter this caller into your CRM.

The internal contact list allows you to make internal call notifications just a bit more personal. If I'd call my colleague at channel 203, he would normally see "Incoming call from 202". Using the internal CRM, we can change this to: "Incoming call from Wouter @ his desk".

Pretty cool!

There's more to come

Ultimately, this is just the start for VoiPPush.

Some of the short-term additions we would like to make are:

  • Adding support for more CRMs;
  • Adding more languages;
  • Adding outbound call notifications;
  • Adding more permissions and roles;
  • Adding your suggestions!

Let us know what you would like to see and we will probably add it to VoiPPush!

Want to see the wonders of VoiPPush with your own eyes? Don't hesitate to get in touch. We might get you in as a beta user!

Liked what your read? Spread the word: through Twitter of copy the link to other media.