Are Journey Builder Update Limits Similar to Data Loader?

Are Journey Builder Update Limits Similar to Data Loader?

On June 27, 2025, Posted by , In Salesforce Marketing Cloud,Salesforce Technical Questions, With Comments Off on Are Journey Builder Update Limits Similar to Data Loader?
Are Journey Builder Update Limits Similar to Data Loader?

Question:

I have the Marketing Cloud Connector set up and working fine, but I encountered an issue when trying to use Journey Builder to update records in Salesforce CRM. I need to update 1 million subscriber records that have become “hard bounces” by setting the PersonHasOptedOutOfEmail field to true in CRM, ensuring they do not get sent back to Marketing Cloud.

My Data Extension only contains the ID and PersonHasOptedOutOfEmail field, with all values set to true. Since using Data Loader via the Bulk API is time-consuming and would take hours to complete, I am wondering whether Journey Builder has batch limits for updates. The documentation does not seem to cover this aspect.

Does Journey Builder impose update limits similar to Data Loader? If so, what is the recommended approach for bulk updating records efficiently?

Answer:

Journey Builder does not use the Bulk API, meaning its processing speed is significantly slower compared to Data Loader or direct Bulk API jobs. Based on testing, Journey Builder can process updates at an estimated speed of 200–400 records per minute, which makes it unsuitable for large-scale updates like the one you described. There are no built-in options to increase this speed within Journey Builder.

Boost your career with expert Salesforce training in Noida—join our free demo and start your journey to certification today!

A more efficient alternative is to use Salesforce Bulk API with custom scripts in Automation Studio. This approach enables you to process updates at a much higher rate. In one test, using Bulk API in Automation Studio resulted in 100,000 Campaign Member inserts in 18 minutes.

To achieve this, you can create a looping automation sequence using four automations in Automation Studio:

See Also : Journey Builder in Salesforce Marketing Cloud

Automation 1:

Opens a Bulk API job and checks how many records need to be updated.

If records are available, it calls Automation 2.
If no records remain, it calls Automation 4 (to close the job).

Automation 2:

Sends a batch of up to 10,000 records via Bulk API and marks them as “sent.”

If more records remain, it calls Automation 3.
Otherwise, it calls Automation 4.

Automation 3:

A duplicate of Automation 2 that loops back to Automation 2 until all records are processed.

Automation 4:

Closes the Bulk API job.

See Also : What Is Salesforce Data Loader?

Here’s an example of how to open a Bulk API job using Server-Side JavaScript (SSJS):

var create_service = "services/async/43.0/job";
var create_url = base_url.concat(create_service);
var contentType = 'application/xml; charset=UTF-8;';
var headerNames = ["X-SFDC-Session"];
var headerValues = [sessionId];

var payload = '<?xml version="1.0" encoding="UTF-8"?>';
payload += '<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">';
payload += '    <operation>update</operation>';
payload += '    <object>CampaignMember</object>';
payload += '    <contentType>JSON</contentType>';
payload += '</jobInfo>';

var result = HTTP.Post(create_url, contentType, payload, headerNames, headerValues);
var jobId = dataFromAttr(result["Response"][0], "id");

Once the job is open, Automation 2 and 3 handle sending batches of up to 10,000 records per request. The payload should look like this:

[
  {
    "Id": "701xxxxxxxxxxxxxxxx",
    "Status": "Sent"
  },
  {
    "Id": "701xxxxxxxxxxxxxxxy",
    "Status": "Sent"
  }
]

Each batch submission is done via:

var sendbatch_service = "services/async/43.0/job/";
var sendbatch_url = base_url.concat(sendbatch_service, jobId, '/batch');

var contentType = 'application/json';
var headerNames = ["X-SFDC-Session"];
var headerValues = [sessionId];

var result = HTTP.Post(sendbatch_url, contentType, payload, headerNames, headerValues);

Finally, Automation 4 closes the Bulk API job once all records are updated:

var close_service = "services/async/43.0/job/";
var close_url = base_url.concat(close_service, jobId);

var payload = '<?xml version="1.0" encoding="UTF-8"?>';
payload += '<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">';
payload += '    <state>Closed</state>';
payload += '</jobInfo>';

var result = HTTP.Post(close_url, contentType, payload, headerNames, headerValues);

Journey Builder’s update limits differ from Data Loader’s, as Journey Builder focuses on automating customer engagement while adhering to specific platform limits for real-time processing. While Data Loader allows bulk data operations with higher thresholds, Journey Builder prioritizes processing speed and engagement flow, which results in stricter constraints for updates. Understanding these differences is crucial for effectively managing both tools within Salesforce’s ecosystem.

Advance Your Career with Salesforce Training in Noida

Step into the world of Salesforce with our expert-led  Salesforce training in Noida, designed to cater to both beginners and experienced professionals. Master the fundamentals of Salesforce CRM, gain hands-on experience with industry-relevant projects, and prepare for certifications like Salesforce Admin and Developer. Our comprehensive curriculum is tailored to make you job-ready, equipping you with the skills and confidence to thrive in today’s competitive job market.

We emphasize practical, real-world learning to ensure you excel in your Salesforce career. With personalized mentorship, Salesforce course materials, and dedicated support for certifications and interview preparation, you’ll be ready to tackle professional challenges with ease.

join us for a free demo session today and take the first step toward transforming your career with Salesforce expertise!!!

Comments are closed.