Hydra logoHydra · Hydra Support

CRM

Importing and exporting data

Bulk-import leads, contacts, and accounts from a CSV. Export filtered list views for spreadsheets or other tools.

Importing and exporting data

Hydra has bulk CSV import for Leads, Contacts, and Accounts, and one-click CSV export on every list page (Leads, Contacts, Accounts, Tickets). Use them to migrate data from your old CRM, hand a snapshot to your accountant, or share a working list with someone outside Hydra.

Importing a CSV

Each list page has an Import button next to + New. Click it to open a four-step wizard.

1. Upload the CSV

Drag a .csv file onto the drop zone, or click to pick one. Hard cap is 50,000 rows per file — split bigger files into multiple imports.

The wizard uploads your CSV to a private storage bucket and parses the headers. You'll never see those rows after the import completes (we keep the file around until the job finishes, then it's eligible for cleanup).

2. Map columns

Each column from your CSV gets matched to a Hydra field. Hydra auto-detects familiar names — for example a column titled Email, Email Address, or Work Email will all map to Email automatically. Adjust any column the wizard guessed wrong, or set it to — skip this column — to ignore it entirely.

Required mappings:

  • Lead imports: Email
  • Contact imports: Email AND either Account Name or Account Domain (so the contact links to a real account)
  • Account imports: Account Name

Two CSV columns can't map to the same Hydra field — the wizard will block the next step until you fix it.

3. Preview + dedup policy

You'll see the first five rows of your CSV transformed into Hydra fields, plus a question: what should happen when a row's email (or, for accounts, its domain) matches an existing record?

  • Skip the row (default) — keep the existing record exactly as it is
  • Update the existing record — fill in any of your CSV's mapped fields where Hydra's record has them empty. Optional "Overwrite mapped fields even when the existing value is non-empty" toggle for full overwrite. Hydra will never demote a contact back to a lead or change an account's lifecycle stage through this path.
  • Create a new record anyway — pick this if you genuinely want duplicates

Rows whose dedup field (email or domain) is missing always go in as new records, regardless of policy.

4. Run

Click Import. The progress bar shows live counts of created / updated / skipped / errored rows. When the job finishes you'll receive an email with the summary. If any rows errored, a Download error CSV button appears — it's the original rows plus an _error_reason column so you can fix and re-upload.

You can leave the page during the import — refresh later with the same URL (?job=<id> is added automatically) and you'll rejoin the progress view.

Exporting a list

Every list page has an Export button. Clicking it downloads a CSV of the current filtered view in seconds.

PageWhat's in the CSVFilters honored
LeadsName, email, company, job title, phone, first seen, last seen
ContactsName, email, phone, job title, account name + domain, first seen, last seen
AccountsName, domain, industry, website, lifecycle stage, MRR, renewal info, created
TicketsTitle, status, priority, customer email/name, assigned admin, timestampsStatus tab

Exports are streamed in batches so even tenants with hundreds of thousands of records don't time out.

Where exports go vs. tenant-wide exports

The list-page Export button is for the day-to-day "give me this view as a spreadsheet" need. Hydra also has a tenant-wide data export under Settings → Data Export that produces the full compliance-grade dump (every column, including audit fields) — that one is admin-only and writes an audit log entry. Use whichever fits the moment.

Common gotchas

  • MRR formats — When importing accounts, MRR can be $1,000, 1000, or 1000.00. All three are read as dollars and stored internally as cents.
  • Renewal dates2026-09-30 is safest. Sep 30, 2026 and 9/30/2026 work too. Anything Hydra can't parse becomes an error row.
  • Account lookup — Domain match wins over name match. If a CSV row has account_domain=acme.com, Hydra finds an existing account with that domain even if the row's account_name is "Acme Corp" and the existing account is "ACME, Inc."
  • Imports never delete — Importing a CSV with fewer rows than your existing data won't remove anything. Use the Hydra UI or the MCP API to delete records you don't want.