Templates / RevOps · Clean & dedupe

Bulk-clean HubSpot legacy → Salesforce

Clean HubSpot legacy data, dedupe against Salesforce, forward only the survivors.

01 Legacy Companies

Every HubSpot company lands here. AI finds the LinkedIn URL, the domain is HTTP-checked, Enrich Company fills firmographics, AI normalizes country + industry, and Send to Companies (Ready) routes survivors with Match Status='new' into the next stage.

HubSpot Companies Find Company LinkedIn URL Domain HTTP Check Enrich Company Normalize Country Normalize Industry Match Status Send to Companies (Ready)
HubSpot Co. Found live Enriched US Software new Sent
HubSpot Co. Found live Enriched DE Software new Sent
HubSpot Co. Found live Enriched GB Software existing Skipped (dup)
HubSpot Co. Found live Enriched US Fintech new Sent
HubSpot Co. dead dead Skipped (dead)
HubSpot Co. Found live Enriched CA Software new Sent
HubSpot Co. Found live Enriched US Software new Sent

02 Companies (Ready for SF)

Survivors from the legacy table. Each row is HTTP-verified, normalized, and cleared as a non-duplicate against Salesforce, ready for SF import without a manual cleanup pass.

Input Company name Domain Country (Canonical) Industry (Canonical) LinkedIn Ready for SF
Record Voltio voltio.com United States Software in/voltio Yes
Record Lenza lenza.io Germany Software in/lenza Yes
Record Trackbeam trackbeam.app United States Financial Services in/trackbeam Yes
Record Cloud Pivot cloudpivot.io Canada Software in/cloud-pivot Yes

03 Legacy Contacts

Same shape as Legacy Companies but for contacts. Email verification, LinkedIn lookup, and SF dedup run in parallel. Survivors route into Contacts (Ready for SF).

HubSpot Contacts Full Name Email (Waterfall) Find LinkedIn URL SF Lookup Send to Contacts (Ready)
HubSpot Co. Mara Jensen mara@voltio.com in/marajensen new Sent
HubSpot Co. Diego Romero diego@lenza.io in/diegoromero new Sent
HubSpot Co. Anya Patel anya@pulsenote.com in/anyapatel existing Skipped (dup)
HubSpot Co. Theo Faraj Not found in/theofaraj new Skipped (no email)
HubSpot Co. Eve Larsen eve@pulsenote.com in/evelarsen new Sent

04 Contacts (Ready for SF)

Survivors from Legacy Contacts. Each row has a verified work email, a LinkedIn URL, and a confirmed non-duplicate status against Salesforce, ready for the migration import.

Input Full Name Email LinkedIn Company Ready for SF
Record Mara Jensen mara@voltio.com in/marajensen Voltio Yes
Record Diego Romero diego@lenza.io in/diegoromero Lenza Yes
Record Eve Larsen eve@pulsenote.com in/evelarsen Pulsenote Yes

How the workflow runs

Each step is a Baseloop action chained on a table. Clone the template and the whole sequence runs on your data, no wiring, no glue code.

  1. 01

    Pull every HubSpot company into a Legacy Companies table.

  2. 02

    AI finds each company's LinkedIn URL when missing so SF gets a complete record on import.

  3. 03

    HTTP-check every domain. Dead/unreachable domains are flagged so they never make it to Salesforce.

  4. 04

    Enrich each company with firmographics (industry, employee range, headquarters, year founded, website) via Baseloop's enrich_company action.

  5. 05

    AI normalizes country (canonical) and industry (canonical taxonomy) so the SF migration uses one vocabulary.

  6. 06

    Match Status combines Domain Status + SF Lookup. Only records flagged 'new' route into "Companies (Ready for SF)" — dead and existing-in-SF rows stay behind.

  7. 07

    Repeat the same pass for contacts. Waterfall-verify email, AI-find LinkedIn, dedupe against SF, route survivors into "Contacts (Ready for SF)".

What this gets you

The CRM migration team stops dragging dead records into Salesforce. Every legacy HubSpot company gets HTTP-checked, normalized, deduped against SF, and only the live + clean ones move forward.

Integrations used

This workflow connects to 2 Baseloop integrations. Click any to see all its actions.

Build this on Baseloop today

Clone the template and the whole flow runs on your data in minutes. Free to start, no credit card.