Common Pitfalls in Salesforce Marketing Cloud – Part 1

Common Pitfalls in Salesforce Marketing Cloud – Part 1

When working with Salesforce Marketing Cloud there are a few common pitfalls that most users fall into at some point in time – at least if they are not aware of them upfront. Some of the problems are easier to debug, but others are quite a challenge, even for experienced users. Therefore this article highlights some of the most common ones, but as Marketing Cloud is a very flexible tool this is definitely not an exhaustive list, but stay tuned for part 2 of this article with even more pitfalls to watch out for.

Retrieving a large number of data extension rows

Working with excess of data from data extensions using AMPscript, there is a risk of running into problems that you don’t encounter during testing with a smaller test dataset. This is the case if you want to retrieve more than 2000 rows from a data extension using LookupRows for example, as there is a hard limit for performance reasons.

To know if you could run into problems, there is an even better function that returns the number of rows a data extension contains (which is called DataExtensionRowCount), but it still isn’t possible to retrieve those rows using LookupRows or its several derivatives for ordered and/or case sensitive retrieval. Depending on the context you are retrieving and using the data, it might be a good idea to limit the returned rows nonetheless, which is possible using LookupOrderedRows for example. This function gives you the possibility to set the maximum numbers to return.

However, if you really need to retrieve more rows, you can utilize Server-Side JavaScript (SSJS). But watch out – the core retrieve function will also only return a maximum of 2500 rows. In order to actually retrieve all rows, you need to use the so-called WSProxy functions. With these, you can utilize Marketing Cloud’s SOAP API and fetch everything you need, as the response includes the parameter “HasMoreRows” which indicates that there is more data to fetch, which can be done using the same retrieve within a loop. To find out more about how this is done, check out the official developer documentation “Pagination of Retrieves – Advanced Retrieves via WSProxy”.

Unintentionally paused Automations

As soon as the configuration details of any activity within an Automation are viewed or edited, the Automation is automatically paused by the system. Even though a warning is displayed to the user when doing so, it often happens that afterward, users forget to restart the Automation.

Therefore, it is a good idea to implement a safety net for your most important Automations. This safety net should notify you on a regular basis in case automations are paused. Some time ago I provided some ideas on solution approaches and a full how-to for one of them in the article Automation Studio – Status Monitoring with Notification.

In the most recent Marketing Cloud release, new data views for Automations have been added. Using the “Automation Instance” and “Automation Activity Instance” system data views you can also implement a notification system that notifies you if an automation run didn’t happen for a defined period – this way is more of an error notification rather than a notification for paused automations but it is quicker to implement and can even be done using a scheduled selection in DESelect Segment, as you can easily access data views there.

Working with Sales Cloud objects that have validation rules or triggers

If you are dealing with a multi-cloud setup and want to connect Sales/Service Cloud data with Marketing Cloud and also interact with the data and users (creating tasks and cases, updating contact data, etc.), there are some additional challenges.

Let’s say you want to create a task for the account owner to follow up with the subscriber from within a journey. Marketing Cloud does know about the standard required fields and will point those out to you. But if there are some validations or specific rules and triggers that’s where we have a blind spot as a Marketing Cloud user. In cases where your data doesn’t match the validations or triggers reset/disallow your updates, Marketing Cloud won’t say a thing, but it just won’t work. So it is always a good idea to try creating the object manually in Sales/Services Cloud first to also be able to see the validation results.


As with any complex and flexible system, there are also some challenges and pitfalls in Salesforce Marketing Cloud – but don’t worry, if you keep your eyes open, check the official documentation before using a feature, use safety nets where it makes sense, and keep in mind to always test twice before you put something into production – you are good to go and nothing huge will go wrong. And to make sure you are even safer, keep your eyes open for part 2 of this article with more pitfalls and how to avoid them.


Markus Dang

Markus Dang

Markus is a guest author at DESelect. He's a Marketing Cloud Unit Lead & Solution Architect. He is also a Salesforce Marketing Cloud Champion.

Stay Connected

Stay Connected

Reach the most targeted<br/> audiences in half the time

Reach the most targeted
audiences in half the time

Deselect icon
Subscribe to the Newsletter
Receive Salesforce Marketing Cloud tips,
tricks, and DESelect updates

By clicking the “Subscribe now” button, you agree to the DESelect Terms of Use and Privacy Policy.