Skip to Content
CoursesCRM Enrichment02 Import from your CRM

Import From Your CRM

Outcome: a filtered, purposeful slice of CRM records in a Sync GTM table, with the fields you need and nothing written back yet.

Surface
Sync GTM app
Level
Intermediate
Uses
CRM integration · import
Credits
0 to import
Prerequisite
Lesson 01's prioritized fix list, and CRM access

Never start with everything

The instinct is to pull the whole database and see what is broken. Three reasons not to:

  • Cost. Enrichment bills per row, and most CRMs contain a large tail of records nobody will ever work.
  • Risk. A write-back mistake on 200 records is recoverable. On 200,000 it is an incident.
  • Signal. Fixing everything tells you nothing about what was worth fixing.

Start with a slice you can name and justify.


Choosing the slice

By value

Open opportunities, current customers, accounts above a revenue threshold. Highest return per credit — these records are actually used.

By decay

Records not touched in 12+ months, contacts whose last activity predates their likely tenure. Highest yield of actual errors.

By gap

Records missing the field that blocks a workflow — no domain, no email, no owner. Most immediately useful.

By segment

One industry, one region, one product line. Best for proving the loop before widening.

Pick one. A first run of 200–500 records is enough to validate everything and cheap enough to redo.

“Open opportunities with a missing or unverified contact email” is an excellent first slice: small, high-value, obviously worth fixing, and the result is visible to people who will notice.


Which fields to bring

Bring the minimum, plus the identifiers.

BringWhy
Record IDThe write-back key. Non-negotiable.
Domain (accounts), email + LinkedIn URL (contacts)The enrichment inputs
Name, company, titleContext and enrichment inputs
OwnerRouting, and a field you must never overwrite
Last activity dateDecay signal
The specific fields you intend to fixThe point of the exercise

Do not bring notes, custom text fields, or anything a human wrote. You are not going to improve them, and having them in the table creates the risk of writing them back.


Read-only first

The first run writes nothing. Import, enrich, compare, and look at what the diff would be.

This is not caution for its own sake — it is how you find out that your CRM’s “title” field contains four different conventions, or that half your account domains have tracking parameters on them. Better to learn that from a diff than from a write.

Reference: CRM integrations, Import.


Record-level hygiene on import

Check three things before enriching anything:

  • Every row has a record ID. Rows without one cannot be written back and should be removed.
  • Identifiers are populated. Rows with no domain and no email cannot be enriched; count them, because that count is itself a finding.
  • Row count matches what your CRM said the filter returned. A mismatch means something was dropped on import.

Do this now

Pick and write down the slice

One sentence describing which records and why.

Confirm the count in the CRM first

So you can check the import against it.

Import with the minimum field set

Plus record ID and identifiers.

Verify the row count matches

Count rows missing identifiers

That number is a finding, not just an obstacle.

Normalize the identifiers

Domains lowercased and stripped, emails trimmed.

Confirm nothing is configured to write back yet


Check your work

  • The slice is small, named and justified
  • Every row carries a CRM record ID
  • Row count matches the CRM’s own count
  • Identifiers are normalized
  • No write-back is configured

Where this breaks

Importing without the record ID makes write-back impossible, and it is usually discovered three lessons later after all the enrichment has been paid for. Matching back by email or name afterwards is unreliable and creates duplicates. Check the ID column is populated on every row before you enrich anything.


Further automation

Once the loop is proven on one slice, the import becomes a scheduled sync of records meeting a condition — stale, missing a field, recently created. Lesson 08 sets that up; getting the slice right by hand first is what makes it safe to automate.


Next lesson

03 — Match fields and dedupe, aligning rows to records before anything is repaired.

Reference for this lesson: CRM integrations, HubSpot, Salesforce, Import.