The Automation Center is a robust and flexible tool, and you can build programs in many different ways. However, the way you build a program path can affect its performance.
Here are some issues that you should always take into consideration before you start building programs, to ensure that their performance is optimal.
Please note that Emarsys is continuously monitoring the Automation Center and in certain circumstances we may put programs into fail-safe mode if we find that they pose a risk to the overall performance of your account. In such circumstances we will inform you and will help you fix the issues that caused the program to be stopped.
For more information on how to build Automation Center programs, see General guidelines.
Batches are better
A good general rule is that batch processes are more efficient than single ones. There are many occasions where transactional entry points can just as easily be replaced by recurring batch ones; the trick is to consider how important the timing of a program action really is.
For example, if you want to create an Abandoned Cart program, instead of using a transactional program based on an event triggered by the cart abandonment, you can set up a recurring filter that checks daily for carts abandoned in the preceding 24 hours.
As a general rule:
- If your entry node is Target segment or Recurring filter:
AC will batch your users, and the batch is processed as a whole, resulting in significant performance improvements.
- If your entry node is New contact or Data change:
Even though these are transactional entry nodes, they can receive large batches of contacts at a time, so you should bear in mind your other registration methods or contact data update processes. For more information, see Pay attention to imports.
- For all other entry nodes:
Processing is performed on each contact individually, resulting in a heavier load on the system.
The Automation Center can process batches of up to 250,000 contacts at a time without problems. Above this figure, you might run into performance issues and should consider splitting up your target segment or import into smaller chunks and only processing each one when the previous one has finished.
If you want to send different content to contacts depending on filter criteria, use the personalization options available in the email rather than creating separate emails on separate program paths. This will also make the email reporting more coherent.
If you use block targeting to personalize content, please remember that this relies on filters, which greatly increases the overall performance requirements of an email. If you use emails with block targeting, make sure to schedule them for different times in all your programs.
There are many cases where a Recurring filter entry node will have the same result as an External event node, but will perform far better. Ask yourself how critical it is that the email is triggered instantly, before you opt for a transactional email.
For example, you can trigger a shipping confirmation email using the External event node, but you can just as easily set a daily filter to return all contacts whose items have been shipped the previous day, and send a batch email.
If you set the Wait node to wait for 24 hours, each contact going through it will be processed individually. This means that for a busy program, this node could be running almost continuously, causing unnecessary load.
Where possible, set it to wait for a specific time, e.g. "wait until tomorrow 10 am", so the node can process all the contacts together.
If you have multiple Wait nodes in a program, try to set each of them to a different time of day to spread the load. If you want to ensure that all the messages following these nodes are sent at the same time, use additional Wait nodes to compensate. In the example below, both of the reminder emails will be sent at 09:00.