Exporting to Your Stack
Outcome: the finished list delivered to the tool you send from, with fields mapped, suppression applied, and a repeatable path for the next batch.
- Surface
- Sync GTM app
- Level
- Beginner
- Uses
- Export · CRM and sequencer integrations · webhooks
- Credits
- 0
- Prerequisite
- Lessons 11, 14 and 15
The pre-export checklist
Run this every time. Each line is a real failure someone has shipped.
- Only
qualifiedrows are in the export view - Every row has a verified email — not merely a found one
- Catch-alls are handled per your policy from lesson 11
- Copy rows marked
SKIPare excluded - Suppression applied: current customers, open opportunities, unsubscribes, anyone contacted in the last 30 days
- No duplicate people — dedupe on the identifier
- Names are properly cased.
JOHN SMITHin a greeting is a tell - Company names are clean. “Acme Inc.” reads badly mid-sentence
Suppression is the one that costs a relationship rather than a credit. Sending a cold sequence to an existing customer or an account someone else is in an active deal with is a real incident, and it is entirely preventable by one filter. Check it every export, not just the first.
Three destinations
CSV
Always works, no setup, no plan requirements. Right for a first run, an agency handoff, or a tool with no integration.
The cost is that it is a snapshot: nothing flows back, and next month you do it all again by hand.
CRM
Right when the CRM is the system of record and the motion is owned by reps. Match on domain for accounts and email for contacts, decide create-versus-update behaviour, and never let the export overwrite human-entered fields.
See CRM integrations and, for the full build, CRM Enrichment.
Sequencer
Right for cold campaigns. Push contacts into a campaign or list, map the personalization fields, and confirm the receiving tool has a field for every variable your copy uses.
Field mapping
The step where fields quietly disappear.
| Sync GTM column | Destination field | Note |
|---|---|---|
first_name | First name | Cleaned, properly cased |
email | Verified only | |
company_name | Company | Cleaned for use in a sentence |
title | Title | The verbatim original, not your normalized version |
opening_line | Custom field | Must exist in the destination before the export |
domain | Website / account key | The match key |
fit_score | Custom field | Optional, but it lets reps prioritize |
Two rules that prevent most mapping bugs:
- Create custom fields in the destination first. Most tools drop unmapped values silently rather than erroring.
- Export five rows first, open them in the destination, and read them. Field mapping errors are invisible in the source and obvious in the target.
Matching on export
When the record may already exist:
- Accounts match on domain.
- Contacts match on email, falling back to LinkedIn URL.
- On match, decide per field: update the enrichment fields, never touch owner, stage, or notes.
- On no match, create — but only if you actually want new records in the CRM. Many teams deliberately do not create until a reply.
This is the source-of-truth table from GTM Engineering lesson 07, applied.
Do this now
Create the export view
Qualified, verified, not suppressed, copy not SKIP.
Count it
If the number is much smaller than expected, find out which filter did it before you assume something broke.
Create the destination fields
Custom fields for the opening line and anything else non-standard.
Export five rows
Into the real destination, not a test account you will never look at.
Open them in the destination
Read every field on all five. This is the check that catches mapping errors.
Export the rest
Then confirm the count in the destination matches the count you sent.
Write down the handoff
Which view, which destination, which mapping, which suppression. Next month’s run should not require re-deriving this.
Check your work
- The export count matches the count that arrived in the destination
- Five rows were read field by field in the destination
- Every personalization field your copy uses exists downstream
- Suppression was applied before export, not after
- The handoff is written down
Where this breaks
Silent field dropping is the failure that ships. Most destination tools accept an import with unmapped columns and simply discard them, so the export reports success, the campaign launches, and every opening line renders as an empty variable — a blank space where the personalization was. Read five rows in the destination before every full export. It takes two minutes and it is the only check that catches this.
Further automation
Once the mapping is stable, schedule it: new qualified rows exported automatically as they cross the gate, rather than in batches you remember to run. Add a webhook or a Slack alert on each batch so the handoff is visible to the people receiving it.
Course complete
Your table now finds companies, researches them, enriches them, scores them, writes to them and delivers them. Every step is repeatable on the next segment, and the whole thing can be saved as a template.
Where to go next:
| You want | Course |
|---|---|
| The concepts behind what you built | GTM Engineering Foundations |
| To run this as a real campaign | Automated Outbound |
| Better contact coverage | Waterfall Enrichment |
| Deeper research | Research & Web Scraping |
| To do this by prompting instead | AI for Sales Reps |
Reference for this lesson: Export, CRM integrations, Outreach integrations, Webhooks.