Every CRM change,
previewed first.
Undone in one click.

Preflight stages every import and migration — a field-level diff of creates, updates, blocked rows, and skips — before anything touches HubSpot or Salesforce. Built for agencies running client CRMs.

HubSpot ↔ Salesforce migrations|Per-client workspaces|One-click rollback
Staging Report — contacts_q1_import.csv
Tap a row to expand

4 of 234 updates

Push 1,081 approved records

2 CRMs

HubSpot & Salesforce, both directions

9 objects

from Contacts to Opportunities

100,000

rows per staged run

100%

of pushes reversible with undo

Two CRMs, one safety layer

Equally at home in HubSpot and Salesforce

Preflight isn't a HubSpot tool with Salesforce bolted on. Every capability — staging, mapping, validation, push, undo — runs through the same engine on both platforms, and migrations move data between them in either direction.

CapabilityHubSpotSalesforce
ObjectsContacts, Companies, Deals, TicketsContacts, Accounts, Opportunities, Cases, Leads
Staged field-level preview
Create / update / skip / block classification
Custom field mappingAll writable propertiesAll createable fields
Picklist validation & translationEnumeration propertiesRestricted picklists, incl. State & Country
Batched push via official APIsBatch APIComposite API
One-click undo
Migrate to / from the other CRM
Association preservationContacts ↔ CompaniesContacts ↔ Accounts

The staging layer

You see this before anything happens

Every incoming row gets a verdict: Create, Update, Skip, or Block. For every update, you see the exact field that will change — the current CRM value vs. the incoming value. Nothing is written until you approve it.

Field-level precision

Not just 'this record will be updated.' You see which fields change: company 'Acme Inc' → 'Acme Corp'. Job title 'Sales Rep' → 'Account Executive'. Every field, every row.

Empty field protection

If your source has a blank value but the CRM has data, Preflight will not overwrite it. This prevents the most common import disaster — silently blanking out good data.

Clear block reasons

Blocked rows aren't hidden — you see exactly why each one was stopped. Missing email. Invalid format. Duplicate in file. A value the destination picklist won't accept. Download, fix, and re-import.

Skip transparency

Rows where every field already matches the destination are marked as skipped. No unnecessary writes. No wasted API calls.

How it works

Three steps to a non-event

01

Bring your data

Drag in a CSV — or pull records straight from HubSpot or Salesforce for a migration. Preflight maps fields, validates values, and catches duplicates before touching the CRM.

  • Any CSV, or records read directly from the other CRM
  • Auto field mapping with manual override, incl. custom fields
  • Picklist validation and value translation
02

Preview the full diff

Every row is classified: create, update, skip, or block. For updates, you see the exact field-level changes — current CRM value vs. incoming.

  • Field-by-field comparison for every update
  • Blocked rows show exactly why they were stopped
  • The diff table is the product — see it before you buy
03

Push — or undo

Approve and push with live progress and pause/resume. If something's wrong, one click rolls everything back. No damage.

  • One-click undo restores the CRM to its pre-import state
  • Created records are deleted cleanly
  • Full push and rollback audit trail
Built-in undo for every import

Pushed something wrong?
One click to undo it.

Preflight snapshots the destination data before every push. Wrong file, wrong mapping, bad source data — click undo and everything reverts, across every supported object in HubSpot and Salesforce. No manual cleanup. No panic.

Updates reversed

Every changed field restored to its pre-import value

Creates removed

Records created by the import are cleanly deleted

Full audit trail

Both the push and the rollback are recorded permanently

Features

Every feature exists to prevent a specific disaster

We didn't build a feature list — we built solutions to the things that actually go wrong when bulk data meets a production CRM.

Staged diff preview

fear: the unknown

See every change before it happens. Creates, updates, skips, blocks — classified and displayed with full field-level detail.

Empty field protection

fear: silent data corruption

Blank values in your source never overwrite existing CRM data. The #1 complaint about bulk imports, completely solved — in both CRMs.

HubSpot ↔ Salesforce migrations

fear: the big-bang cutover

Migrate accounts, contacts, deals, and cases between CRMs with auto-detected schema mapping, a 25-record test run, and associations preserved.

Smart field mapping

fear: tedious setup

Columns auto-map to the right destination field — standard and custom. Override anything, translate picklist values, and save the mapping per client.

Batched push with live progress

fear: partial failures

Records push via each CRM's official APIs with retries, live progress, and pause/resume. Exact counts of what succeeded and what didn't.

One-click undo

