Act-On List Maintenance Programs are Cool!
Act-On Software is hands down one of my favorite software applications. It’s a tool I have worked in for more than 10 years, and I regard it as the most flexible, dynamic marketing automation app in the marketplace. One of its great features is “List Maintenance Programs”. This simple form of automation enables marketers to automate many daily tasks that would otherwise be too tedious to be considered. At their core, List Maintenance Programs (LMPs) have two functions.
First, they enable you to automatically copy records from one marketing list to another. The source list is the list you are copying from, and the target list is the list you are copying to.
Additionally, Act-On LMPs facilitate populating field data automatically. Using segmentation, you can define rules that trigger data to populate a field value in a specific record. For example, I could create a segment of all persons who have opened a message in the last 60 days and populate a Status field with a value of “engaged”. In the same concept, you can also automate data population on entire lists, such as populating a field with the current Lead Score.
Act-On Allows Duplicates
Because Act-On Software is a “list-centric” app, it doesn’t maintain a database of record for contacts. Unlike a traditional database, Act-On stores each record as a row of data, and will allow users to load lists with duplicate email addresses and different field structures. This reduces the burden on marketers to force all data to conform to a uniform standard and creates tremendous flexibility.
For example, I can track multiple form submissions from a single individual as separate rows and respond/personalize the responses based on the submitted information. I can also have multiple duplicate email addresses associated with different order numbers in a single marketing list. This unique data management eliminates the need for complex relationships in data and gives the control back to marketing.
List Maintenance Programs and Act-On Duplicates
So far, everything sounds great, and marketers love these features, however, this does create a nuanced complexity that is often overlooked and has unintended consequences. When a list contains duplicates, and a List Maintenance Program copies a record to or from that list, it uses the email address as the lookup value. Because lists can (and often should) have duplicates, marketers often encounter unexpected outcomes. Knowing the rules on how Act-On List Maintenance Programs handle duplicates becomes critical to developing a sophisticated process.
Relevant List Maintenance Functions
List Maintenance Programs functionality are documented in Act-On Connect. This post covers the relevant functions relating to duplicate handling as follows:
- Copy To Another List
- Copy From Another List
- Update Field
Copy to Another List
When using Copy To Another List, the “Source List” is the marketing list where you have created the List Maintenance Program. The “Target List” is the list you select to copy records to. All records from the Source List will enter the program, and each row will search the Target List for the first matching email address.
If there are duplicate email addresses in the Source List, the last record will be the final data updated in the Target List. Because each duplicate runs in the Source List, the last version of the record to run will be the surviving data in the Target List.
If there are duplicate email addresses in the Target List, only the first record will be updated. Because the Source list is matching based on email address, it will only search the Target List until it finds a match, meaning only the first duplicate in a Target List will be updated by LMPs.
Copy From Another List
When using Copy From Another List, the “Source List” is the list you are copying records from, and the Target List is the marketing list where you have created the List Maintenance Program. There are many reasons to use Copy From instead of Copy To, but that’s a later article.
Now that we have defined the Source and Target Lists, we see the similarity in function. All records from the Source List will enter the program, and each row will search the Target List for the first matching email address.
If there are duplicate email addresses in the Source List (copying from), the last record will be the final data updated in the Target List (copying to). Because each duplicate runs in the Source List, the last version of the record to run will be the surviving data in the Target List.
If there are duplicate email addresses in the Target List (copying to), only the first record will be updated. Because the Source list is matching based on email address, it will only search the Target List until it finds a match, meaning only the first duplicate in a Target List will be updated by LMPs.
Whether through a Maintenance -> Change Column Values or List Maintenance Program “Change Field” step, updating fields ignores the email column entirely. All records are loaded and the field values are set by the function. Each duplicate will be treated individually with no cross-contamination of data for other records.
So How Do I Manage Lists with Duplicates?
It is common to run into these challenges when moving into more sophisticated data management. When this happens, there are two common strategies for dealing with duplicates. The first of these is to include handlers on your original data submission. A handler is a field that serves as a kind of “digital switch”. On creation, the field is blank or populated with a zero. The segment that is processing the field update or copy includes the criteria “handler = blank or 0”, and the LMP that copies the record sets the value to a 1 as its last step. This removes it from the source segment so it is not processed twice, and solves most duplicate-related issues.
As always, if this article feels out of reach, too technical, or too complicated – we invite you to Contact Us for a free consultation to see if we can help!