Which fits your sales team: Freshsales or self-hosted EspoCRM
Freshsales fits a sales team that wants a vendor to run the platform, handle upgrades and supply phone and sequence features without internal operations staff. EspoCRM fits a team that must keep customer data in a location it controls, or that wants to avoid per-user subscription growth, and that has people to run a PHP and database stack. If your renewal or cost increase is the trigger, the answer depends less on features than on who will operate the system after go-live. Freshsales' built-in calling and sequences are the main reason many small sales teams stay on a managed product, so start by listing which of those functions your reps use every day.
EspoCRM is licensed under AGPL-3.0, and its open-source edition can be downloaded and self-hosted for free. Your sales data, including contacts, deals and activity history, stays on servers you choose, and the REST API supports API key and HMAC authentication for integrations. Sign-in can run through OpenID Connect or LDAP, including Active Directory. Workflows and Business Process Management come from the Advanced Pack, an official extension that the EspoCRM pricing page lists as included in its cloud plans. Confirm the terms that apply to your self-hosted install before you plan around them, and confirm that your server runs the cron jobs that background processing requires.
The decision turns on three questions. First, who runs the platform: a managed vendor, or your own team with monthly patching, backups and upgrades. Second, where the data must live, since a residency or audit requirement can settle the matter before any feature comparison begins. Third, how much workflow customization your process needs. Write those answers down, then test your three most common sales workflows, including calling and sequence steps, against both products in a trial or sandbox. Ask any EspoCRM partner or internal team to estimate the operating effort in writing, and compare that with the seat cost you pay today.
Which option fits which scenario
This table matches common Freshsales buyer scenarios to the better starting point, Freshsales or self-hosted EspoCRM. Read each row against your own admin capacity, residency rules and must-keep features, then confirm the flagged items with the vendor or in a test environment. The main takeaway is that EspoCRM suits teams that can own the hosting and need specific control, while Freshsales may suit teams that want native calling, sequences or AI add-ons without running infrastructure.
| Scenario | Better fit | Why |
|---|---|---|
| Small team with no dedicated admin | Freshsales or EspoCRM Cloud | Self-hosting means someone owns PHP, MySQL, MariaDB or PostgreSQL, cron jobs, upgrades and backups. Confirm who would do this work. |
| Strict data residency or air-gapped network | EspoCRM self-hosted | You choose the data center, cloud account or network. Confirm where Freshsales stores your data and whether your regulator accepts it. |
| Team that depends on Freshsales calling and sequences | Freshsales for now | EspoCRM has VoIP and Sales Pack extensions, but fit depends on your telephony provider. Test each feature you use before deciding. |
| Heavy custom workflow and approval logic | EspoCRM self-hosted with Advanced Pack | The Advanced Pack provides workflows, Business Process Management and reports. Formula Script drives before-save scripts, workflows and BPM. |
| Team that wants AI add-ons | Freshsales | Freshsales sells AI add-ons on its plans. Confirm current EspoCRM extensions before assuming equivalent AI features. |
| Team that needs SSO with Active Directory | EspoCRM self-hosted | EspoCRM supports OpenID Connect and LDAP, including Active Directory. Confirm that group-to-team mapping matches your identity provider setup. |
| Team that wants lower per-seat cost at scale | EspoCRM self-hosted or EspoCRM Cloud | The open-source core is free to self-host. Compare hosting and admin time against your Freshsales quote, not the seat price alone. |
| Team with custom integrations already built on APIs | EspoCRM self-hosted | The REST API supports API key, HMAC and basic authentication with role-based API users. Confirm that the endpoints cover your current integrations. |
Where the customer data lives and who controls it
Freshsales keeps contact, deal and activity data in the vendor's SaaS environment, while EspoCRM places it in whatever cloud account, data center or server room you choose. The cards below cover the decisions that follow from that choice: where the stack runs, how people sign in, how API access is granted, who backs up the data, and what evidence a compliance assessment will ask for.
SaaS hosting or your own environment
With Freshsales, the vendor operates the application and the database, and you rely on its contractual and technical controls for data location and access. With EspoCRM, you decide the hosting account, region, network path and who holds administrator access to the servers. Confirm where the Freshsales data is stored and processed today, then decide whether your own environment or EspoCRM Cloud better fits your residency rules.
EspoCRM hosting stack
EspoCRM runs on PHP 8.3 to 8.5 with MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, served by Apache, Nginx or IIS. Background jobs depend on cron or a scheduled task, so a missing scheduler silently stalls workflows and reports. Your platform team should confirm the supported combination for its chosen database and web server before sizing the environment.
Sign-in through OIDC and LDAP
EspoCRM supports OpenID Connect sign-in, with optional user creation on first login and mapping of identity provider groups to teams. LDAP, including Active Directory and OpenLDAP, is also documented. Two details matter for Freshsales migrations: EspoCRM's own two-factor authentication does not work with OIDC, so your identity provider must enforce MFA, and you should keep a fallback login method for administrators in case the provider is unavailable.
API authentication choices
The EspoCRM REST API supports API key, HMAC and basic authentication through dedicated API users with role-based permissions. The documentation describes HMAC as the most secure option and does not recommend basic authentication. Create one API user per integration, scope its role narrowly, and retire the users when integrations are removed, since Freshsales API keys tied to individual staff accounts will not carry over.
Backup responsibility
On a SaaS CRM, the vendor's infrastructure handles most backup duties, and your export options determine how much of your data you can retrieve yourself. Self-hosting moves that duty to you: database dumps, attachment storage and configuration need scheduled backups and tested restores. EspoCRM's installation script includes a command utility for backups, restores and upgrades, but you still own the retention period, off-site copies and restore drills.
Compliance evidence, not attestation
Moving to EspoCRM does not make the CRM compliant on its own. Access control, logging, encryption, retention and change records must be configured and shown to an assessor. DeployOpen can plan, implement and document these controls and prepare the evidence, but independent auditors and certification bodies issue any audit report or attestation. Ask your assessor early which control evidence they need from the CRM and from the hosting environment.
How a self-hosted EspoCRM stack is put together
A self-hosted EspoCRM instance is a stack of four layers that your team must own: a web server, the PHP application, a database and a scheduled job. The server configuration docs list PHP 8.3 to 8.5 and serve the application through Apache, Nginx or IIS. The database can be MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15. Before you choose, confirm the exact minimums for the EspoCRM version you plan to deploy, and pick the web server and database your team already operates well. Background jobs also depend on cron or a scheduled task on the host. If that job stops, work that depends on it stops too, often without an obvious error in the user interface, so it belongs on your monitoring list from day one.
EspoCRM's installation script is the quickest path on Ubuntu, Debian and Linux Mint. It deploys a Docker-based stack with Nginx and MariaDB, and it can request Let's Encrypt certificates. That convenience comes with decisions. Check the script's defaults against your own standards for TLS, network exposure, database placement and where the Docker images and their updates come from. The script also installs command.sh, the utility for backups, restores and upgrades. Run a full backup and restore on a separate host before go-live, and record how long the restore takes. Treat the script as a starting point to review, not a finished production design.
After go-live, the team owns patching at every layer: the operating system, PHP, the database, the Docker components, certificate renewal and EspoCRM itself. EspoCRM 10.0.0 was released on July 2, 2026, 10.0.10 followed on October 14, 2026, and the previous major version, 9.0.0, shipped on January 20, 2025. Subscribe to the EspoCRM releases page so upgrade notices reach the people who run the server. Monitor the health of the cron job, disk space, backup success and certificate expiry, and schedule restore tests on a recurring basis. Assign a named owner for each item in a written runbook, because an unpatched CRM holds the same customer data as the system you are replacing.
What EspoCRM Cloud, the open-source edition and Freshsales plans include
The open-source edition of EspoCRM is licensed under AGPL-3.0 and can be downloaded and self-hosted at no license charge. You run the application, its database and its background jobs on infrastructure you control, so your costs are the servers, the administration time and any external services you choose to add. The core product covers contacts, accounts, leads, opportunities and activities, and the REST API is available for integrations.
- No license fee for the core: The open-source edition is free to download and self-host, so software spend is zero for the base product.
- Advanced Pack is separate: Reports, Business Process Management and workflows come from the Advanced Pack, an official add-on. Confirm its current licensing terms for self-hosted use before you plan around it.
- Your infrastructure, your responsibility: You provide PHP, a supported database (MySQL, MariaDB or PostgreSQL), a web server, cron for background jobs, backups and upgrades.
- Other official extensions: Sales Pack, VoIP, Google, Outlook, MailChimp, Zoom and Stripe integrations are available as add-ons, each with its own cost and setup work.
- Support is what you buy: Community help is free. Paid support, implementation and ongoing operations come from a vendor or partner under a separate written scope.
Before committing, confirm the current add-on licensing and supported versions with EspoCRM and check the server requirements against your own environment.
EspoCRM Cloud is the vendor-hosted version of the same product. It is priced per user per month, with a minimum seat count on each plan, and the Advanced Pack is included in every cloud plan. This model removes server administration but keeps you on a per-seat bill that grows with headcount.
- Basic plan: 15 US dollars per user per month, with a minimum of 3 users, according to the EspoCRM pricing page.
- Enterprise plan: 25 US dollars per user per month, with a minimum of 5 users, according to the same page.
- Ultimate plan: 69 US dollars per user per month, with a minimum of 10 users, according to the same page.
- Advanced Pack included: Reports and workflows are part of every cloud plan, so you do not add that cost separately.
- Minimum seats apply: A team smaller than the minimum still pays for the minimum number of users.
Check the current prices, plan limits and any changes to the Advanced Pack inclusion on the vendor's pricing page before you build a budget, since these figures can change.
Freshsales is Freshworks' SaaS CRM, sold in per-user Growth, Pro and Enterprise plans. It is hosted by the vendor, so updates, hosting and the core platform are handled for you, and AI capabilities are offered as paid add-ons on top of the plan. Your cost depends on seat count, the plan tier you need and which add-ons you select.
- Per-user plans: Growth, Pro and Enterprise are priced per user, so cost scales with the number of people who need access.
- Tier selection drives cost: Features such as advanced workflows, reporting or administration controls may depend on the tier you pick.
- Paid AI add-ons: AI features are sold separately from the base plan, so include them in any comparison.
- Vendor-hosted data: Your records sit in Freshworks' environment rather than your own servers.
- Confirm the details: Freshsales plan contents, per-user prices and add-on pricing are not reproduced here. Ask Freshworks for a current quote that lists every plan, add-on and any minimum seat requirement.
Request the written plan and add-on schedule from Freshworks and compare it line by line with the EspoCRM Cloud and self-hosted costs for the same user count.
What a self-hosted EspoCRM costs beyond the free license
The EspoCRM license costs nothing, but the license covers only the software. Freshsales charges a recurring per-user subscription plus any paid add-ons, so the comparison is between a recurring fee and a set of costs that are partly one-time and partly recurring. The one-time costs are the server build, installation, configuring the Advanced Pack workflows and Business Process Management rules your sales process needs, connecting email and phone, setting up single sign-on through your identity provider, migrating Freshsales data and testing. The recurring costs are hosting, database and backup storage, monitoring, security patching and the staff time needed for upgrades. Upgrades matter in planning: EspoCRM 10.0.0 was released on July 2, 2026, and 10.0.10 followed on October 14, 2026, so budget for regular patch cycles and a staging copy to test each one before production.
The recurring cost that moves most is internal or contracted administration time, which depends on how many workflows, custom fields and integrations you run and how often your sales process changes. Hosting cost depends on your infrastructure choices and user count, and you should confirm the server sizing your team needs with your own platform engineers. EspoCRM Cloud is the middle option. Its published prices are 15 US dollars per user per month on Basic (minimum 3 users), 25 dollars on Enterprise (minimum 5 users) and 69 dollars on Ultimate (minimum 10 users), according to the EspoCRM pricing page, with the Advanced Pack included. Cloud removes hosting and upgrade work but keeps your data with EspoCRM's hosting, so compare it with your Freshsales per-user rate, which you should confirm directly with Freshworks.
Before signing a written quote, ask for each cost to be itemized: one-time work (installation, extension configuration, identity integration, migration, acceptance testing) and recurring work (hosting assumptions, backup frequency and retention, upgrade and patch windows, support hours, and monitoring). Ask who holds administrator and database credentials, how restores are tested, and whether security testing of the deployment is included or priced separately. Confirm the terms for exporting your data at exit. Most DeployOpen engagements are fixed-scope, with the scope, deliverables and timelines agreed in writing before work starts, and ongoing support, upgrades and continuous testing are available as retainers, so ask for the scope and the retainer terms as separate line items.
What moving from Freshsales to EspoCRM involves
The sequence turns a Freshsales tenant into a self-hosted EspoCRM instance that holds the same contacts, accounts, deals and activities, with automation and sign-in rebuilt on your own infrastructure. Each step ends with a check you can verify before the next one starts.
Run and verify the full Freshsales export
Your team or the admin who holds the Freshsales owner account runs a complete export of contacts, accounts, deals, activities and custom fields, then stores the archive in a controlled location. Confirm that the record counts in the export match what Freshsales shows for each module, and log which export you used so later corrections are traceable. Freshsales export limits and the emailed ZIP format are covered in the sibling topic on exporting your data from Freshsales, so plan this step with that page open.
Map fields, owners and pipeline stages
A CRM administrator maps Freshsales contact, account, deal and activity fields to EspoCRM entities, custom fields, teams and users, and decides how Freshsales deal stages become EspoCRM statuses. The output is a signed-off mapping sheet listing every source field, its target field and any values that will be transformed or dropped. Activities and notes often need the most attention because their relationships to contacts and deals must survive the import. The sibling migration topic walks through this mapping in detail.
Provision the EspoCRM stack
Your platform or infrastructure team installs EspoCRM on infrastructure you control, either with the official installation script on a supported Ubuntu, Debian or Linux Mint host or by building the PHP, database and web server layers yourself. Check the server configuration docs for the supported PHP, database and web server versions, and confirm that cron or a scheduled task runs for background jobs. Set up backups and a tested restore procedure before any data arrives. Done means a staging instance answers over HTTPS, background jobs run, and a restore has been rehearsed.
Import data with duplicate matching in staging
A CRM administrator imports the mapped files into a staging EspoCRM instance using its import tool, choosing the duplicate matching rules for contacts and accounts so that existing records are updated rather than doubled. Relationships between contacts, accounts, deals and activities are checked on a sample of records. The output is an import log with counts per entity and a list of rejected rows with reasons, reviewed by the sales lead. Repeat the import until the log is clean and the sample records look right.
Rebuild workflows, assignment and automation
Sales operations rebuilds the Freshsales workflows, such as lead assignment, reminders and stage-change actions, in EspoCRM. Reports, workflows and Business Process Management come from the Advanced Pack, which is included in all EspoCRM Cloud plans and is an add-on for self-hosted installs, so confirm its licensing terms for your deployment. Logic that does not fit a workflow is written as Formula Script in before-save scripts, workflows or BPM. Done means each rule has a test record that triggers it and produces the expected assignment or notification. Email and phone integrations also need to be confirmed against the official extensions, since sequences and calling features in Freshsales may not have one-to-one equivalents.
Configure sign-in with OIDC or LDAP
An identity administrator connects EspoCRM to your identity provider through OpenID Connect, or through LDAP if your directory is Active Directory or OpenLDAP. Decide whether users are created on first login, how identity provider groups map to EspoCRM teams, and which fallback login method is kept for administrators. EspoCRM's own two-factor authentication is not compatible with OIDC, so confirm how multi-factor sign-in is handled at the identity provider. Done means test users from each team can sign in, get the correct permissions, and sign out cleanly.
Run in parallel, cut over and decommission
Sales users work in both systems for an agreed period while the team compares recent records, and any changes made in Freshsales are re-exported and imported again before cutover. At cutover, the final incremental export is loaded, the Freshsales integrations are switched off, and users are directed to EspoCRM. Confirm the subscription end date and the Freshsales data retention terms with the vendor before you cancel, and keep a verified archive of the final export. Done means no active user depends on Freshsales, the archive is restorable, and the subscription has been closed in writing.
Questions buyers ask before choosing EspoCRM over Freshsales
What does switching from Freshsales to self-hosted EspoCRM cost?
The switch costs less in licensing than in labor, because the EspoCRM core is free to download and self-host under AGPL-3.0. The cost is made of components: infrastructure to run the application, a database (MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15), backups, the data migration, configuration of fields, roles and workflows, and ongoing administration. Freshsales is priced per user on its plans, so the savings depend on seat count, the add-ons you still need and how much you pay in administration. The EspoCRM pricing page lists EspoCRM Cloud at 15 US dollars per user per month on Basic (minimum 3 users) if you want a hosted middle option. Ask any implementation partner for a fixed-scope quote that separates one-time work from recurring hosting and support.
How long does a move from Freshsales to EspoCRM take?
The timeline is set by data volume, the number of custom fields and workflows, how many integrations must be rebuilt, and how many people must be trained and tested. A team with a small set of standard objects and few automations moves faster than one with heavy custom logic, sequences and telephony to replicate. Freshsales limits exports to a set number per day and one full-range export, so plan the export window before the subscription ends. Ask for a written scope that lists each phase (discovery, mapping, test import, cutover, hypercare) and its acceptance criteria, with dates agreed before work starts.
What does the work require from our own team?
Your team supplies the business knowledge the migration depends on. Sales operations should define the pipeline stages, lead statuses, deal ownership rules and the fields that matter. An IT or platform owner should provide the hosting environment, DNS, TLS certificates, identity provider access and backup targets. Someone must approve the data mapping and sign off test imports, because duplicate matching and assignment rules change outcomes. Expect a named decision-maker to review scope changes. Confirm these responsibilities in the scope so nobody assumes the other side owns them.
Can our team run the EspoCRM move without an implementation partner?
A capable internal team can run it, provided it has Linux and database administration skills, time to test, and someone accountable for the cutover. EspoCRM ships an installation script for Ubuntu, Debian and Linux Mint that deploys a Docker-based stack with Nginx and MariaDB, plus a command.sh utility for backups, restores and upgrades, according to the EspoCRM installation docs. Most teams still underestimate import mapping, workflow rebuilds and security hardening. A partner can take those on under a fixed-scope agreement, while your staff keep ownership of the business rules. Decide which parts you will own before you start.
Does EspoCRM cover calling and sequences the way Freshsales does?
EspoCRM covers the core of a sales workflow, but you should verify each Freshsales feature against it before committing. Its Advanced Pack, included in all EspoCRM Cloud plans, provides reports, Business Process Management and workflows, and the official extensions include VoIP, Google, Outlook and MailChimp integrations. Formula Script can drive before-save logic and automation. Freshsales' built-in sequences and calling are not a one-to-one match, so list the sequences, dialer and call logging you use today and test each one in a staging instance. Where a gap exists, ask for a scoped option such as a custom extension or an external telephony integration.
How are upgrades and backups handled on a self-hosted EspoCRM?
You own both, so they must be designed into the setup. The current major line is 10.0, with 10.0.10 released on October 14, 2026, according to the EspoCRM releases page. Upgrades should be rehearsed on a copy of production before each change. Backups should cover the database and the file storage, be tested with restores, and be kept off the application server. The installation script's command.sh utility supports backups, restores and upgrades. Ask the provider what it will back up, how often, where copies are stored, how restores are tested, and who approves each upgrade window.
How does EspoCRM handle sign-in and access control for our staff?
EspoCRM supports OpenID Connect sign-in since version 7.3, with optional user creation on first login, mapping of identity provider groups to EspoCRM teams, backchannel logout and a fallback login method. It also documents LDAP authentication, including Active Directory and OpenLDAP. EspoCRM's own two-factor authentication is not compatible with OIDC, so plan your MFA at the identity provider. Confirm with your identity team which method you will use, and how service accounts and API users will be governed.
How DeployOpen helps evaluate, implement or migrate EspoCRM
DeployOpen is a Chainscore Labs company that plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For a Freshsales vs EspoCRM decision, we work from a written scope so your team knows exactly what gets built, tested and handed over before any work starts.
How we scope
- Review your current Freshsales plan, add-ons, sequences, workflows and integrations to define the features EspoCRM must cover.
- Agree which hosting model fits your environment: your cloud account, your data center or an air-gapped network.
- Document the written scope, deliverables and timeline together, with the sales-team roles and SSO requirements listed explicitly.
How we build
- Deploy EspoCRM on your chosen stack, with a supported database such as MariaDB or PostgreSQL and the required cron jobs configured.
- Configure leads, deals, accounts and workflows, and test Advanced Pack automation and integrations against your sales process.
- Integrate sign-in with your identity provider through OIDC or LDAP, and test the API with the authentication method your team selects.
How we hand over
- Deliver the configuration, runbooks and admin documentation so your administrators can manage users, fields and automation.
- Walk your team through backup, restore and upgrade procedures, and confirm they can run them without DeployOpen present.
- Provide written test results and evidence of access controls that your compliance team can review internally.
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer after handover, scoped separately from the build.
- Plan EspoCRM version upgrades against the release notes and your change process, with testing before each rollout.
- Ask for the retainer scope in writing, including response expectations and which upgrades and tests it covers.

