When Salesforce or EspoCRM fits your sales team
A renewal notice, per-seat cost pressure or a data residency rule usually prompts this question, and the answer depends less on feature checklists than on how your sales operation actually runs. Salesforce Sales Cloud fits organizations that rely on its ecosystem: AppExchange extensions your teams already use, Apex-based customization maintained by in-house or certified developers, and vendor-run operations where Salesforce handles hosting, upgrades and availability. EspoCRM fits a different profile: sales teams that work mainly with standard objects such as accounts, contacts, leads and opportunities, a hosting arrangement run by your own staff or a partner you trust, and a clear need to own the customer data outright.
Before choosing, map your current Salesforce automation to what EspoCRM provides. Its Formula Script covers before-save logic, API before-save scripts, workflows and BPM, and the reports and BPM features sit in the Advanced Pack, which is included in all EspoCRM Cloud plans. Confirm whether your self-hosted deployment needs that pack or an equivalent, and whether its license terms match your use. Also check which identity model you need. EspoCRM supports OpenID Connect and LDAP, including Active Directory, but its own two-factor authentication is not compatible with OIDC, so your identity provider must carry that control.
The decision turns on four questions: how deep your custom automation runs, whether the paid Advanced Pack or an equivalent is part of your cost model, how your identity requirements map to OIDC or LDAP, and whether your internal admin team has the capacity to operate PHP, database and backup duties after go-live. If the answer to the first question is heavy Apex and AppExchange dependence, expect a longer migration. If the answer to the last is limited capacity, get a written support scope from whichever partner or hosting provider you select before you commit.
Which option fits which buying scenario
This table matches common buying situations to the platform that fits them better, with the reason tied to documented facts. Read each row as a starting point, then confirm the points marked for checking against your own org, identity setup and integrations before deciding.
| Buying scenario | Better fit | Reason |
|---|---|---|
| Per-seat renewal increase | EspoCRM | EspoCRM is AGPL-3.0 and free to download and self-host. Its published cloud plans start at 15 US dollars per user per month (EspoCRM pricing page), so the license itself carries no per-seat fee. Compare that with your Salesforce renewal quote by component. |
| Team of standard sales users (accounts, contacts, opportunities, tasks) | EspoCRM | A standard-object sales team uses fewer platform features, so the gap in automation and reporting matters less. Confirm that the Advanced Pack features you need (reports, BPM and workflows) are covered by your deployment choice. |
| Heavy Apex or AppExchange dependence | Salesforce | EspoCRM has no Apex runtime or AppExchange marketplace. Custom logic would need to be rebuilt with Formula Script, custom entities and the REST API, which is a larger rebuild effort. Inventory your Apex classes and triggers before deciding. |
| Heavy Salesforce Flow or Process Builder automation | Salesforce for complex logic, EspoCRM for simpler flows | Workflow Rules and Process Builder are retired, so flows will be rebuilt either way. EspoCRM covers before-save scripts, workflows and BPM through Formula Script and the Advanced Pack. Test whether those tools express your most important process. |
| Self-hosting for data control | EspoCRM | EspoCRM runs on PHP with MySQL 8.0+, MariaDB 10.6+ or PostgreSQL 15+, so the data stays in your own database and servers. Your team takes on hosting, patching and backups, so confirm you have staff or a partner to run it. |
| OIDC sign-in with an identity provider | EspoCRM | EspoCRM supports OpenID Connect since version 7.3, with optional user creation on first login and mapping of identity provider groups to teams. Note that EspoCRM's own 2FA is not compatible with OIDC, so plan second-factor enforcement at the identity provider. |
| LDAP or Active Directory sign-in | EspoCRM | The EspoCRM documentation describes LDAP authentication, including Active Directory and OpenLDAP. Confirm the group and attribute mapping your directory needs with a test instance before cutover. |
| High API volume with complex integrations | Confirm before deciding | EspoCRM provides a REST API with API key, HMAC and basic authentication. HMAC is the documented most secure method, and basic authentication is not recommended. Check your current Salesforce API usage and map each integration to a supported EspoCRM endpoint. |
| Need for a vendor-managed SLA and enterprise support | Salesforce | Salesforce is a hosted service with vendor support contracts. A self-hosted EspoCRM instance relies on your team or your implementation partner for uptime, upgrades and incident response, which should be written into the support scope. |
How per-user tiers compare with free self-hosting
Salesforce Sales Cloud is sold as a recurring subscription per user, with editions that step up from Starter to Max. Each edition adds capabilities, and most organizations also buy add-ons for areas such as reporting, automation or extra storage. The subscription runs for the contract term, so the cost recurs and grows with headcount and with any edition upgrade.
- Per-user fees: every licensed seat is billed on the order form, so cost moves with headcount, including part-time and read-only users you plan to keep.
- Edition upgrades: moving to a higher edition to reach one feature changes the price for every seat, not only the users who need that feature.
- Add-ons: analytics, automation and industry licenses are often separate line items with their own renewal dates.
- Internal admin and developer time: configuration, flow and Apex maintenance, and release reviews are paid internally or through a partner, and they recur.
- Exit planning: extracting data for a move is a one-time cost, but it adds effort on top of the subscription you still pay during the transition.
Ask your Salesforce account team to list every edition, add-on and renewal date in the current order form, and confirm which seats are billed.
EspoCRM is licensed under AGPL-3.0, and the open-source edition can be downloaded and self-hosted without a license fee. The cost moves to infrastructure, setup, maintenance and staff time. The server configuration documentation lists PHP 8.3 to 8.5, MySQL 8.0 or newer, MariaDB 10.6 or newer or PostgreSQL 15, served by Apache, Nginx or IIS, with cron or a scheduled task required for background jobs.
- License: the open-source edition carries no per-user fee. Confirm with counsel how AGPL-3.0 applies if you modify the code and offer it to users over a network.
- Infrastructure: servers or cloud instances, the database, backups, TLS certificates and monitoring. These recur and scale with user count and data volume.
- Installation: the installation script for Ubuntu, Debian and Linux Mint deploys a Docker-based stack with Nginx and MariaDB, optional Let's Encrypt certificates, and a command.sh utility for backups, restores and upgrades.
- Admin time: patching, upgrades, cron health, restore tests and user administration are ongoing internal effort, often the largest recurring item after infrastructure.
- Implementation: data migration, integration and configuration are one-time costs that you can perform internally or contract out under a written scope.
Confirm who owns hosting, backup testing and upgrades in writing before you compare the total with a subscription.
EspoCRM also offers a managed Cloud service with published per-user prices. It sits between a subscription and self-hosting: the per-seat fee replaces your infrastructure and admin work, but the fee still scales with headcount. The pricing page lists three plans, each with a minimum seat count.
- Basic: 15 US dollars per user per month, with a minimum of 3 users.
- Enterprise: 25 US dollars per user per month, with a minimum of 5 users.
- Largest plan: 69 US dollars per user per month, with a minimum of 10 users.
- Cost driver: total cost depends on your real seat count, so a small team on a higher minimum may pay more than the per-user rate suggests.
- Plan terms: storage, backup frequency, data location and support terms can differ by plan, so confirm them on the pricing page or with the vendor.
Ask EspoCRM whether taxes, currency conversion and billing terms change the published figures before you build a budget.
The Advanced Pack is an official EspoCRM add-on that provides reports, Business Process Management and workflows. It is included in all EspoCRM Cloud plans, so Cloud subscribers do not pay for it as a separate line. Self-hosted installations add it as an extension, so its terms apply to your own deployment and need a separate check.
- Cloud inclusion: reports, BPM and workflows come with every Cloud plan, which removes one add-on line from the comparison.
- Self-hosted use: install the Advanced Pack as an extension and confirm its licensing terms and any fees for your use case on the extension page.
- Other extensions: the Sales Pack, VoIP, Google, Outlook, MailChimp, Zoom and Stripe integrations are separate official extensions to evaluate on their own.
- Automation effort: Formula Script powers before-save scripts, workflows and BPM. Rebuilding Salesforce automation in it is a one-time effort that the subscription does not cover.
- Like-for-like comparison: map each Salesforce add-on you pay for to an EspoCRM feature or extension before comparing totals.
Verify the Advanced Pack terms for self-hosted use before you count the feature in your budget.
Where your customer data lives and who controls access
Salesforce Sales Cloud runs as a vendor-hosted cloud service, so where customer records sit and who can sign in are largely set by the contract and the Salesforce identity configuration. EspoCRM can run on infrastructure you control or on its paid cloud, and the decisions below determine who holds the data and who can reach it.
Hosting model and control
Sales Cloud is delivered only as a Salesforce-operated cloud service, so the database, backups and upgrade timing are Salesforce's to run. EspoCRM is free to download and self-host, which places the database and the PHP application on servers you choose. Its cloud plans are a separate, paid option operated by EspoCRM. Confirm which model fits your residency and change-control rules before you compare cost, because the two choices carry different operating duties.
Data location and export control
Self-hosted EspoCRM stores records in MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, so the storage location and backup targets are yours to set. Salesforce's Data Export Service delivers org data as CSV files in a compressed archive, on a weekly or every-29-day cadence depending on edition. Plan your exit path in both directions: know which tables, attachments and audit data you can extract on demand, and test restores from your own backups.
OIDC sign-in with team mapping
EspoCRM supports OpenID Connect sign-in, with optional user creation on first login and mapping of identity provider groups to EspoCRM teams. It also supports backchannel logout and a fallback login method. Decide in advance whether accounts should be created automatically, which groups map to which teams, and which fallback method stays available if the identity provider is down. Confirm each setting against the version you deploy.
LDAP for Active Directory and OpenLDAP
The EspoCRM documentation describes LDAP authentication against Active Directory and OpenLDAP, which suits teams whose directory already governs staff access. Test how disabled directory accounts behave in EspoCRM, since a directory change alone may not end an active session. Agree on who owns the bind account, how its password rotates, and how directory groups translate into CRM roles before go-live.
Two-factor authentication conflicts with OIDC
EspoCRM's own two-factor authentication is not compatible with OIDC sign-in. If your policy requires a second factor for every CRM user, that requirement must be met at the identity provider rather than inside EspoCRM. Map this to your access control standard before you choose OIDC, and confirm how the identity provider enforces the second factor for API users and service accounts, which do not sign in interactively.
Compliance evidence and final decisions
Access controls, logging, backups and hosting records are the evidence that a compliance assessment will ask for. DeployOpen prepares these systems, controls and evidence for assessment, but it does not issue audit reports or certifications. Independent auditors and certification bodies decide whether your controls meet the applicable standard. Ask your auditor early which EspoCRM settings and records they expect to see.
Where Formula Script and the REST API replace Salesforce automation
Start by inventorying where your Salesforce logic actually runs, because the answer decides how much of it EspoCRM can absorb. Salesforce has retired Workflow Rules and Process Builder, so teams that relied on them now depend on Flow, Apex triggers or external integrations. EspoCRM covers the same ground with Formula Script, its built-in scripting language. Formula Script runs in before-save scripts configured in the Entity Manager, in API before-save scripts, and in workflows and Business Process Management (BPM). For each automation, record the trigger, the fields it reads and writes, and whether it calls another system. Simple field defaults and validations usually map to before-save scripts, while multi-step approvals usually map to BPM.
Reports and BPM are not part of the base open-source install in the way many buyers assume. The Advanced Pack is an official EspoCRM extension that provides reports, Business Process Management and workflows, and it is included in all EspoCRM Cloud plans. Confirm with EspoCRM whether and how the Advanced Pack is licensed for a self-hosted instance before you design around it, because the pricing page ties its inclusion to cloud plans. If your Salesforce reports or approval flows depend on features that only the Advanced Pack provides, put its licensing status into the written scope and the quote from your implementation partner. Also test whether your Formula Script logic stays within the limits of the scripting language, because anything that needs an outbound call to another system will sit in the integration layer instead.
The REST API is where most Salesforce integrations will be rebuilt. EspoCRM authenticates API requests with API keys, HMAC or basic authentication through dedicated API users whose role-based permissions limit what each integration can read or change. The documentation describes HMAC as the most secure option and advises against basic authentication, so choose HMAC for any production integration. Salesforce API allocations are set by edition and org, and EspoCRM does not charge per call on self-hosted installs. Rate limits, request concurrency and how the server behaves under bulk loads depend on your PHP, database and web server configuration, so measure them. Run a load test that mirrors your nightly syncs and confirm the throttling behavior against your own hosting before cutover. EspoCRM API documentation lists the endpoints and authentication options to check against your inventory.
What each option costs over time and what drives it
Salesforce bills recurring subscriptions by user and tier, while EspoCRM's open-source edition carries no license fee. The real comparison sits in the components around the software: hosting, data migration, integration rebuilding and the administration time that keeps a self-hosted PHP and database stack current.
Salesforce subscriptions and add-ons
Sales Cloud is billed per user per month, and the cost moves with seat count and edition. Add-ons, such as additional API capacity, storage or extra packages, are typically separate line items, so the full bill can differ from the headline per-user rate. Ask the vendor for a quote that lists every edition, add-on and renewal uplift per user across the term you plan to hold.
EspoCRM license and support model
EspoCRM is licensed under AGPL-3.0, and the open-source edition can be downloaded and self-hosted for free. Your recurring spend shifts to infrastructure and people, and any paid support or hosting contract is optional. Confirm whether you need extensions from the official marketplace, since some carry their own terms, and check the license obligations that apply if you modify and distribute the code.
Hosting, backups and availability
Self-hosting moves compute, storage, backups and monitoring onto your own cloud account or data center. These costs scale with user count, data volume and the availability you need, such as redundant application nodes or database replicas. Backups should be tested by restoring them, and the cost of retention periods and off-site copies should appear in your estimate.
Implementation and data migration
Migration is largely one-time work: exporting accounts, contacts, opportunities and custom objects, mapping fields to EspoCRM entities, and validating imported records. Effort rises with the number of custom objects, Apex-based logic and historical attachments. Ask the implementer for a written scope that names each object, the export method and the validation steps.
PHP and database administration
Running EspoCRM means keeping PHP, the web server, MariaDB or PostgreSQL, cron jobs for background tasks and the backup utility current. Upgrades between major releases need testing against your custom entities and Formula Script. This is recurring internal or partner effort, and it grows with customization. Ask who holds on-call duties, patch windows and the upgrade test plan.
Rebuilding integrations and automation
Salesforce flows, Apex triggers and AppExchange connectors do not move automatically. Each one needs a replacement in EspoCRM's Formula Script, workflows, Business Process Management or REST API integration, and each replacement needs its own testing and maintenance. Count the integrations in use today and request a quote that prices them individually, including any identity provider setup for OIDC or LDAP sign-in.
What a move from Salesforce to EspoCRM involves
The sequence moves accounts, contacts, opportunities and their history out of Salesforce, rebuilds the automation and sign-in that sales teams rely on, and ends with a tested cutover. Each step produces a checkable output, so the team knows when to move on.
Inventory objects, fields, automations and integrations
The Salesforce administrator and a sales operations lead list every object in use, its custom fields, page layouts, validation rules, flows, approval processes, reports and dashboards, and every connected application or AppExchange package. Each item is marked as keep, rebuild in EspoCRM, replace with the REST API or retire. The output is a signed-off inventory that shows which automations have no direct EspoCRM counterpart, so heavy Apex or AppExchange users can see the largest rebuild before any data moves.
Export data from Salesforce
Run a full export with the Data Export Service, or script repeatable extracts with Data Loader if you need scheduled or incremental pulls. The Data Export Service delivers CSV files in a compressed archive, on a weekly cadence in Enterprise, Performance and Unlimited editions, and every 29 days in Professional and Developer editions, so confirm your edition before planning the cutover window. Check which files and attachments each method includes. The output is a complete archive stored on your own servers, with record counts recorded per object for later reconciliation.
Map Salesforce objects into EspoCRM entities
Map standard objects such as accounts, contacts, leads and opportunities to EspoCRM's built-in entities, then decide how each custom object becomes a custom entity or a field on an existing one. Document the field types, required fields, lookup relationships and the stage values of each pipeline. Agree the mapping with the sales leaders who will use it. The output is a written field-level mapping document approved by the business owner, with each Salesforce ID kept in a dedicated field so records remain traceable.
Create entities and import CSV files in a test instance
Build the entities and fields in EspoCRM's administration tools on a test instance, then import the CSV extracts in dependency order: accounts first, then contacts, then opportunities and activities. Use the import function described in the EspoCRM documentation and check the result on a sample of records. Expect to fix date formats, picklist values and duplicate rows in the first runs. The output is a test import that matches the record counts from the Salesforce export within a documented tolerance, with the exceptions listed.
Rebuild Formula Script logic, reports and BPM
Rewrite each Salesforce flow, validation rule and approval process as EspoCRM Formula Script in before-save scripts, workflows or Business Process Management. Reports and dashboards need to be recreated, and the Advanced Pack provides reports, BPM and workflows in the EspoCRM Cloud plans, so confirm how it is licensed for your self-hosted install before you plan for it. Test each rule with sample records, including the edge cases that Salesforce handled through Apex. The output is a test log showing each rebuilt rule, its expected result and the actual result.
Set up OIDC or LDAP sign-in and API users
Connect EspoCRM to your identity provider with OpenID Connect, which supports user creation on first login and mapping of identity provider groups to EspoCRM teams, or with LDAP for Active Directory or OpenLDAP. Plan the fallback login method and remember that EspoCRM's own two-factor authentication is not compatible with OIDC. Create dedicated API users with role-based permissions for each integration, and prefer HMAC authentication. The output is a tested login for each role group and a list of API users with their permissions, each owned by a named person.
Run a parallel period and cut over
Run Salesforce and EspoCRM side by side for an agreed period, with new records entered in EspoCRM and reconciled against Salesforce daily or on a schedule the team sets. Confirm that background jobs run through cron or a scheduled task and that backups are in place using the installation tooling. Freeze Salesforce for writes at cutover, run a final delta export, and switch users and integrations. The output is a signed-off cutover checklist, a reconciliation report with no open discrepancies, and a retained Salesforce archive for the period your records policy requires.
Questions buyers ask before choosing EspoCRM over Salesforce
What drives the cost of self-hosting EspoCRM compared with Salesforce?
The license cost is zero, so the comparison comes down to the components you pay for. EspoCRM is licensed under AGPL-3.0 and the open-source edition can be downloaded and self-hosted for free, according to the EspoCRM pricing page. Salesforce Sales Cloud is billed per user, and EspoCRM Cloud is priced per user per month on its own plans, so the hosted option is a useful reference point for what seat-based pricing looks like. Your self-hosted costs are the server or cloud account, backups, the one-time migration, implementation, and the internal admin time that keeps the system patched and running. Costs go up with user count, data volume, the number of integrations and how many custom entities and automations you build. Ask any partner for a quote that lists each of these as a separate line, with what is one-time and what recurs each year.
How long does a migration from Salesforce to EspoCRM take?
The timeline depends on scope, not on EspoCRM itself. A team that uses standard accounts, contacts, leads and opportunities with a clean data set moves faster than one with heavy Apex code, many custom objects or dozens of AppExchange connections. The main drivers are how many objects and fields you move, how much data needs cleansing, how many automations must be rebuilt in Formula Script or BPM, the number of integrations to replace with the REST API, and how many people must sign off on the new process. Parallel running during cutover adds time but reduces risk. Ask for a timeline written against a fixed scope, with each phase and its dependencies listed, rather than a single end date.
Can an internal team run EspoCRM without outside help?
Yes, many teams run EspoCRM in-house, but the answer depends on your skills and capacity. The installation script for Ubuntu, Debian and Linux Mint deploys a Docker-based stack with Nginx and MariaDB, and the command.sh utility handles backups, restores and upgrades. Someone still needs to own the server, the PHP and database versions, cron jobs for background work, TLS certificates, backup testing and upgrades. Administration of users, teams, entities and workflows is more of an application skill. If your team lacks Linux operations or security experience, plan for outside support in the first year. DeployOpen plans, implements, hardens, backs up, upgrades and supports self-hosted platforms in your own infrastructure, with ongoing support available as a retainer.
Do reports and BPM require the Advanced Pack in EspoCRM?
For reports and Business Process Management, yes, these sit in the Advanced Pack, which is an official add-on. According to the EspoCRM Advanced Pack page, it provides reports, Business Process Management and workflows. It is included in all EspoCRM Cloud plans, so a cloud subscription already covers it. In a self-hosted deployment, you need to confirm the license terms for the Advanced Pack with EspoCRM before you plan around it, because its licensing is separate from the AGPL-3.0 core. Basic entity and field management, Formula Script before-save logic and the REST API are part of the core product. Check which of your Salesforce reports, approval processes and flows depend on the Advanced Pack features, and price that dependency into the decision.
How does sign-in work with existing identity providers in EspoCRM?
EspoCRM supports OpenID Connect sign-in since version 7.3, and the documentation also describes LDAP authentication, including Active Directory and OpenLDAP. The OIDC integration can create users on first login, map identity provider groups to EspoCRM teams, handle backchannel logout and keep a fallback login method. Note that EspoCRM's own two-factor authentication is not compatible with OIDC, so MFA must be enforced at your identity provider. Before you commit, confirm that your provider's claims, group names and logout behavior match what EspoCRM expects, and test the fallback account path so an identity outage does not lock out administrators.
Can our Salesforce API integrations be rebuilt on the EspoCRM REST API?
Most point-to-point integrations can be rebuilt, but each one needs its own design work. 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 method and basic authentication as not recommended, so plan for HMAC or API keys with least-privilege roles. Start with an inventory of every connected system, its data direction, its frequency and its error handling. Some Salesforce integrations rely on platform features such as Apex triggers or platform events that have no direct equivalent, so those need custom services or changes at the source system. Ask for a written integration map before you agree on scope.
What must our team provide during a EspoCRM migration?
The biggest factor in success is client-side time from people who know the business. You need named data owners who decide which records, fields and history to keep, and who approve data cleansing rules. You need documented sales processes, stage definitions, approval rules and reporting requirements, because these become Formula Script, workflows or BPM in EspoCRM. You also need an admin who can make decisions during testing, a sponsor who can settle conflicts between teams, and access to your identity provider, mail and integration owners. Ask for these responsibilities to appear in the statement of work with named roles, so delays can be traced to the party that caused them.
What should we check before deciding EspoCRM can replace Salesforce?
Check fit before cost. Confirm that your teams mainly use standard sales objects, and list every custom object, automation, approval, report and integration that Salesforce supports today. Confirm the EspoCRM server requirements that match your environment, including PHP 8.3 to 8.5 and a supported database such as MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, with cron for background jobs. Review the EspoCRM security documentation against your own control requirements. Then ask a partner for a fixed-scope proposal that includes a discovery phase. This keeps the decision based on a tested gap list instead of assumptions about what either product can do.
Official sources to check before deciding
Before you commit to EspoCRM, check the license and the current release line yourself. The espocrm/espocrm GitHub repository states the AGPL-3.0 license and publishes the release history, so confirm the version you plan to deploy and read its change notes for any breaking changes. Use the EspoCRM GitHub repository as the starting point, then compare the supported PHP and database versions against your own hosting standards before you pick an operating system image or database engine.
Next, read the EspoCRM pricing page and the server configuration docs side by side. The pricing page states that the open-source edition can be downloaded and self-hosted, and it lists the cloud plans and the Advanced Pack that comes with them. The server configuration docs list the PHP, database and web server combinations, and they note that cron or a scheduled task is required for background jobs. Ask your platform team to confirm that scheduling and backup procedures fit your change control before you size the environment. For the pricing details, EspoCRM pricing is the page to quote against.
Finally, review the security, OIDC and API documentation with your identity and integration owners. The OIDC page covers user creation on first login, team mapping, backchannel logout and the fallback login method, and it states that EspoCRM's own two-factor authentication is not compatible with OIDC, so confirm how your identity provider enforces MFA. The API page covers API keys, HMAC and basic authentication, and the security page sets out the hardening expectations. For the export side of your exit plan, compare these against Salesforce Trailhead's data export guidance so you know exactly what leaves Salesforce and in which format.
How DeployOpen evaluates, implements and migrates EspoCRM
DeployOpen starts with a written scope that tests whether EspoCRM fits your Salesforce usage, then plans, implements and hardens it inside your own cloud account, data center or air-gapped network. Engagements are fixed-scope, so deliverables and timelines are agreed in writing before work begins.
How we scope
- Inventory which Salesforce objects, fields, flows and integrations are actually in use today.
- Flag Apex, AppExchange packages and Salesforce-specific reports that need a decision before build.
- Define the hosting target, PHP and database versions, and the user counts that drive sizing.
- Agree the written scope, deliverables and timeline with you before any implementation starts.
How we build
- Install EspoCRM on your infrastructure, using the installation script or a hardened manual deployment.
- Recreate custom entities and fields in the Entity Manager, with Formula Script for required logic.
- Configure OIDC or LDAP sign-in against your identity provider and map groups to teams.
- Build REST API integrations with dedicated API users, using HMAC authentication and role-based permissions.
How we hand over
- Load and reconcile CSV extracts, with record counts and field-level checks signed off by your team.
- Document the configuration, scheduled jobs, backup and restore steps, and upgrade procedure.
- Run a parallel period and a cutover checklist so sales users can confirm pipelines and reports.
- Train administrators on roles, API users, extensions and the evidence to keep for your reviews.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Upgrades are tested in a non-production copy before they reach your live CRM.
- Security testing of the CRM and its API can be scheduled as part of the retainer.
- Quotes follow from the written scope, so ask for each component to be priced separately.

