Add new enrichment sources to your fit segmentation

Prev Next

This guide provides a 3-week approach to build upon existing fit segmentation while adding custome enrichment sources. The 3-week timeline allows for thorough testing and validation while maintaining business continuity.

The methodology outlined here emphasizes validation at every step, cross-functional collaboration, and iterative improvement to deliver industry enrichment that drives measurable business impact.

Prerequisites - Week 1

  • Confirm the source of the new enrichment - usually Salesforce

  • Confirm the data points to enrich

    • Company Number of employees

    • Company Industry

    • Company Country

    • Lead job title

  • If Industry is included, create a spreadsheet mapping table to unify the different industry classifications from the different enrichment sources (MadKudu’s out-of-the-box industries vs your own Salesforce industries)

  • Align on fallback logic

    • Define hierarchical priority, for example:

    • Salesforce Account Enrichment Provider A > Salesforce Contact Enrichment Provider A > Salesforce Lead Enrichment Provider A > Salesforce Account Enrichment Provider B > Salesforce Contact Enrichment Provider B > Salesforce Lead Enrichment Provider B > MadKudu out-of-the-box enrichment

Step by step configuration - Week 2

  • Pull the new enrichment from all identified sources

  • Create the attribute mapping for these new fields once they are pulled into MadKudu

  • Create combined computations according to the decided priority

    • Name them “Employees combined”, “Industry combined”, “Country combined”

    • “Title combined” already exists by default; you just need to edit it by adding the new sources of enrichment

    • Find below all necessary templates, simply replace the attribute names

employees_combined - Type: Numeric - Mode: Advanced

CASE
	WHEN employees > 0 THEN CAST(employees AS NUMERIC)
	WHEN CAST(hg__employees_avg AS NUMERIC) > 0 THEN CAST(hg__employees_avg AS NUMERIC)
	WHEN CAST(salesforce_lead_numberofemployees AS NUMERIC) > 0 THEN CAST(salesforce_lead_numberofemployees AS NUMERIC)
	--WHEN CAST(salesforce_contact_employees AS NUMERIC) > 0 THEN CAST(salesforce_contact_employees AS NUMERIC)
	WHEN CAST(salesforce_account_numberofemployees AS NUMERIC) > 0 THEN CAST(salesforce_account_numberofemployees AS NUMERIC)
	ELSE NULL
END

employees_combined_bucket - Type: String - Mode: Advanced

CASE
	WHEN employees_combined = 0 THEN '1 - 0'
	WHEN employees_combined > 0 AND employees_combined <= 10 THEN '2 - ]0,10]'
  WHEN employees_combined > 10 AND employees_combined <= 100 THEN '3 - ]10,100]'
  WHEN employees_combined > 100 AND employees_combined <= 1000 THEN '4 - ]100,1000]'
  WHEN employees_combined > 1000 THEN '5 - ]1000,infinity['
END

industry_raw_combined - Type: String - Mode: Advanced

CASE
	WHEN industry IS NOT NULL THEN industry
	WHEN hg__top_level_industry IS NOT NULL THEN hg__top_level_industry -- it can be a number
	WHEN salesforce_lead_industry IS NOT NULL AND LOWER(salesforce_lead_industry) NOT LIKE '%unknown%' THEN salesforce_lead_industry
	--WHEN salesforce_contact_industry IS NOT NULL AND LOWER(salesforce_contact_industry) NOT LIKE '%unknown%' THEN salesforce_contact_industry
	WHEN salesforce_account_industry IS NOT NULL AND LOWER(salesforce_account_industry) NOT LIKE '%unknown%' THEN salesforce_account_industry
	ELSE NULL
END

industry_combined - Type: String - Mode: Advanced

Here you will replicate the mapping you prepared in the spreadsheet Week 1

CASE
WHEN LOWER(industry_raw_combined) LIKE '%automotive%' OR LOWER(industry_raw_combined) LIKE '%automobile%' THEN 'Automotive'
WHEN LOWER(industry_raw_combined) LIKE '%consumer%discretionary%' THEN 'Consumer Discretionary'
WHEN LOWER(industry_raw_combined) LIKE '%consumer%goods%' OR LOWER(industry_raw_combined) LIKE '%sporting%goods%' THEN 'Consumer Goods'
...
ELSE NULL
END

country_combined - Type: String - Mode: Advanced

CASE
	WHEN company__country IS NOT NULL THEN company__country
	WHEN pers_country <> 'not in table' AND pers_country <> 'cbit_unknown' THEN pers_country
	WHEN hg__hqcountry IS NOT NULL AND hg__hqcountry NOT IN ('115054','160004','196210','197110') THEN hg__hqcountry
	WHEN salesforce_lead_country IS NOT NULL THEN salesforce_lead_country
	WHEN salesforce_contact_mailingcountry IS NOT NULL THEN salesforce_contact_mailingcountry
	WHEN salesforce_account_billingcountry IS NOT NULL THEN salesforce_account_billingcountry
	ELSE NULL
END

  • Duplicate all live fit model(s)

  • Replace the original computations by combined computations in:

  • Check the performance of the new model against the live model to make sure the changes don’t have an impact on segmentation volumes

Iteration and Go Live - Week 2&3

  • Model validation

    • Pair review the sample page several times to check that the new enrichment is showing up as expected

    • Iterate on the configuration if you spot any misconfiguration or any gaps

  • Deploy the new model

    • Consider deploying on a Friday afternoon to avoid disrupting business

  • Monitor the Data Quality Improvements:

    • You should witness an increase in data coverage

    • This means a reduction in "Unknown" signals

    • And a reduction in the mismatch between signals and CRM information

Estimated time: 12 hours