This was a test (with very fluid requirements) I created to address:
Misaligned geographical data
Address completeness
A stepping stone toward addressing duplicates at scale - we were able to automate some of this in Ringlead but a LOT of this was still being done manually on a case by case basis.
I know of maybe one platform that might have been able to address this. But by creating this as a test I was hoping to get a solid proof of concept to make a case for a more sophisticated solution (if it exists!). I tried Ringlead and even some Marketo Business Solutions consulting time to explore other options before even considering this because it is a bit... well, chaotically robust!
Data Source Order of Priority
User submitted data (this was the the OOB fields in Marketo/SFDC, if the Sales team updated records then it would be reflected here as well)
ZI (lead/contact)
Paid Media (Content Syndication, vendors like Tech Target)
List Imports (Tradeshow collabs, manual content syn uploads, etc)
For testing purposes, "full data suite" was: Email Address, Country (Lead/Contact), State/Territory/Province (Lead/Contact)
Existing fields referenced:
ZI Country (for the person, not the account)
ZI State/Province/Territory (for the person, not the account)
Lead Source
Most Recent Lead Source
New Fields (all on lead/contact objects)
ZI Complete Data Suite (Boolean) Yes/No
ZI Date of Data Completion: (date) {{system.datetime}}
Paid Media Country
Paid Media State/Province/Territory
Paid Media Complete Data Suite: (Boolean) Yes/No
Paid Media Date of Data Completion: (date) {{system.datetime}}
List Imports Country
List Imports State/Province/Territory
List Imports Complete Data Suite: (Boolean) Yes/No
List Imports Date of Data Completion: (date) {{system.datetime}}
Highest Completion Source: {{lead.Most Recent Lead Source}}
The new fields above were intended to be Marketo only, and the OOB fields would be "insulated" and only updated if a complete data set from a data source of higher priority made it into the stack. This also would have required process updates so that List Imports would not write data to OOB fields, and integrations we had (like Tech Target) with Marketo would have to be updated to write to the new fields. *It would be critical to keep the number of fields required for the complete "suite" as low as possible so as to not go rogue with a bunch of fields!
Marketo Logic
If any of the new ZI, Paid Media, or List Import fields were populated or updated with values, Marketo would check to see if all of the "suite" fields were present. If so, then it would check the source of the data (a series of choices) and if the most recent lead source value was of higher priority than the current Highest Completion Source value, it would CDV. So say we had country and state from a list import already, and we ended up getting country and state from Paid Media (ex: Tech Target). The field updates would look like this:
Highest Completion Source = {{lead.Most Recent Lead Source}}
Paid Media Date of Data Completion = {{system.datetime}}
Paid Media Complete Data Suite = True
Country = {{lead.Paid Media Country}}State/Province = {{lead.Paid Media State/Province/Territory}}
This could be expanded in several directions and by capturing dates separately for each data source you could introduce time frames into the logic if desired. It can also admittedly get unruly FAST if you go heavy into the number of fields you're looking to add to the "suite". But we were encountering such a headache with duplicates and data misalignment that this looked appealing!