ravn
Use case

A cleaner CRM in one afternoon.

Export contacts to CSV, dedupe on lowercased email, run validate_email over what remains, and fill missing company fields with domain_to_company. Then import the file back with the dead contacts marked, not deleted.

Start free: 1,000 lookups Read the docs

Playbook

Export, clean, import

Work on an export, never on the live CRM. Keep the CRM record ID in the file so the import matches rows back.

  1. / 01

    Export with IDs

    Export contacts with record ID, email, name, company and website columns. Save a copy of the untouched file.

  2. / 02

    Dedupe first

    Lowercase and trim every email, then merge rows that share one. This is free to do and every duplicate you remove is a lookup you do not spend. validate_emails also returns one verdict per unique address.

  3. / 03

    Verify the emails

    Run the CLI enrich command with validate_email. Use --limit 50 on a first run to check the output columns, then run the full file.

  4. / 04

    Fill company gaps

    domain_to_company runs on your own People Data Labs key (ravn keys add pdl). For rows with a website but no industry or size, run it on just those rows, and do not re-fetch fields you already trust.

  5. / 05

    Mark, do not delete

    Add a field such as "email status" in your CRM and import the result into it. Suppress invalid and D or F grade contacts from sends. Deleting loses history you may need.

  6. / 06

    Schedule a re-check

    Contacts decay. Re-verify every quarter or before any large campaign.

Run it

Commands for the whole pass

# Check the output shape on 50 rows first
npx ravn enrich contacts-deduped.csv --tool validate_email --column Email --limit 50 --out test.csv

# Full run (resumes from the last saved row if interrupted)
npx ravn enrich contacts-deduped.csv --tool validate_email --column Email --out contacts-verified.csv

# Start again from row one instead of resuming
npx ravn enrich contacts-deduped.csv --tool validate_email --column Email --restart --out contacts-verified.csv

# Fill company fields for rows missing them
npx ravn enrich missing-company.csv --tool domain_to_company --map domain=Website --out company-filled.csv

# Or in Claude
Here is my CRM export. Dedupe it on lowercased email and show me the merges.
Then verify each unique email with Ravn and add status, grade and reason columns.
Keep the Record ID column unchanged so I can import it back.
What it costs

Worked example: 20,000 contacts

Say your export has 20,000 rows and deduping leaves 17,000 unique emails. Verification is one of our own checks: one lookup per address, no provider key needed.

  • Free (1,000 lookups in total): enough to test a sample.
  • Ravn ($24 a month, 10,000 included, then $1 per 1,000): 17,000 is the 10,000 included plus 7,000 at $1 per 1,000, so $7 on top of the plan.

Filling company fields uses one lookup per company found, on your own People Data Labs key (ravn keys add pdl), which bills you for the records. If 1,500 rows are missing company data across 600 distinct domains, dedupe the domains first and look up 600, not 1,500. Misses cost nothing.

Details on limits are on the fair use page. The email verification API and company enrichment API pages cover each tool.

FAQ

Common questions.

All questions →

Does Ravn connect to my CRM directly?

No, there are no native CRM apps. You export a CSV, run it through the CLI, and import it back, or call the REST API from your CRM's webhook or workflow step.

Will the CLI lose my other columns?

No. The enrich command keeps every column you had and adds rw_* columns next to them. It saves progress every 25 rows so a long run can stop and resume.

Should I delete invalid contacts?

Mark and suppress them instead. You keep the history of who they were and when they stopped working, and you can still find the person again at their new company if you need to.

Can I find who a bare email belongs to?

reverse_email_lookup returns a person record for an email if one exists, at one lookup per person matched, on your own People Data Labs key. It accepts up to 100 emails per call. See reverse email lookup.

More in use cases

Every page uses the same account, plan and tools. See pricing →