Skip to content

Use case

ContactCTL for CRM enrichment

Every CRM decays: people change jobs, titles drift, mailboxes die. ContactCTL refreshes the contact layer with a plain CSV round-trip — export, enrich, import — driven by your agent instead of a data team.

01 — The problem

The system of record is quietly wrong

CRM data does not fail loudly. It fails as a bounced renewal notice, a deal routed to someone who left last year, a segment built on titles from two funding rounds ago. By the time anyone notices, the cleanup is a quarter-long project.

Native CRM enrichment add-ons are priced per seat and updated on their schedule, not yours. ContactCTL takes the other route: your CRM already exports CSV, and CSV is the interface. Verify every email, re-resolve the people behind the addresses, and fill the gaps — then import the same file back, columns intact.

Batch runs preserve row order and write output atomically, so writing back onto the input file is safe: a crash mid-run never corrupts the export.

02 — The workflow

How it runs

A quarterly hygiene pass

Export contacts with email, full_name, and domain columns. Verify everything first (0.02 credits per row), refresh the people behind the addresses with whois, and write the result in place.

Same input and output path means an in-place overwrite via write-temp-then-atomic-rename. Filter the undeliverable rows into movers.csv, whois them to see where people went, and find their new work emails before the renewal cycle.

agent — ~/crm
$ ctc verify contacts.csv contacts.csv
done: 1,860 rows verified
charged: 37.2 credits
$ ctc whois movers.csv movers.csv --max-cost 200
done: 188 of 203 resolved
charged: 188 credits · 15 misses free
$

03 — Commands and credits

What this workflow uses

Every command reports its credit cost in the output. Preview any spend with --estimate at zero cost.

CommandPurposeCredits
ctc verify <file.csv> [out.csv]Flag dead and risky mailboxes0.02 credits per row
ctc whois <file.csv> [out.csv]Person + company behind each email1 credit per row found
ctc find <file.csv> <out.csv>Fill missing work emails1 credit per row found

Full datasheet: credit costs in the docs · plan pricing on /pricing

Next

Your CRM exports CSV. That is the whole integration.