Salesforce → EspoCRM
What it saves, what actually moves, what you rebuild — and the thing that catches people.
What it costs, and what it saves
Salesforce lists Starter Suite at $25 per user per month (billed monthly or annually) and Pro Suite at $100 billed annually. Sales Cloud Core, Advanced and Max are $195, $395 and $550 per user per month billed annually, as listed on 2026-10-03. Ten users on Pro Suite is $12,000 a year. EspoCRM is AGPLv3 and free to self-host on PHP 8.3–8.5 with MySQL, MariaDB or PostgreSQL. A 4 GB VPS at DigitalOcean's listed $24 a month is about $288 a year (estimate). Workflows, BPM and Reports come from the paid Advanced Pack extension, and I could not find its price on the vendor's site. EspoCRM Cloud includes the Advanced Pack: Basic is $15 per user per month (minimum 3 users), Enterprise $25 (minimum 5) and Ultimate $69 (minimum 10). Ten users on Enterprise is $3,000 a year.
Moves cleanly
There is no Salesforce connector, so the data moves as CSV. Salesforce's Data Export Service writes each object you select to CSV files in a zip, with images, documents and attachments if you select those options. EspoCRM's Import tool (Administration > Import) loads one entity type per CSV, in Create Only, Create & Update or Update Only mode. It supports field mapping, default values such as assigned user and teams, duplicate checks, an errors panel you can export and re-import, and Revert Import. Many-to-one links, such as a Contact's Account or an Opportunity's Account, can be set during import by name or, from v8.2, by a unique field with Relate on Import enabled.
You rebuild
Configuration does not come across, only records. That means page layouts, validation rules, Flows and other automation, Apex code, reports and dashboards, sharing rules, approval processes and AppExchange packages. Import linking does not cover many-to-many links such as Opportunity contact roles and campaign members. The import docs do not describe loading files either, so attachments go in through the REST API or by hand.
What Salesforce costs you today
Per user per month, billed annually. Starter is about $25, Professional about $100, Enterprise about $175 and Unlimited about $350 — and the published number is rarely the final one. Sandboxes, additional API calls, Marketing Cloud, Service Cloud and integration middleware are separate line items, and implementation consultancy commonly costs more in year one than the licences. A 50-seat Enterprise deployment is around $105,000 a year before any of that. Checked 2026-08-03.
What actually holds you in
The deepest in this catalogue, and worth being sober about. Records export readily; that is not where the difficulty is. What binds you is everything built on top — Apex code, Flows, validation rules, page layouts, permission sets, and integrations wired into finance, support and marketing. Years of process live in configuration nobody documented, and a migration is a business-process project with a software component rather than a data move. Budget accordingly, and be suspicious of any plan that treats it as an export.
What you are moving to
EspoCRM covers what most companies actually use a CRM for: accounts, contacts, leads, opportunities, activities, email integration, reporting and a workflow engine, with an entity manager that lets you add custom fields and objects through the interface rather than through code. AGPL-3.0, PHP and MySQL, installs on modest hardware. Around 3.2k stars — a smaller number than the flashier entries here, and a slightly misleading one, because this is a mature product with a long deployment history rather than a new arrival.
Free and open source to self-host. Some advanced extensions are paid.
EspoCRM strengths
- Covers the CRM job most companies actually have, completely
- Customisable through the UI — no developer needed for fields and objects
- Light PHP/MySQL stack that runs on a small VPS
- Mature and stable, with years of production use
What you give up
- Interface is functional rather than beautiful
- Some advanced extensions are commercial add-ons
- Nothing resembling AppExchange
- No CPQ or complex territory management
The migration, step by step
- 1Map the data model. List the Salesforce objects and custom fields you actually use, create matching custom fields in EspoCRM's Entity Manager, and add a text field holding the Salesforce ID to every entity you will import.
- 2Run Salesforce's Data Export Service with attachments included and download the zip promptly, because the files are deleted 48 hours after the notification email. Use Data Loader for any object you need again before the next export window.
- 3Import parents before children: users, then accounts, then contacts and leads, then opportunities, cases and activities. Link each child through a Foreign field on the parent's Salesforce ID with Relate on Import enabled (EspoCRM 8.2 and later).
- 4Load many-to-many links and file attachments with a script against EspoCRM's REST API, using API-key or HMAC authentication. Then check record counts and a sample of linked records against Salesforce reports.
- 5Rebuild automation in Workflows or BPM (Advanced Pack) and re-create your key reports. Run both CRMs in parallel for two to four weeks, with one team entering real deals in EspoCRM.
- 6Cut over on a fixed date. Take a final export and import the changes in Create & Update mode, matched on the Salesforce ID. Move integrations and web-to-lead forms to EspoCRM, and reduce Salesforce licences at renewal.
The gotcha
This migration breaks at the relationships. Salesforce's export is a set of flat CSV files joined by Salesforce record IDs. EspoCRM's import only links records automatically by the related record's name, and only for many-to-one relationships. If you link Contacts to Accounts by name, any duplicate or renamed account name can link records to the wrong account. EspoCRM's documented answer (v8.2+) is a Foreign field with Relate on Import, and the docs say to use it only when that field is unique. So carry the Salesforce ID into a custom field on every entity and import in dependency order. Also, Revert Import deletes the records an import created but does not undo the updates it made, so test Create & Update runs on a copy first.
When to stay on Salesforce
Stay on Salesforce if your business runs on customisation built there: Apex, Flows, approval processes, AppExchange packages, or integrations that expect Salesforce APIs. Those would have to be rebuilt, not moved. The same applies if you plan to use Agentforce for Sales (listed from $125 per user per month). Staying is also the safer call when you have certified admins and nobody to maintain a PHP application and its database.
More Layer 5 migrations
Figures verified 2026-08-03 against vendor pricing pages. Prices change and migrations differ by estate — treat the cost delta as a starting model, not a quote. Rankings and recommendations here are merit-only; affiliate income never changes a verdict. See our methodology.