Skip to Content
CoursesSyncGTM 10105 Getting rows in

Getting Rows Into a Table

Outcome: rows in your table from the route that fits what you actually have, with a dedupe key set so the next run does not double it.

Surface
Sync GTM app
Level
Beginner
Uses
Import · find_companies · CRM sync
Credits
0 for CSV, ~1 per 10 rows for a find action
Prerequisite
Lesson 04's configured table

Three routes

RouteUse whenCostRefreshes
CSV uploadYou already have the list — a conference export, a partner list, a scraped fileFreeNo, it is a snapshot
Find actionYou know the criteria but not the companiesPer rowYes, re-run to top up
CRM syncThe rows already exist in your system of recordFree to importYes, on a schedule

Most real workflows use two: a find action to source new accounts, and CRM sync to suppress the ones you already have.

Reference: Import.


CSV upload

The simplest route and the one with the most footguns.

Clean before you upload

One header row, no merged cells, no totals row at the bottom. Split full names into first and last if your source has them combined — enrichment hit rates are better with separated names.

Map the identifier first

The domain column must map to your identifier column. If your file has website URLs with paths, they need normalizing — do it in the spreadsheet before upload rather than after.

Check the row count after import

If 4,000 rows became 3,860, something was dropped. Usually blank identifiers. Find out which before building on top of it.

A CSV is a snapshot with a date on it, even when nobody wrote the date down. A conference list from March has people who left in April. Treat imported job titles and emails as claims to verify, not facts — lesson 11 covers verification.


Find action

Rows generated from criteria rather than supplied. This is the route lessons 06 to 08 use, and the one that makes a table a standing asset rather than a one-off.

The advantage is not convenience. It is that the criteria are stored, so re-running the same search next month returns the companies that newly match — new funding, new headcount band, newly founded. A CSV cannot do that.

Cost is per row returned, so set a limit on the first run. Sourcing 5,000 companies to look at the first 50 is a real way to spend real credits.


CRM sync

Pull a segment from your CRM into a table. Two very different reasons to do it:

  • To work on them — fill gaps, re-verify, re-score. This is CRM Enrichment.
  • To suppress them — so a cold campaign does not contact current customers or open opportunities.

The second is the one most people skip and most regret. Import your customer and open-opportunity lists into a suppression table early, even if you never look at it until lesson 16.

Reference: CRM integrations.


Not duplicating on the second run

Every intake route can create duplicates. One setting prevents it.

  1. Set the dedupe key on the table to your identifier column — domain for companies, LinkedIn URL for people.
  2. On import, choose to skip or update on match rather than always append.
  3. Normalize before comparison. Acme.com and acme.com must collide.

Test it deliberately: import the same ten-row file twice and confirm the row count does not change. Two minutes now, and it is the difference between a table that can be re-run and one that cannot.


Do this now

Pick your route

If you have a list, upload it. If you have criteria, skip to lesson 06 and come back. If your rows live in a CRM, sync a small segment.

Set the dedupe key

Your identifier column, before you import anything.

Import 25 rows, not 2,500

Enough to test every later column, small enough that a mistake costs nothing.

Verify the identifier

Sort by the domain column and scan for blanks, paths, or www. prefixes that escaped normalization. Fix them now.

Import the same file again

Confirm the row count is unchanged. If it doubled, your dedupe key is not set.


Check your work

  • Rows are in the table with a populated identifier on every one
  • The dedupe key is set and tested by a duplicate import
  • You know whether your source refreshes or is a snapshot
  • Row count matches what you expected to import

Where this breaks

Importing a large purchased list and enriching it wholesale is the most reliable way to spend a month’s credits in an afternoon and end up with a worse list than you started with. Bought lists are stale, poorly targeted, and expensive to verify. If you must use one, import it, run one cheap qualification column, filter hard, and only then enrich. The find action route in lesson 06 is nearly always the better option.


Further automation

Intake is the natural thing to schedule. A saved find action that runs weekly and appends only new matches turns the table into a standing pipeline — which is what every signal-based course in this library relies on. Lesson 06 sets the search up; scheduling it comes later.


Next lesson

06 — Finding companies, building the search that generates rows instead of importing them.

Reference for this lesson: Import, CRM integrations, Tables, find_companies.