Best way for Telephony integration

Hi there!

I’m project analyst at Dazsoft, a company that develops solutions for IP telephony in Brazil.

A customer wants to integrate our PBX with Pipedrive. The scope is to integrate incoming and outbound calls.
I looked in the API reference to found the correct endpoints to reach what my customer needs. That is the flow:

Outbound Calls (click-to-call)

  1. User clicks on the customer’s phone in Pipedrive to make a call -> doubt: I know that is used the “callto” syntax but it’s possible to customize the URL with a POST request with some data in the headers (parameters for authentication)?
  2. If yes, PBX will receive the request and will search in the Pipedrive the phone number owner (person), with the Search Results parameter (https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults_field)
    If it’s not possible, I’ll use a softphone that accepts “callto” or “tel” protocol. Go to step 5.
  3. With the Person ID, the PBX will search the owner of this person on Pipedrive (user ID), using the Persons parameter (https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id).
  4. The PBX will match the user ID with the info registered in extension config (Pipedrive user ID would be in the extension configuration) and will forward the call to correct extension.
  5. After the call ends, PBX will search for the owner of the number called with the Search Results parameter (https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults_field)
  6. With the person ID, the PBX will create an activity in this Pipedrive person’s page with the call notes (duration, destination, and the URL of call recording), using the Activities parameter (https://developers.pipedrive.com/docs/api/v1/#!/Activities/post_activities).

Incoming Calls

  1. The PBX will receive a call and will search the number owner with the Search Results parameter (https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults_field).
  2. With the person ID, PBX will search the owner of this person on Pipedrive (user ID), using the Persons parameter (https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id).
  3. The PBX will match the user ID with the info registered in extension config (Pipedrive user ID would be in the extension configuration) and will forward the call to correct extension.
  4. After the call ends, PBX will search for the owner of the number called with the Search Results parameter (https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults_field)
  5. With the person ID, the PBX will create an activity in this Pipedrive person’s page with the call notes (duration, destination, and the URL of call recording), using the Activities parameter (https://developers.pipedrive.com/docs/api/v1/#!/Activities/post_activities).

This is the best way to do this? Could someone take a look and give feedback?

Thanks in advance,
Gabriel Simões

You could probably do it using the “callto:” but the scripting would need to be on the PBX end.

We have done this by trapping the “callto:” and sending a JSON payload to the telephony server which contains everything it needs. Simultaneously, another is sent to Pipedrive to update the notes or activities.

This is what it looks like in Pipedrive.

Inbound calls are essentially, the reverse. PBX webhook triggers and provides a payload to our server which then does some looking up and and posts info to Pipedrive.

image

2 Likes