In this article we offer some practical tips and advice to help you make the most out of your automated programs. If you have not already done so, please read Before You Start Building Programs.
If you are having issues with your programs or are experiencing errors, please see Automation Center Troubleshooting.
Connecting programs
The Transfer participants to another program option is replaced with the Transfer to program node in the New Editor. For more information, see Transfer to program node.
When using the Transfer participants to another program option in the Finish node in conjunction with the Entry from another program node, you will need to bear the following in mind.
- Both the source and target programs need to be active for the contacts to pass from one to another. If either is frozen or paused, the contacts will exit the source program even if the Transfer participants to another program toggle is activated in the Finish node.
- The Automation Center will not let you join programs in a circle (A->B->C->A).
- If the source program collects external data (e.g. from an External Event entry node), this data will only be available in the source program and will not transfer to the target program.
- You can connect a Finish node only to a single target program with the Transfer participants to another program toggle, but you can connect multiple Finish nodes to the same target program by activating this toggle.
- You cannot change the source program in the entry node of the target program. You can only edit this connection by using the Transfer participants to another program option in the Finish node of the source program.
- A source program can have multiple Finish nodes where all are connected to different target programs by activating the Transfer participants to another program toggle.
- The Entry from another program node runs once a day and deduplicates contacts before it starts, therefore there is no risk that the same contact will enter twice on one day. However, there is no reason that contact cannot enter it the next day, depending on your Participation Settings.
How to avoid accidental duplication
When splitting paths, contacts are duplicated in programs. If you split a path into several parts and then join them together in a single node it will cause the same amount of contacts to travel on several paths. This can cause duplicated email sends, among other issues. When you split contacts to travel on different paths, they will run in separate instances from this point, and even if you lead them into one single node afterwards, the two instances still will run separated.
See the example below:

In this case, node B and node A emails will be delivered once, but node C will be delivered twice, because contacts were duplicated without filtering at the split. This potentially unintended arrangement is often referred to as “island”.
There are two ways to resolve islands. You can use a Filter switch when splitting paths, so that contacts are not duplicated:

In this case all emails will be received only once by the relevant contacts.
Or, as another solution, you can end one of the split paths with a Finish node, so duplicated contacts will not return to the program:

