Can Journey Builder Handle Mass Updates?

Can Journey Builder Handle Mass Updates?

On July 16, 2025, Posted by , In Apex,Salesforce, By ,,, , With Comments Off on Can Journey Builder Handle Mass Updates?
Can Journey Builder Handle Mass Updates?

Question

I have the Marketing Cloud Connector configured and working correctly, and I am considering using Journey Builder to update CRM records. Specifically, I need to update 1 million records for subscribers who have a “hard bounce” status by setting the PersonHasOptedOutOfEmail field to true in Salesforce CRM to ensure these records are excluded from further Marketing Cloud communications.

My Data Extension contains only the ID and PersonHasOptedOutOfEmail fields, with all records set to true. Since using Data Loader (via Bulk API) would take several hours to complete this task, I’m wondering if Journey Builder can handle this volume of updates efficiently or if it has any batch limits similar to Data Loader.

Answer

Journey Builder is not optimized for mass updates and does not leverage Salesforce’s Bulk API, which significantly limits its ability to process large volumes of records efficiently. Unlike Bulk API, which is designed to handle millions of records quickly, Journey Builder processes updates at a much slower rate.

In my previous experience, I tested the throughput of Journey Builder for updating Campaign Members in Salesforce, and the speed was around 200–400 records per minute. With this throughput, updating 1 million records would take several hours or even days, making it an inefficient approach for mass updates.

Using Bulk API with Automation Studio

To achieve faster updates, you can use Bulk API with custom scripts in Automation Studio. The Bulk API is explicitly designed for large-scale data operations and can process 1 million updates in a fraction of the time it would take with Journey Builder.

Here’s a high-level approach that has worked effectively for bulk updates:

Automation 1: Opens a Bulk API job and checks the number of records left to send to Salesforce.
If records remain, it triggers Automation 2.
If no records remain, it triggers Automation 4 to close the Bulk API job.

Automation 2: Sends a batch of up to 10,000 records using Bulk API and marks them as “sent.”
If there are still records not marked as “sent,” it triggers Automation 3.
If all records are sent, it triggers Automation 4.

Automation 3: A duplicate of Automation 2 that continues processing until all records are marked as “sent.”
It loops back to Automation 2 if necessary.
If all records are sent, it triggers Automation 4.

Automation 4: Closes the Bulk API job.

This approach creates a continuous loop of sending batches of 10,000 records until no records remain. It’s a reliable and stable method for high-volume updates. Using this method, I was able to insert 100,000 Campaign Members in just 18 minutes.

Sample SSJS Script to Open a Bulk API Job

Here’s an example of how you might open a Bulk API job using SSJS in Automation Studio:

var authToken = 'YOUR_AUTH_TOKEN';
var apiUrl = 'https://your-instance.salesforce.com/services/data/v53.0/composite/batch';

var payload = {
    "batchRequests": [
        {
            "method": "PATCH",
            "url": "/services/data/v53.0/sobjects/Contact/Id",
            "richInput": {
                "Id": "003XXXXXXXXXXXX",
                "PersonHasOptedOutOfEmail": true
            }
        }
    ]
};

var jobResponse = HTTP.Post(apiUrl, 'application/json', Stringify(payload), {
    "Authorization": "Bearer " + authToken
});

This code is used to perform a batch update in Salesforce using the Composite Batch API. It starts by defining an authentication token (authToken), which is required to authorize API requests to Salesforce. This token is obtained after successful authentication using OAuth 2.0. The endpoint URL (apiUrl) is set to https://your-instance.salesforce.com/services/data/v53.0/composite/batch, where v53.0 represents the API version, and the composite/batch endpoint allows multiple API requests to be processed in a single call.

The payload is a JSON object that contains a batchRequests array. Each request in this array specifies the HTTP method (PATCH), the object URL (/sobjects/Contact/Id), and the data to update (richInput). In this example, the request updates the PersonHasOptedOutOfEmail field for a specific Contact record identified by its Id. The value is set to true to mark the contact as opted out of email communications. If multiple records need to be updated, additional requests can be included in the batchRequests array.

The HTTP.Post() method sends the request to the defined endpoint with the payload converted to a JSON string. It includes the authorization token in the request headers to ensure that Salesforce recognizes the request as coming from an authenticated user. The response from Salesforce, stored in jobResponse, contains information such as the HTTP status code (200 for success) and the JSON body with detailed results of the batch operation.

This script allows for batch updates to Salesforce records using the Composite Batch API, enabling multiple updates in a single API call. However, for larger data sets or bulk updates, it’s often more efficient to use Salesforce’s Bulk API, as Journey Builder and other standard methods may be slower when dealing with high volumes of data.

If you’re looking to update 1 million records, I highly recommend using the Bulk API through Automation Studio instead of Journey Builder. Not only is it faster, but it is also purpose-built for large-scale updates, making it a far more efficient and scalable solution. Journey Builder, while useful for engagement and personalization, is not designed to handle bulk operations efficiently.

Kick Start Your Career with Real-Time Project-Based Salesforce Training

Our Salesforce course is designed to provide a thorough understanding of the Salesforce platform, equipping you with the essential skills to excel in the CRM industry. The curriculum includes critical modules such as Salesforce Admin, Developer, and AI, combining theoretical concepts with practical application. Through hands-on projects and real-world assignments, you’ll gain the expertise to solve complex business problems using Salesforce solutions. Our experienced instructors ensure that you acquire both technical proficiency and industry-relevant knowledge to thrive in the Salesforce ecosystem.

In addition to technical training, our Salesforce Training in San Francisco offers personalized mentorship, certification guidance, and interview preparation to enhance your career prospects. You’ll benefit from comprehensive study materials, hands-on project work, and dedicated support throughout your learning journey. Upon completion, you’ll be well-prepared for certification exams and possess the real-world skills employers seek. Begin your Salesforce journey today and explore exciting career opportunities. Enroll in a Free Demo now!


Comments are closed.