fear: irreversible mistakes

Pushed something wrong? One click reverts everything — updated records restored, created records deleted. Works across all object types.

Client workspaces

fear: cross-client mistakes

Each client gets an isolated workspace — its own CRM connections, saved mappings, usage metering, audit trail, and role-based access.

Duplicate detection

fear: CRM pollution

Duplicates within your source are blocked with a clear reason before they reach the CRM. First occurrence processes normally.

Full audit trail

fear: accountability gaps

Every upload, staging result, push, and rollback — stored permanently. 'Who imported what and when?' always has an answer.

Weekly CRM health digest

fear: silent data decay

Every Monday, Preflight scans each connected CRM — HubSpot and Salesforce — and emails you duplicates, missing fields, and stale records.

Plus: blocked-row CSV export, scheduled pushes, quality scoring, and sample files to test with.

Pricing

Plans that scale with your client roster

Every plan includes unlimited seats, staged previews, one-click undo, and the full audit trail. Row volume is the only meter.

Starter

For agencies just getting going.

$499/mo

  • Up to 2 client workspaces
  • 50,000 rows / month
  • HubSpot + Salesforce, both directions
  • Unlimited team seats
Most popular

Growth

For scaling agencies running many clients.

$1,499/mo

  • Up to 10 client workspaces
  • 250,000 rows / month
  • Reusable schema mapping libraries
  • Everything in Starter

Scale

For high-volume partners.

$2,999/mo

  • Unlimited workspaces
  • 1,000,000 rows / month
  • Priority support
  • Everything in Growth

Annual billing saves 20%. Need a one-off import? The Lite pass is $25 for 24 hours of CSV/Excel imports into HubSpot or Salesforce.

FAQ

Common questions

Something else on your mind? hello@getpreflight.co

How is this different from the CRMs' native import tools?

HubSpot's import tool and Salesforce's Data Import Wizard preview column mapping, but neither shows you which existing fields will be overwritten, classifies rows as creates vs. updates vs. skips, lets you review and approve before writing, or offers an undo. Preflight adds a full staging layer with field-level diffs, classification, approval, and one-click rollback — on both platforms.

Can I migrate between Salesforce and HubSpot?

Yes, in either direction. The migration wizard connects both CRMs, auto-detects the field mapping (Accounts → Companies, Opportunities → Deals, and so on), validates picklist values, and lets you run a 25-record test before the full migration. Contact-to-company relationships are preserved, and every migration is staged and undoable like any import.

Do I need a credit card to sign up?

No. You can sign up, connect your CRMs, upload CSVs, and preview full staging reports — all free, no card required. A plan (with 14-day free trial) or a $25 Lite pass is only needed when you want to push changes.

Does Preflight modify my CRM data automatically?

Never. Preflight only reads your existing data for comparison during the staging phase. Absolutely nothing is written to HubSpot or Salesforce until you explicitly review the staging report and click the push button.

What if my CSV has empty values for some fields?

Empty values are never treated as changes. If a field is blank in your source but has a value in the CRM, Preflight will not overwrite it. This is one of the most important safety features.

What if I already pushed something bad?

Click the undo button on any completed import. Preflight snapshots the destination data before every push, so it can restore updated records to their original values and delete any records that were created — in HubSpot or Salesforce.

Which objects and fields are supported?

HubSpot: Contacts, Companies, Deals, and Tickets. Salesforce: Contacts, Accounts, Opportunities, Cases, and Leads. On both platforms the mapping step exposes every writable field — standard and custom — with auto-detection you can override, and picklist values are validated against the destination before anything pushes.

Do I need to install anything in HubSpot or Salesforce?

No. Both connect via standard OAuth — a few clicks and you're authorized. HubSpot needs no marketplace installation, and Salesforce connects without any package install (sandbox orgs are supported too).

What's the maximum file size?

Preflight supports up to 100,000 rows per run, processed in chunks so large files stage reliably. For larger datasets, split into multiple runs — each one gets its own staging report and audit record.

Can I cancel anytime?

Yes. Cancel from your billing settings at any time. You'll keep access through the end of your current billing period. No cancellation fees.

Do imports for clients?

HubSpot and Salesforce partners run more imports and migrations than anyone. Preflight gives you a professional-grade staging layer with per-client workspaces — show clients exactly what will change before you touch their data.

Interested in a partner arrangement? Get in touch

The next import is either a risk
or a non-event.

You decide.

Start previewing for free

Preview for free. Pay when you're ready to push.