Migrate from Another CRM
Move your accounts, contacts, deals, and engagement history into Breadbox without re-keying. Imports are resumable, owner-aware, and don't create duplicates on re-runs.
What gets imported
| Object type | What it covers |
|---|---|
| Accounts | Companies, lifecycle stage, MRR, address, custom fields, tags. Import these first. |
| Contacts | People at your accounts. Auto-links to accounts by name. |
| Deals | Active and historical pipeline. Pipeline stage maps to your Breadbox stages; amount converts to MRR via your chosen mode. |
| Touchpoints | Calls, emails, meetings, site visits — your engagement history. |
| Tasks | Open and completed tasks with assignee mapping. |
| Notes | Free-form notes attached to accounts or deals. |
How it works
- 1Pick your object type and upload a CSV. Export from your current CRM (HubSpot, Salesforce, Pipedrive, Zoho, or anything that exports CSV). We auto-detect column names from common headers.
- 2Map owners. If your CSV has an owner email column, you'll be asked to match each unique source-CRM owner to a Breadbox user. Anyone without a match becomes "Imported (unassigned)" — you can reassign later.
- 3Run the import. Processing runs in the background. You can close the page; we'll keep going. The progress dashboard shows live counts of created / linked / skipped / errored rows.
- 4Review errors and re-run if needed. Errors are listed per-row with the specific reason. Re-runs are safe — already-imported records are skipped.
Recommended order
Run a separate import per object type, in this order. Each step references data created by earlier steps.
- Accounts — these are the foundation; everything else links to them.
- Contacts — get linked to accounts by company name.
- Deals — require accounts to exist; reference contacts by email.
- Touchpoints, Tasks, Notes — can run in parallel once accounts and contacts are imported.
No-duplicates guarantee
Every imported record is tracked by source ID. If you re-run a migration with the same CSV (or a fixed version), Breadbox skips rows it's already imported and re-processes only new or changed ones. This makes it safe to:
- Run a small test import first, then a full run.
- Fix errors in your CSV and re-upload — only the fixed rows process.
- Run accounts.csv now and contacts.csv later when you're ready.
We also detect existing Breadbox records (matching name for accounts, matching email for contacts) and link to them without overwriting — so any data you've added in Breadbox stays intact.
Activity history cutoff
Touchpoint and note imports default to keeping the last 2 years of activity. You can change this in the wizard's mapping step. For most teams, 2 years is the right balance between "enough history to be useful" and "not flooding the timeline with noise from years ago."
Deal amount: MRR vs ACV vs one-time
HubSpot and Salesforce store deal "Amount" as a single number with no notion of recurring vs. one-time. Breadbox uses MRR as a first-class concept. During deal import, you'll be asked once how to interpret the source amount:
- Annual contract value (default) — the source amount is divided by 12 to get MRR.
- Monthly recurring revenue — the source amount is used as MRR directly.
- One-time project — the source amount is stored as project revenue, no MRR.
Most MSPs running on HubSpot or Salesforce track annual contract values, so the default works. You can edit individual deals in Breadbox after import.
What doesn't migrate via CSV
CSV exports don't carry everything. The following don't migrate:
- File attachments — bring those over manually after the migration.
- Workflow automations — set up your Breadbox playbooks fresh; they're shaped differently anyway.
- Custom HubSpot Sequences or Salesforce Cadences — Breadbox playbooks replace these.
The HubSpot direct connector (one-click via OAuth) handles attachments and is the better path if you're on HubSpot. See the migration page in Settings.
Troubleshooting
owner_email, owner, account_owner, deal_owner, assignee_email, hubspot_owner_email.