2

We use Salesforce Data Event as journey entry source and we now have a requirement to do a bulk upload of contacts to Sales Cloud and inject all of them into a running welcome journey.

Could someone please explain the following in plain English to clarify how many contacts we can upload in one go? We have Marketing Cloud managed package ver. 5.496.2

APEX Governor Limits Salesforce Data Events are subject to all APEX limits, or governors, and process limits within the platform. Introducing Journey Builder Events or Process Builder and Flows into the save order of an object can expose or exceed limits within your org.

  • 50 Future invocations - Before the 5.496 Marketing Cloud Connect package, Journey Builder made direct callouts using the future annotation. This action causes an error on any transaction exceeding 50 records, meeting the Journey Builder Event criteria. to avoid this error, use Marketing Cloud Connect package 5.496 or above.
  • Transactions with more than 2,000 records - A save transaction is limited to less than 2,000 flow invocations. This limit allows up to 2,000 records to enter a flow within a transaction. If multiple flows are triggered or your org has custom logic generating transactions with more than 2,000 records, the flow invocation fails. To interact with a smaller number of objects, modify transactions.

Full article here: The Salesforce Data Event

To summarize, here are my questions are:

  1. How many contacts can we upload to Sales Cloud in one go, to make sure they all are injected into the welcome journey?
  2. What is the best practice, for example, if we were to split the list into smaller chunks - how long between each upload?
1

Unfortunately there is no general answer as is stated in the quote you posted:

If multiple flows are triggered or your org has custom logic generating transactions with more than 2,000 records, the flow invocation fails.

So in theory you could upload 2,000 records at once. This applies only if your journey trigger is the only flow/logic that is invoked.

If you have further journeys that are triggered on the same object with similar criteria, some flows in Sales Cloud, apex triggers, or something similar, it depends on the code you execute there. Therefore without knowing your code it isn't possible to give a reasonable number.

To overcome the issue, you could deactivate the journey during your upload or add a flag, that prevents the journey from being triggered (which you set on batch uploads only). Furthermore you then need to create a duplicate of this journey, that is triggered by a data extension filled by an automation (via a SQL query of your synchronized data extensions). Using this workaround, the governor limits don't impact your journey.

Most instances I worked with could easily handle batches of 500 contacts at once. However, as I said before, this will vary between customer setups.

1

You are on a very old version of the connector that should be upgraded at the soonest opportunity.

Additionally, if you have a bulk load, the most reliable way of injection is to create a DE in Marketing Cloud and use a DE entry event.

Doing large batches is not a reliable method for injection. Once your CRM instance has custom apex processing or other updates that run concurrently, you start to run into processing issues with the CRM evaluation and end up with non-injected contacts and leads.

SF Entry Events typically work best with small batches or individual injections from web submissions or equivalent. Until bulk injections work well, you should view these two KIs:

https://success.salesforce.com/issues_view?id=a1p3A000000ATKQQA4&title=platform-events-apex-job-runs-before-update-transaction-is-complete

https://success.salesforce.com/issues_view?id=a1p3A0000018AuPQAU&title=journey-builder-salesforce-integration-events-will-not-always-fire-if-another-process-builder-finishes-prior-in-the-same-transaction

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.