Fix Pipedrive Call Journaling V18 with 3CX Call Control API

Pipedrive Integration V18

Hi all

we have used the pipedrive custom integration by mark philips for long time with v16 at it was working perfectly.

Since the update to V18 the call journaling is NOT working anymore!

can anybody assist?
I saw that many have this problem but no solution is around until now! Would be great to have it also working with the new V18!

thanks in advance and BR

The short answer is:

How can the Pipedrive REST API and 3CX Call control API be used for a stable call logging integration?

The Pipedrive custom integration’s call journaling issue in V18 is a known problem, likely due to changes in how 3CX handles variables for call reporting, specifically deprecating the old contact variables and requiring the use of EntityId and EntityType in the XML file for the ReportCall scenario.

You should update the custom XML integration file to correctly pass these two new variables instead of the old ones.

However, a more robust, long-term solution is to build a custom server-side process using the Pipedrive REST API and webhooks in conjunction with the 3CX Call Control API or webhooks, using a simple middleware like a server-side Google Tag Manager container hosted on Stape or a simple function on Google Cloud Platform to manage the data flow.

The long answer is:

The integration built by Mark Phillips worked perfectly in V16 but stopped working in V18 primarily because 3CX changed the way it processes call-related data passed to the CRM integration template, essentially removing older contact-related variables and introducing new generic ones.

Specifically, the scenarios for contact lookup (empty ID) and contact creation (Id="CreateContactRecord") now need to return two new outputs: EntityId and EntityType, which will contain the Pipedrive Person ID and the entity type (e.g., “Person” or “Contacts”).

Crucially, the Call Journaling scenario (Id="ReportCall") can no longer use old variables like [Contact::XXXXXX], and must instead use the new variables, [EntityId] and [EntityType], which hold the values returned by the lookup/creation steps.

You’ll need to edit the custom XML file to implement these changes.

While fixing the XML is the quickest patch, it leaves you dependent on a community-maintained file that can break with future 3CX or Pipedrive updates.

A better, more future-proof, and cheaper custom solution for call journaling involves using Pipedriveโ€™s and 3CX’s native APIs and webhooks with a lightweight, cloud-based intermediary like a Stape server-side GTM container or a simple function hosted on Google Cloud Platform (GCP).

Hereโ€™s why this approach is excellent and cheap:

First, Pipedrive REST API and webhooks offer a direct, reliable, and well-documented method to interact with your CRM.

You can configure a Pipedrive webhook to trigger specific actions (like logging a call activity) or use the API to directly create the call log activity via a POST request to the /activities endpoint, ensuring data integrity and correct field mapping.

This bypasses any limitations of the XML template method.

Second, the 3CX Call Control API or its webhooks allow you to get real-time call events – like a call starting, ringing, or ending – which can be triggered for Standard Events like NewContact or ReportCall.

By using the API/webhooks, you get precise, raw call data from 3CX.

With an Enterprise license, the 3CX Call Control API is a powerful tool for this purpose.

Third, using a tool like a server-side GTM container hosted on Stape or a simple GCP function (like Cloud Functions) acts as the central, inexpensive data processing layer.

This layer receives the call event data from 3CX (which is the webhook payload or API output) and then sends a structured request to the Pipedrive REST API.

Stape is particularly excellent because it offers a user-friendly interface to manage the data processing logic without deep coding knowledge, making it a very cost-effective alternative to hiring a full-time developer for a custom middleware server.

GCP Cloud Functions are also very cheap, often fitting within the free tier for low-volume users.

About The Author