Assemble an Enrichment Waterfall
Quick-start Customer Guide
Pre-build:
- Determine your enrichment objectives
- Which records?
- What is the end goal for the data?
- Determine enrichment strategy - total or waterfall?
- Establish a budget
- Which providers will you use?
- Is this for list imports or for database enrichment?
- This will determine if you need to check your database for existing leads/contacts/accounts so that you can properly import OR update at the end of the job
- You may append information from a matched, existing record to improve the chance of enriching that record
- Determine what attributes are required for:
- Routing
- Segmentation (job level, job function)
Example:
- Last Name - typically required for sync
- Email - typically primary contact method
- Phone - also typically preferred by sales/SDR teams for contact
- Company - typically required for sync, required for accounts
- Country - sometimes required for sync, typically used in routing and segmentation
- Job Title - required for job level/function segmentation, typically used for ABM
There are two enrichment styles we focus on:
- Total: Every record is always sent to every enrichment vendor.
- Waterfall: (requires a prioritized list of enrichment providers): Records are sent to enrichment vendors in a predetermined order and will only continue to be sent to subsequent providers until a match is found for all the required attributes.
Helpful attributes to add to the target system (Marketo, SFDC, etc.) to help you track Openprise’s enrichment results:
- OP_Enrichment sent date
- OP_Enrichment success date
- OP_Enrichment vendors
STEP I: Prep data for enrichment
The purpose of this step is to clean up and normalize the data points that are sent off to enrichment vendors for matching. Certain vendors require specific formatting (such as abbreviations for state values, full names for country values, etc.) and we use this step to prepare these variations.
Original Attribute |
Task Template / Actions |
New Attribute |
New Attribute Type |
|
Clean Email
|
0P - Email Clean
|
Text
|
|
Infer value - tag disposable email domains using reference |
0P - Email is disposable 0P - Email is junk |
Boolean Boolean |
First Name Last Name |
Concatenate (create full name) |
0P - Full Name |
Text |
Company |
Company name cleanup (*remove words like Inc, Corp, LLC) |
0P - Company Clean |
Text |
Email and/or Website |
Extract Domain company.com *exclude junk and personal emails |
0P - Domain |
Text |
Country |
Infer value - normalize using Countries reference |
0P - Country Full Name 0P - Country ISO2 0P - Country Currency ISO |
Text Text Text |
State |
Infer value - normalize using States reference |
0P - State Full Name 0P - State Abbreviation |
Text Text |
Phone |
Phone number normalization |
0P - Phone Normalized *international format |
Text |
*Dedupe on Email |
Deduplication and merge |
Duplicates (system field) |
N/A (system field) |
STEP II: Enrichment Waterfall
This step is part of the process where we call out to various vendors and provide them with some lead details to see if they can return additional information on those records.
Building the waterfall
Questions before you start:
- Are you doing email validation as part of the process? Will you use the results to limit which records move on to enrich? Which vendor will you be using?
- Will account enrichment be part of the waterfall?
- If so, you will need to consider a “pre-step” of deduping and flagging unique companies for enrichment, then append that flag to the records you’re processing so you don’t enrich the same company multiple times
- What are your “gate” attributes? - once you’ve obtained a piece or pieces of information (usually your basic profile set) from a vendor(s), we do not send that record to any other vendors for enrichment
- Does new enriched info ever disqualify further enrichment?
- Ex: industries you don’t cater to, or if a record is ID’d as a “student” title
- What constitutes a match?
- When a vendor fulfills ANY of your basic profile reqs
- When a vendor fills one particular attribute
- When a vendor fulfills a subset of your profile reqs
- When a vendor fills ALL of your basic profile reqs
*Your match profile can be more extensive than your gate profile
Assembling your enrichment tasks
In a waterfall, each enrichment vendor should have at least 3 associated tasks:
Enrich - In this step, use your gate attribute(s) to filter which records should be enriched (if any are empty, allow the record to proceed)
Tag - Give credit to vendors for matching and returning data on required attributes - this list may be more extensive than the gate attributes
Fill Gate Attributes - Attempt to fill your gate attributes with the values provided by the enrich vendors. When all of these attributes have a value, the record will skip the rest of the waterfall.
General Waterfall Flow Overview
- Filter records from Job #1 - Cleanse and Prep
- Perform email validation (if applicable)
- Filter based on validation results
- Create a GATE profile set (ex: Industry, City, Title)
- Try to fill with values from source data (potentially reduce spend)
- Leave empty, in which case the first call-out to a vendor can be ungated
- Filter: If ANY of the gate attributes have no value - Enrich Vendor #1
- Tag Vendor #1 (based on match requirements)
- Attempt to fill empty gate attributes w/ vendor enriched values
- Filter: If ANY of the gate attributes have no value - Enrich Vendor #2
- Tag Vendor #2
- Attempt to fill empty gate attributes w/ vendor enriched values
- …..repeat until complete
Create a Gate Profile Data Set
Gate attributes are the main mechanism used to determine when a record should cease to further enrich attempts. These attributes represent data points that are essential to your sales and marketing teams, and are the focus of your enrichment efforts.
*Pro Tip - Some attributes are easier to get than others, for example a vendor is far more likely to return location data associated with a company than an employee range, simply because the latter information is not as widely available.
Be careful not to create a gate profile that is extremely difficult to satisfy, otherwise you might end up over-enriching.
Using your gate profile to manage enrichment
Whenever you are calling an enrichment vendor, filter the task using your gate attributes:
Tagging enrich services that return a “match”
Assigning credit to a vendor for returning useful information is important for reporting purposes. Match criteria can mirror or expand on the gate profile. This should be applied consistently across all vendors, except in the case where a vendor doesn’t offer a certain attribute.
Use a multi-value text field to tag any vendor that fulfills your match requirements.
Attempt to fill empty gate attributes
After you’ve sent records off for enrichment and a match is returned, try to fill any empty gate attribute with values provided by the vendor. If any remain empty following this step, those records will continue on to the next vendor in the waterfall, and will do so until the profile is satisfied.
***Account enrichment may not return certain attributes like “title” - if a vendor does not provide a corresponding attribute to check against a gate attribute, simply ignore it.
STEP III: Unification
Once you’ve sent records though the waterfall, we need to consider all the data that was returned and choose which values to retain and update the database with.
Location information should be treated as a block based on source. You don’t want to end up with a city from one vendor, a state from another, and a zip that was provided in a form—all mismatched—getting written back to your record.
- Some vendors provide two attributes with the address line broken out - create a task to combine those values into one attribute representing street or address
- Next, we will review each vendor in the order of enrichment, to check if they returned either a postal code or city/state combination. These values can be used to infer the remainder of the address fields (except street). The purpose of this is to ensure the location information we choose to keep offers the most complete information.
If a vendor provides either a zip or city/state, fill the 5 address fields (street, city, state, postal code, country) with values provided by the vendor. Set a default value of [NONE] in case a vendor field is empty. This value ensures data provided by other vendors doesn’t accidentally make it into the set. In this same step, we also note which vendor provided the data:
This check should be performed against every vendor in your waterfall, but the address fields will only contain data from the first vendor that provided a zip or city/state.
***At the end of the job use a “Remove Junk” task to remove the [NONE] values from your address fields. In subsequent jobs, you can infer and populate the missing information prior to exporting the final data.
Now you must unify the remainder of the attributes you want to take from enrichment and apply to your database.
This can all be done within the same step, and the order in which you try to fill your final enrichment attribute will follow the order of enrichment. Some vendors don’t provide certain attributes.
STEP IV: Cleanse and prep enriched data for export
Following Unification, your next job will deal with cleaning up and normalizing the enriched data to prepare it for export.
Example:
STEP V: Set final outputs (what gets overwritten?)
In many cases, you will already have values in your database for some of the attributes you collected enriched data on. Decide if you want to retain the original value or overwrite it with the new enriched version (if you normalized or cleaned your enriched values, make sure you try to fill with that version of the data):