Why don’t records enter Journey Builder from Salesforce Cloud?

Published by: Santiago Tabuenca on May 9, 2024
 Santiago Tabuenca

Journey Builder has a Salesforce Data object that monitors the creation/update of records in Sales Cloud from different objects. This object always requires a relationship with contact and/or lead in order to inject its records into a journey.

Despite an update being made to an existing record in Sales Cloud or a new record being generated, the injection may not work for various reasons.


Por qué entran registros en Journey Builder desde Salesforce


Possible circumstances that generate this problem


Below, we list them:


What version of Marketing Cloud Connect is being used?

To connect both platforms, an official Salesforce package from the appExchange is used. The most effective way to avoid known problems is to stay up to date with the most recent version of the Installed Package. To check your version, click on ‘Setup’ in Sales Cloud and then go to Installed Packages. The package is identified as ‘Marketing Cloud’. Check that you are using the latest version and, if not, update it.


Por qué entran registros en Journey Builder desde Salesforce

Does my Marketing Cloud API user have access to the Object/Records that are being updated/created?


Since the Marketing Cloud API user is used to maintain the integration between Sales Cloud and Marketing Cloud, this user must have access to any record that is intended to be injected into Journey Builder through the integration.

This is achieved by integrating the Marketing Cloud API user with a Salesforce User (usually, the dedicated Salesforce System User who has the appropriate permissions for each object).

The easiest way to have widespread access and avoid this type of incident is to use a system administrator profile for this User.

Make sure that the specific OAuth endpoints of the ‘tenant’ are enabled in your Salesforce organization

For more details, see Enable specific O Auth endpoints for Marketing Cloud Connect.

Can records be injected under the simplest Entry Criteria, without applying Related Object Criteria?

In some cases, the Entry Criteria may be too restrictive or include two filters that contradict each other. For example, if the Primary Object is set as Lead and the Entry Criteria is set to inject once ‘Lead:Status’ is updated to [‘Pending’ AND ‘Closed’], these two criteria would not allow the injection of records. Since the ‘Status’ of a Lead can only be one or the other, if you replace the AND with an OR operator, you will increase the chances of a successful injection.

If the Criteria required for your live deployment are robust and include many filters, but the injection has not been carried out after updating or creating a record, try to remove all Criteria except one. Once the injection is successful through the single filter, gradually work towards a more complex filter. This practice will explicitly identify problematic filters.

If the volume of records to be generated is not very large, a simple option is to put very few filtering criteria, and then use a SQL QUERY to filter and re-inject into Journey Builder the records for management, i.e., make a journey so that simply enter the data (you can put as action a simple random Split so that it accepts you to save the journey) and then inject into another journey through a SQL query that filters the data.


Is the ‘Update/Create’ action completed through a form submission or a separate process?

Verify that the ‘Update/Create’ record contains the required data to satisfy the Entry Criteria after the process has been completed.

In some cases, the separate process will update/create a record with only a part of the requires data, and an additional process is needed to complete the record.


Example of setting up a Salesforce Data Entry and its possible issues:


  • Object we are going to use: Opportunity

  • Who: LeadID (Lead)

  • Action: Updated

  • Criteria: 'Opportunity:Lead:Name' equals 'Thomas' AND ('Opportunity:Status' equals 'Won' or 'Opportunity:Status' equals 'Pending')

The ‘Update’ action type only injects records that meet the Entry Criteria once evaluated.


We create an Opportunity linked to a Lead for Thomas Cook, with Status = ‘Pending’. This does not trigger the injection because the ‘Action’ is set to Update and created records are not evaluated.


Later, we update the Opportunity for Thomas Cook, setting the Status to ‘Won’. This also does not trigger the injection because the record already met the criteria before the update, and only records that meet the criteria in a new way are injected by the ‘Update’ action type.


Continuing with the same Entry Event configuration and our Lead, Thomas Cook.


In this scenario, we want Thomas to be injected into our Journey twice. Once when his Opportunity Status is ‘Pending’ and then, a second time, when it is updated to ‘Won’.


We create an Opportunity for Thomas and the status is ‘On-hold’. This does not trigger the injection. A few days pass and now the Opportunity record is updated to ‘Pending’. Thomas is now injected into the Journey. Our team continues working on winning the Opportunity and they eventually succeed.


The Opportunity Status now changes to ‘Won’. The injection does not take place. Our crucial requirement for ‘Update’ to trigger the injection is that the record did not have the entry criteria and then it does, and this did not happen. Our Opportunity had a 'Status of ‘Pending’ and then it was updated to ‘Won’. Both are valid entry criteria, so the system does not register this as an update.


Within the Entry Criteria, each filter component can be considered grouped into a single filter. Sending a record against this filter returns a 1 (true) or 0 (false). If the record meets, a 1 is sent. If the record is updated so that it continues to meet, a 1 is sent. For the update to satisfy the Entry Criteria Action of ‘Update’, a 0 must be passed between each 1.


If you need these updates to result in multiple injections, you could create two Journeys, one for the Opportunity Status ‘Won’ and a second for the Opportunity Status ‘Pending’.


Solve the problems of record entry in Journey Builder from Salesforce Cloud


We hope all these clues help you identify any issues with including records in your Journey and get the most out of your Marketing Cloud.


Nueva llamada a la acción

If you liked this article, share it!

Topic: SF Marketing Cloud