Send Time Optimization
Send Time Optimization works only with recurring and batch programs in the New Editor. For more information, see Small changes in the New Editor.
When STO is enabled for an email node, the incoming contacts are treated in the same way that STO treats ad hoc campaigns:
- A random control group of 10% is created and the launch times for the rest of the launch list are calculated.
- On the next even hour after calculation, the email is sent to the control group and the first STO launch group.
- The campaign is sent to the rest of the STO launch groups every two hours, over the next 24 hours.
The main difference in behavior is that all contacts are queued at the email node until the final launch has been sent, at which time they are all free to progress along the program once again.
The feature will only work for batch emails. If you enable it for transactional email it will simply be ignored.
We are monitoring the effect that large numbers of STO launches on the same environment have on email sending. Until we are absolutely certain that there is no risk of performance loss, we will be limiting the total number of launches that can use STO at any given time. If this happens, you will receive a message in the Send email node and in the Notification Center.
Use cases for the Update contact list node
This node was introduced by customer request and we thought we’d share some of the use cases with you.
Blocking contacts from entering two programs at once
Let’s suppose that you have two different incentive programs, but you don’t want to allow anyone to take part in both. In other words, you want to make sure that if someone has entered either of the two programs, they cannot enter the other, ever. Proceed as follows:
- Create both programs and add an Exclude Segment node after both entry nodes.
- Add an Update contact list node after each of the two Exclude Segment nodes, set the same contact list name for both, and choose the Add contacts to the contact list option.
- Create a segment and choose Based on contact list. For the Source list select the contact list named above.
- Select this segment in the Exclude Segment nodes.
Now, each contact who enters either program will automatically be added to the contact list, which will update the segment and exclude them from entering the other program.
Improving the performance of large-volume transactional programs
If a large-volume transactional program contains a Wait node which is set to a specific time (such as “in four days at 8:00”), it can lead to performance issues since all contacts will be processed individually. To improve the performance of these programs, you can add a Update contact list node before the Wait node and move the rest of the program into a new program with a Recurring filter entry point which runs to the same schedule (e.g. every four days at 08:00).
Proceed as follows:
- Create the transactional program which ends in a Update contact list node to collect the contacts who would otherwise enter the Wait node.
- Set a contact list name for the Update contact list node and choose the Add contacts to the contact list option.
- Create a segment and choose Based on contact list. For the Source list select the contact list named above.
- Create a program with a Recurring filter entry point and select the segment created above. Schedule it to run every day at 23:59,
- Add a Wait node after the segment with the same settings as the original Wait node and continue with the rest of the program.
- Set the participation in both programs to allow contacts to enter them only once ever.
Now, at the end of each day the second program will pick up all the contacts who would have reached the original Wait node and queue them, but they will be processed as a batch and proceed must faster through the program.
Reaching participants of a program via offline channels
Suppose you have a program which tries to reactivate defecting customers. You could have a branch for highly valued customers who usually spend a lot. If they do not react to emails, SMS or push messages, you may want to call them via phone and see if your sales representatives can reactivate them. Proceed as follows:
- Create a daily recurring program designed to reactivate contacts.
- Place a Update contact list node at the point where you would like to make a call to the contact and choose the Overwrite existing list with contacts who arrived at this node (even with single contacts) option.
- Schedule a daily contact list export to run about an hour after the contacts are expected to reach the Update contact list node. This will export the list of contacts who entered the node on that particular day. You can set the export to send an email with the list of customers to be called to a sales representative.
Using the contact behavior fields
As well as providing the data for Predict’s recommendations and Smart Insight’s customer lifecycle segments, the Emarsys data collection scripts also update a number of contact behavior fields in your database.
You can also use these fields to create automated programs that further enhance your customer lifecycle marketing.
Lead conversion / browse abandonment programs
Use the predict last session date
and predict last purchase date
fields to identify leads who have visited your site but not yet bought anything.
Combine them with predict last session time spent
and predict last session categories
to gauge their level of engagement and the products they are interested in, and target them with incentives accordingly.
Inventory management / product promotions
Use the predict last session categories
, predict last abandoned categories
and predict last purchase categories
fields to segment contacts you know to be interested in these products and target them with stock-clearance and back-in-stock campaigns, as well as cross- and up-sell campaigns.
Abandoned cart programs
How many of your shopping carts are abandoned? Use the predict last abandoned date
and predict last abandoned categories
fields to trigger timely reminders to customers of what they left behind.
Combine it with predict last abandoned total price
to offer different incentives based on total cart value. In this way you can recover up to 20% of your abandoned purchases!
If you don’t want to keep sending recovery campaigns for items that have been left in the cart for a long time, check if the predict last abandoned products
field has changed or not.
Winback / reactivation programs
The fields predict last session date
and predict last purchase date
give you a good indication of when customers are beginning to defect. Combine them with predict last purchase categories
to offer targeted incentives.
Lookalike audiences for CRM Ads
See our example on how to use the web behavior fields to create a great lookalike audience.
Better personalization
You can also use these fields to personalize sections of ad hoc email campaigns with dynamic content that will increase click-through-rates and conversions. For example:
- Use the
predict last session
/abandoned
/purchase categories
fields to select the right content based on their last preference. - Use the
predict last abandoned session
/cart
/purchase
fields to segment your audience according to their level of engagement and treat them accordingly.
Export data for use in other activities
Targeted lists can be generated based on the data collected through our JavaScript API and subsequently exported for use in other marketing activities. For example:
- A high value for
predict last session time spent
with no correspondingpredict last purchase date
may indicate problems with your shopping experience. - A high
predict last purchase total price
may merit one-to-one interaction from your Customer Services, such as invitation to a loyalty scheme. - You can also match purchase activity with email responses and consider targeting individuals through other channels for better conversion.