Google Analytics 4 (GA4) is the new standard for measurement in Google Analytics, to read more on Google Analytics itself please visit their knowledge base:

This integration uses the Google Measurement Protocol endpoints, more information on these can be found here:

Integration Configuration

To start we need to create a data stream and API key. To start, login to your Google Analytics 4 property and click on Admin in the bottom left:

Next, click on 'Data Streams'.

If you don't have a data stream setup, please create one, more information on doing this is below:

Click on the relevant data stream you will be associating to the events:

You will then need to make a note of the Measurement ID (NOT stream ID). Once noted, click on 'Measurement Protocol API Secrets' to create and API key:

Click on 'Create' and enter a nickname for your API key, in this case we have used 'PhoneCalls'. Once created there will be a secret value, make a note as this is your API key.

Configuration from this step forward is now done in the platform, more specifically, under the 'integration' section of the platform:


1st step (Adding the template)

Once the integration is added, it will appear in the "Templates" section

Once the template is added, it should be visible on "Assets", click on the recipe to start the configuration.

Click "Edit Recipe" to make the configurations

Templates have most of the work already done, but the user does need to add some inputs (subject to change)

Having a look at the steps, we can see the following:

Breakdown of the Recipe steps:

1.- Trigger

It initiates the recipe actions, follows in-sequence delivery, maintains processed job records, prevents duplicate processing, and ensures job completion in order.

As a default, the trigger of the downloaded recipe is already configured, but if you want to tweak the options....

Time Unit: The interval used to trigger the recipe (minutes, hours, days, weeks, months, custom).

Timezone: Area where the business is based.

Trigger every: Insert the value related to the time unit.


Every recipe contains a set of actions, which dictates the nature and the steps the integration is going to follow.

2.- Call Query

This step shows an alert notification because the connection to the FDX account has not been established.

To do so, on the window to the right, select "Connection" and add the required information to connect to your account.

Where to get Account SID/Token

Once the connection is established, on the same window select "Setup"

If you click "Setup", you can configure what information will be pulled out from the queries.

Resource Level: Indicates the extent to which the calls are going to be queried (Account, Property, Single Call).

Optional fields:







Attribute_ Medium:

Attribute_ Campaign:

Attribute_ Content:





3.- If (conditional)

It takes a path taking into consideration whether or not the conditions were met. (the CallSid is not present/new - NO / the CallSid is present/existing - YES.

If the CallSid already exists, then it won't action any further.

If the CallSid is a new entry, it proceeds to action the query.

4.- Stop

Stops the job, and no query is actioned for that existing CallSid.

5.-Repeat for each

So the integration doesn't stop after sending the first query, an action has been added to repeat the steps.

6.- Sending the query to your Google Analytics account

As you can notice, there is an alert notification in the sixth step, this is because you need to log into your GA4 account and establish the connection and the integration can communicate and send the information.


(OPTIONAL) Custom Definitions

Custom definitions can be defined with the Google Analytics environment, note that you can only create custom definitions if events (calls) with the relevant values and fields have been synced prior.

For instance, if you would like to create a custom dimension for IVR entries, unless you have synced a call with IVR data can you see this as a configurable option.

To setup custom definitions, open the sidebar, click on Admin and then click on 'Custom Definitions':

Click on 'Create custom dimensions':

You can name the dimension anything and describe the event as you wish however the scope should remain as an 'Event'. Once completed you then need to select an existing event parameter, if you have synced calls for more than 24 hours it should show all the event parameters available to you:

Once you have added a custom dimension, any new events will automatically use this event parameter and you can then use it to report on:

(Optional) Converting events into conversions

Conversions are the universal analytics equivalent to goals. We can choose to mark conversions for all calls or a subset of calls by defining an audience. To setup a conversion, open up the admin panel and click on 'conversions'.

Next, click on 'New Conversion Event':

enter the name to be the same as the event name you specified in the integration setup, this will then mark all events as a conversion.

In order to track a specific audience you can create a new audience by going into the admin panel and clicking on 'Audiences':

Click on 'New Audience':

Under 'Start from scratch' click on 'Create a custom audience':

From here we are given a screen whereby we can customise the conditions that match our audience. First select the event and then you add specific parameters of that event:

Any custom definitions you have created appear under 'custom' and standard event parameters are shown under 'other':

Using the 'To' field as an example, we can choose to create an audience which has called a specific phone number:

You can also add more numbers using OR or AND statements, or by usign the condition/sequencing options:

We now need to add members of this audience who match the criteria into a new event for tracking, to do this, create a new audience trigger:

This new event can be named whatever you wish:

After saving the audience trigger and the audience you should be able to view this:

With the new event now created you can follow the previous steps if you wish to make this new event into a conversion, just replace the name of the event with the newly created event name.