Open-source alternative to HubSpot Sales Hub: the short answer
If your Sales Hub renewal, per-seat cost or data control concern has you looking for a replacement, Twenty, EspoCRM and SuiteCRM cover the core of pipelines and deal tracking that most sales teams use every day. Sequences, AI deal scoring and AI-powered forecasting in Sales Hub need more work to rebuild: Twenty offers workflow automation and EspoCRM offers workflows and reports through its Advanced Pack, while SuiteCRM relies on its own modules and extensions, so each automation you depend on should be tested against the candidate before you commit. HubSpot lists these Sales Hub capabilities on its Sales Hub page, and that list is the checklist to walk through with your sales operations lead.
The shortlist is driven mainly by your existing team's stack and hosting skills. Twenty is a TypeScript application on PostgreSQL and Redis, while EspoCRM and SuiteCRM are PHP applications on MySQL or MariaDB (EspoCRM also supports PostgreSQL 15). If your platform team already runs PostgreSQL and Redis with confidence, Twenty deserves a closer look; if your operators know PHP and MariaDB, EspoCRM or SuiteCRM will be easier to keep patched. Ask each vendor or your implementation partner which database versions and cron or worker processes the production setup requires, because these become your operating burden after go-live.
Mautic handles marketing, not sales. It is the right tool to replace HubSpot Marketing Hub, but it does not replace deal pipelines or sales sequences, so it is not a substitute for Sales Hub. This page covers only the Sales Hub module. HubSpot Marketing Hub is a separate decision with its own contact tier and data questions, so review it on its own track, and confirm how contacts will sync between your new CRM and any marketing platform before you retire either side.
Which open-source CRM covers each Sales Hub capability
This table maps HubSpot Sales Hub capabilities to what each open-source CRM documents today. Where a cell says confirm, test that item in a proof of concept before you commit. The main takeaway is that pipelines, import and APIs are workable on all three, while sequences, AI scoring and AI forecasting are gaps that usually need extra tooling or custom work.
| Sales Hub capability | Twenty | EspoCRM | SuiteCRM |
|---|---|---|---|
| Deal pipelines | Custom objects and fields defined as code can model deals and stages. Confirm pipeline board views in your version. | Opportunities with stage fields are standard. Confirm kanban-style pipeline views in the release you deploy. | Opportunities module with sales stages is standard. Confirm pipeline views and reporting in 8.10. |
| Lead management | Leads can be modeled as custom objects. Confirm assignment and conversion; routing rules need workflows. | Lead records with conversion to contacts and opportunities. Routing rules can use Advanced Pack workflows. | Leads module with conversion to contacts, accounts and opportunities. Confirm assignment rules and workflow depth. |
| Multi-channel sequences | Not confirmed as built in. Plan workflow steps plus a separate outreach tool for multi-channel cadences. | Not confirmed as built in. Advanced Pack workflows cover internal steps; outreach cadences need extra tooling. | Not confirmed as built in. Confirm sequence support; expect an outreach tool or custom development. |
| AI deal scoring | Not confirmed as built in. Plan a custom field with a workflow, or an external scoring model. | Not confirmed as built in. Formula Script can compute rules-based scores, but it is not AI scoring. | Not confirmed as built in. Expect an external scoring service or custom development. |
| AI forecasting | Not confirmed as built in. Reports on custom fields may cover basic pipeline forecasts. | Reports come with the Advanced Pack. Confirm whether forecasting is included in your release. | Not confirmed as built in. Confirm reporting options and whether a forecasting module exists. |
| Contact and deal import | Confirm CSV import of contacts and deals in your version. Use the API for records that do not map. | Import documentation covers record import. Confirm deal and association mapping in your release. | Confirm CSV import for accounts, contacts and opportunities. Plan a script for relationships. |
| Email and calendar sync | Listed as a built-in feature. Test sync with your mail provider before committing. | Google and Outlook are official extensions. Confirm their scope and fit for your mail platform. | Confirm email and calendar sync options and connectors for your mail platform. |
| APIs and automation | REST and GraphQL APIs and webhooks are included in all plans. Confirm rate limits in your version. | REST API with API key and HMAC authentication through dedicated API users. Basic authentication is not recommended. | Confirm REST API coverage and authentication options for your 8.x release. |
When Twenty, EspoCRM or SuiteCRM fits your team
The three open-source CRMs cover the same basic pipeline and contact work but differ in stack, licensing and where automation comes from. Your existing hosting skills and how much you want to build in code versus configuration usually decide the shortlist.
Twenty for a modern TypeScript stack
Twenty is a TypeScript application running on PostgreSQL and Redis, with a React frontend and both GraphQL and REST APIs. Its custom objects and fields can be defined as code, which suits teams that manage CRM schema through version control. The core is mostly AGPL-3.0 with an additional application exception, but files marked with an Enterprise license header are under a commercial license, so check which files your deployment will use before you build on them.
EspoCRM for PHP teams and built-in automation
EspoCRM is an AGPL-3.0 application on MariaDB, MySQL or PostgreSQL 15, with an installation script for Ubuntu, Debian and Linux Mint. Its Formula Script powers before-save logic, workflows and BPM, but reports and workflow features depend on the Advanced Pack, which is included in EspoCRM Cloud plans and is an add-on for self-hosted installs. Confirm the Advanced Pack licensing terms for your self-hosted edition before you plan sales automation around it.
SuiteCRM for large feature sets and LTS
SuiteCRM 8 is a PHP application on MariaDB or MySQL with an AGPL-3.0 core and offers LDAP and SAML sign-in. Moving from SuiteCRM 7 is a migration to a new environment, not an in-place upgrade, so the data move needs staging, backups and a review of customizations. Its long-term support path for version 7 is separate from version 8, so confirm which release line your team will standardize on before you commit.
Matching the stack to your team
The three products differ in database and runtime, so the team's existing skills decide much of the operating cost. PHP teams with MariaDB experience will find EspoCRM or SuiteCRM familiar, while TypeScript teams with PostgreSQL and Redis may prefer Twenty. Ask each candidate for its supported database versions and upgrade path before you choose.
Identity and SSO requirements
Authentication differs by product, and this often rules out an option early. EspoCRM supports OpenID Connect and LDAP, but its own two-factor authentication does not work with OIDC. SuiteCRM 8 supports LDAP and SAML, and its SAML implementation does not support IdP-initiated logout, so an identity provider sign-out will not end the CRM session. Test your sign-out flow with your identity provider before rollout.
Choosing the shortlist by your team's stack and hosting skills
If your team already runs PHP applications on MySQL or MariaDB, EspoCRM and SuiteCRM sit closest to your existing operations. Both are PHP applications on MySQL or MariaDB, so the same people who patch a web app and tune a database can usually run the CRM with little new tooling. EspoCRM documents PHP 8.3 to 8.5, with MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, and it needs cron or a scheduled task for background jobs.
- Patching: Plan for regular EspoCRM and PHP runtime updates, and confirm how each release handles schema changes before you schedule an upgrade.
- Backups: Back up both the database and the file tree. The EspoCRM installation script includes a
command.shutility for backups, restores and upgrades, which you should test on a copy before relying on it. - Hiring: PHP and MariaDB skills are widely available, which makes staffing the on-call rota easier than with less common stacks.
- Installation path: The installation script for Ubuntu, Debian and Linux Mint deploys a Docker-based stack with Nginx, MariaDB and optional Let's Encrypt certificates. Use it for a quick evaluation, then decide whether your standard build process should replace it.
Confirm with your team whether the installation script matches your host hardening baseline, including firewall rules, TLS settings and database access controls.
If your engineers already build and operate Node or TypeScript services on PostgreSQL and Redis, Twenty will feel familiar. Its backend uses NestJS with BullMQ, PostgreSQL and Redis, its frontend uses React, and it exposes GraphQL and REST APIs. The Docker Compose self-hosting guide runs a server, a worker, PostgreSQL and Redis, and asks for at least 2 GB of RAM because insufficient memory can crash processes.
- Patching: Twenty ships frequent releases, so budget regular upgrade windows. The v2.48.0 release on October 16, 2026 came one day after v2.47.0, which shows the cadence.
- Backups: Back up PostgreSQL as the system of record, and confirm how Redis data is handled, since queued jobs live there.
- Hiring: Node, TypeScript and PostgreSQL skills are common, but Twenty's codebase and its worker queue behavior still need a few people who know it well.
- Installation path: Use the Docker Compose guide for a single-host start. Size the host above the 2 GB minimum for production, because the stated minimum is for running the stack, not for growth.
Confirm whether your container platform and monitoring already cover the worker and Redis processes, which Compose setups often leave to the operator.
If you already run SuiteCRM 7, the choice is less about stack preference and more about a migration. SuiteCRM documents moving from version 7 to version 8 as a migration, not an upgrade: you set up a new SuiteCRM 8 environment and move the 7 data into it, after first bringing the 7 instance to the latest 7.14.x or later. SuiteCRM 7.15 is an extended support release with security fixes until January 2028, which gives you time to plan.
- Patching: Keep SuiteCRM 7 on 7.15 for security fixes while you plan. SuiteCRM expects to name a SuiteCRM 8 extended support release by Q3 2027, so track that before setting a long-term version.
- Backups: Back up files and the database before any step, and test restores on staging. The migration docs warn that non-core files under the public/legacy folder may be removed.
- Hiring: Your current administrators already know the data model, which is a practical advantage. Confirm whether they also have the PHP and Symfony skills that SuiteCRM 8 requires.
- Installation path: Build SuiteCRM 8 on a supported PHP, Apache or Nginx and MariaDB or MySQL combination from the compatibility matrix, then migrate on staging first.
Review every customization against SuiteCRM 8 before you agree on a migration scope, because customizations are often the largest part of the effort.
What sequences, AI scoring and forecasting need beyond the CRM
Sales Hub bundles multi-channel outreach sequences, AI deal scoring and AI-powered forecasting into the same product as deal pipelines, so most teams never price these features separately. Open-source CRMs cover some of the ground. Twenty supports custom objects, workflow automation and webhooks, EspoCRM offers workflows and Business Process Management through its Advanced Pack, and Formula Script can calculate fields and drive before-save logic. None of these is a like-for-like equivalent of Sales Hub's outreach or AI features. Treat each one as a capability to verify, not an assumption to carry into the business case.
Plan for three categories of extra tooling and evaluate each one separately. The first is a workflow automation platform for triggers and multi-step actions that a CRM's own rules handle poorly, such as enrollment into a cadence after a deal stage changes. The second is an email sequencing tool that manages send limits, sender reputation, reply detection and multi-channel steps. Sequencing is often where the largest operational risk sits, so ask how the tool records replies and opt-outs back into the CRM. The third is reporting and business intelligence for forecasting and deal scoring models, which usually means building the model on exported pipeline data rather than inside the CRM.
Before scoping, ask the implementation partner and each vendor to confirm in writing which of these capabilities work with your CRM version, which require custom code, and which need a separate license or hosting. Ask for a worked example using a sample pipeline from your own data, and record who maintains each integration after go-live. Those answers determine the recurring cost and the support model, and they are far easier to settle before data migration than after.
Running the new CRM beside HubSpot Marketing Hub
Many teams keep marketing on HubSpot or move it to Mautic while sales moves to a self-hosted CRM. Both systems then hold the same people and companies, so the sync direction, lifecycle ownership and duplicate rules must be settled before the first import. The cards below cover the decisions and the checks that keep the two systems consistent.
Choosing the sync direction
Decide which system is the source for each field before any job runs. A common pattern is the CRM owning company and deal data, while the marketing platform owns engagement fields such as email opens and form submissions. Write this down per field, because a two-way sync without field ownership quietly overwrites values on both sides. Ask the chosen CRM vendor or integrator which sync approach they support, since the Mautic Salesforce plugin is built for Salesforce and does not carry over to Twenty, EspoCRM or SuiteCRM.
Assigning lifecycle stage ownership
Lifecycle stage drives both marketing nurture and sales follow-up, so one system must be the authority. Let the CRM set Opportunity and Customer, because those stages depend on deals, and let the marketing platform set Subscriber, Lead and Marketing Qualified. Illustrative example: a contact marked as a customer in the CRM should stop receiving acquisition sequences in the marketing platform. Confirm how each target CRM stores lifecycle values before mapping them, because HubSpot's stage names are not identical to the field options in the new system.
Handling duplicate contacts
Duplicates appear when the same person arrives through a form, an import and a sales entry. Pick one matching key, usually a normalized email address, and document the merge winner for each field. HubSpot contacts can be exported and deduplicated, but the new CRM and Mautic will each apply their own matching rules, so test with a copy of the data. Keep a log of merged record IDs so that a later sync does not recreate deleted contacts.
Planning around the 100-record batch limit
HubSpot's CRM Contacts API batch endpoints accept up to 100 records per request, so a full-database sync needs a paged job that respects that ceiling. Add retry logic for rate and partial failures, and store a checkpoint so an interrupted run resumes instead of restarting. Also account for HubSpot's export limit when you seed the new system with a one-off file. Ask your integrator to show how the job behaves on a failed batch before go-live.
Keeping the Mautic import path separate
For one-time loads into Mautic, the CSV import UI maps columns automatically, and large files are better handled by the mautic:import console command run from cron, which processes 100 rows per batch by default. Use this path for historical contacts and keep live sync on a separate job, so that a large import does not compete with daily updates. Confirm the batch size and cron schedule in your own environment before you start the load.
Moving deals, contacts and users to a self-hosted CRM
This sequence moves Sales Hub pipelines, deals, contacts and users into a self-hosted CRM in an order that keeps data traceable at every step. The output is a reconciled staging copy, a verified cutover and a retired sales sequence configuration.
Inventory pipelines, stages and properties
The sales operations lead lists every deal pipeline, stage, required property, lead status, contact and company property, and custom object that the sales team uses in Sales Hub. Mark which fields drive reports, forecasts and sequences, because those are the fields the new CRM must reproduce. Confirm with the sales team which pipelines are still active. The step closes with a signed-off field map that lists each HubSpot property, its target field in the new CRM and its data type.
Choose the target CRM and stand up staging
Decide between Twenty, EspoCRM and SuiteCRM using the team's stack and hosting skills, since EspoCRM and SuiteCRM run on PHP with MySQL or MariaDB while Twenty runs on PostgreSQL and Redis. Install the chosen version in a staging environment that matches the production design, with backups configured from the start. For SuiteCRM 7 sources, treat the move to SuiteCRM 8 as a migration into a new environment, not an in-place upgrade. The step closes when staging runs, backups are tested with a restore, and the version and license are recorded.
Export HubSpot records in batches
The sales operations lead exports contacts, companies and deals from HubSpot as CSV, XLS or XLSX files, which arrive by email link. HubSpot limits exports to 300 per rolling 24 hours, so plan the export order around that limit and keep a log of each file, its record count and its date range. Export associations separately where the export does not include them, and use the HubSpot API for any object that record exports do not cover. The step closes when every export file is stored in an encrypted location and the record counts match the HubSpot totals.
Map objects and associations
The data owner maps HubSpot contacts to people, companies to accounts, and deals to opportunities, then defines how each association is rebuilt in the new CRM. Decide which owner, team and pipeline stage each record receives, and flag duplicate contacts and companies that need merge rules. Use the importer documentation for the chosen tool, such as the EspoCRM import guide, to confirm which fields and relationships it accepts. The step closes with a mapping document that the sales team has reviewed and that lists every rule for duplicates and orphaned records.
Import records and configure sign-in
The platform engineer imports the mapped files into staging, starting with companies, then contacts, then deals so that associations resolve correctly. In parallel, configure sign-in through OpenID Connect, SAML or LDAP, depending on the chosen CRM and the identity provider, and confirm that user groups map to teams or roles. For EspoCRM, OIDC is supported from version 7.3 and its own two-factor authentication is not compatible with OIDC, so plan MFA at the identity provider. The step closes when test users sign in through the identity provider and see only the records their roles permit.
Run a staging import with reconciliation
The sales operations lead compares record counts, owner assignments, pipeline stage totals, deal amounts and key timestamps between HubSpot and the staging CRM. Sample a set of deals and contacts across each pipeline and check their notes, attachments and associations by hand. Document every mismatch, fix the mapping or the import, and repeat the load until the differences are explained. The step closes with a reconciliation report that the sales leader approves in writing.
Rebuild automation and retire sequences
The CRM administrator recreates HubSpot workflows, deal stage rules and forecasting views using the target tool's native features, such as EspoCRM's Advanced Pack for reports and workflows or Twenty's workflow automation. Sequences that send multi-channel outreach need separate tooling, so confirm the outreach channel and sending provider before retiring them. Run a dry test on staging and confirm that each rule fires as documented. The step closes when every retired HubSpot sequence has a named replacement or a documented decision to stop it.
Cut over, verify and keep the HubSpot export
The team freezes HubSpot edits for the agreed window, runs a final incremental export and import, and repeats the reconciliation for records changed after the staging run. Switch users to the new CRM and confirm sign-in, pipeline views and permissions with a sample of sales users. Keep a read-only archive of the final HubSpot exports and the reconciliation reports, and retain them under the organization's records policy. The step closes when the reconciliation for the final delta is signed off and the archive is confirmed as restorable.
Questions buyers ask before replacing HubSpot Sales Hub
What does it cost to run a self-hosted CRM instead of Sales Hub?
The software itself can be free, so the recurring cost is the infrastructure and people who run it. Budget for hosting (a server or cloud instance sized for your user count), a PostgreSQL or MariaDB database, backups stored off the primary server, upkeep such as security patches and version upgrades, and staff time for administration. Twenty's pricing page states that its open source core can be self-hosted for free, and that its Pro plan is 9 US dollars per user per month and Organization is 19 dollars per user per month. EspoCRM's pricing page lists EspoCRM Cloud at 15 US dollars per user per month on Basic (minimum 3 users). Ask any partner for a quote that separates one-time setup from recurring hosting, support and add-ons, and compare it with your current Sales Hub seat cost, which depends on your edition and seat count.
How long does migrating HubSpot deals and contacts take?
Duration depends on the work involved, not on a single fixed number, so ask for a timeline only after a scope review. The main drivers are record volume, the number of custom properties and objects that must map to the new system, how many integrations push or pull data, and how many sequences and pipeline stages must be rebuilt by hand. HubSpot limits record exports to 300 per rolling 24 hours, so large exports can take several cycles, and the CRM Contacts API returns batches of 100 records per request. Plan for a staging run, reconciliation of counts and associations, and a parallel period before cutover. A fixed-scope written plan should state what is migrated, what is rebuilt and what is retired.
Can our team run a self-hosted CRM without outside help?
It can, if the team already operates the stack the chosen CRM needs. EspoCRM and SuiteCRM 8 are PHP applications, with EspoCRM on MySQL, MariaDB or PostgreSQL and SuiteCRM 8 on MariaDB or MySQL, while Twenty is a TypeScript application on PostgreSQL and Redis. Your existing hosting and database skills usually decide the shortlist. Consider who will handle cron jobs or scheduled tasks for background work, TLS certificates, backups and restore tests, and version upgrades. Teams without these skills often hire an implementation partner for the initial build and then keep an ongoing support arrangement. DeployOpen plans, implements, hardens, backs up, upgrades and documents self-hosted platforms in your own infrastructure, and most engagements are fixed-scope and agreed in writing before work starts.
What does the migration need from our internal team?
Expect to supply admin access to the current and target systems, named data owners who can decide which fields, pipeline stages and historical records matter, and a contact who controls the identity provider. Sales operations should confirm how deals, forecasts and sequences are used today, because those workflows are rebuilt rather than copied. Security or IT needs to approve hosting location, access controls and the sign-in method. Each stage needs a sign-off from a named owner: data mapping, test import, user acceptance testing and cutover. Ask the implementation partner to list these responsibilities in the written scope so that gaps show up before work starts.
Can AI deal scoring and forecasting be replaced by open-source tools?
Partly, and the answer depends on how the scoring is used. HubSpot Sales Hub lists AI deal scoring and AI-powered forecasting as capabilities, and most open-source CRMs do not ship an equivalent managed model. Open-source options can cover rule-based scoring and weighted pipeline reports. EspoCRM's Formula Script can run before-save logic and workflows, and Twenty supports workflow automation and custom fields defined as code. Forecasting from stage probabilities and historical close data is usually achievable with reports, but a predictive model trained on your data is a separate project. Confirm with any vendor or partner exactly which AI features they claim, what data they need and where it is processed before you accept a replacement.
Do we need SuiteCRM Ltd's paid services or Twenty's Enterprise plan?
No. The open-source cores of Twenty, EspoCRM and SuiteCRM can be downloaded and self-hosted without a paid plan. SuiteCRM Ltd sells optional services such as the SuiteASSURED support package, SuiteCRM Hosted, implementation, training and migration. Twenty's Enterprise plan, which starts at 50,000 dollars a year according to its pricing page, adds single-tenant isolation, IP allow-listing, SCIM provisioning and an SLA. Decide whether you need those features or a vendor support contract, and price them separately from the software. Independent implementation partners and internal staff can also provide these services. Check the license of each component before you choose, since Twenty uses AGPL-3.0 with an additional application exception and files under a commercial license header.
Which sign-in and security controls can a self-hosted CRM support?
Confirm the sign-in methods against your identity provider before choosing a CRM. EspoCRM supports OpenID Connect since version 7.3, including group mapping to teams and backchannel logout, and documents LDAP for Active Directory and OpenLDAP. However, EspoCRM's own two-factor authentication is not compatible with OIDC. SuiteCRM 8 supports LDAP and SAML, and its SAML implementation at version 8.7.0 and later does not support IdP-initiated logout, so signing out at the identity provider does not end the CRM session. Twenty's Organization plan lists SAML or OIDC SSO. Review API authentication too: EspoCRM describes HMAC as the most secure API method and basic authentication as not recommended.
How identity, API access and audit affect the replacement
Identity and access decisions often settle the CRM shortlist before features do, so check them early. 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. Its own two-factor authentication is not compatible with OIDC, so the identity provider must enforce MFA for every EspoCRM user. EspoCRM also documents LDAP authentication, including Active Directory and OpenLDAP. SuiteCRM 8 offers LDAP, enabled with AUTH_TYPE=ldap, and SAML, enabled with AUTH_TYPE=saml. The SuiteCRM 8.7.0 and later SAML implementation does not support IdP-initiated logout or POST binding to the logout service, so signing out at the identity provider does not end the SuiteCRM session. Twenty lists SAML or OIDC SSO on its Organization plan, so budget for that tier if single sign-on is required.
API access needs the same scrutiny. The EspoCRM REST API supports API key, HMAC and basic authentication through dedicated API users with role-based permissions. The EspoCRM documentation describes HMAC as the most secure method and does not recommend basic authentication, so integrations for sales sequences, enrichment or a marketing tool should use HMAC with a narrowly scoped API user. Twenty exposes REST and GraphQL APIs and webhooks on all plans, and the documentation for each candidate should be checked for token scopes and key rotation before any integration is built.
Audit logging and role-based access are the controls auditors and security teams ask about first, and the facts supplied do not confirm them for every candidate. Ask each vendor, or test in a staging instance, whether record changes, permission changes, exports and login events are logged, where those logs are stored and how long they are kept. Twenty lists audit logs on its Organization plan, and EspoCRM documents its security model in its administration guide. Confirm how each product handles role-based permissions for deals and exports before migrating. DeployOpen can plan, configure and document these controls and collect the evidence an assessor will request, but it does not issue audit reports or certifications; an independent auditor or certification body does that work.
How DeployOpen scopes a CRM replacement
The sequence turns an open-ended CRM question into a written scope, a tested data move and a handed-over system that your team can run, with a quote that follows from that scope.
Map how Sales Hub is used today
DeployOpen reviews which Sales Hub features your reps and managers rely on: deal pipelines, lead assignment, sequences, call and email logging, forecast views and reports. We also inventory the custom properties, the number of seats and editions, and the integrations that feed or read HubSpot data, such as marketing forms, support tools and the ERP. The output is a written usage inventory that separates features in daily use from features someone once set up and nobody opens, so the scope covers what the business needs.
Shortlist the open-source CRM candidates
Using the inventory, we compare Twenty, EspoCRM and SuiteCRM against your requirements for pipelines, automation depth, reporting, identity integration and hosting. The existing team's stack and hosting skills often decide the shortlist, so we confirm which database, runtime and backup skills your operations staff already have. The output is a short list with a stated reason for each option kept or dropped, and a list of capabilities you must confirm directly with the vendor or in a test instance, such as forecasting depth and sequence features.
Run a proof-of-concept import
DeployOpen loads a representative sample of contacts, companies and open deals from your HubSpot export into the shortlisted system on a non-production instance. We check field mapping, owner assignments, deal stages, duplicate handling and association links against the source records, and we record which items need manual work. The output is a proof-of-concept report that shows what moves cleanly, what needs transformation, and which automation rules must be rebuilt, so the fixed scope is based on tested results.
Agree the fixed scope in writing
Before implementation starts, DeployOpen and your team sign a written scope that names the chosen CRM, the workflows and pipelines to rebuild, the integrations to connect, the data to migrate and the items excluded. The scope also lists the deliverables, the acceptance checks and the decisions that remain with your organization. A quote follows from this written scope. DeployOpen does not publish a price list, so the quote reflects the agreed work rather than a standard package.
Implement and integrate the chosen CRM
DeployOpen installs the CRM in your infrastructure, configures pipelines, roles and permissions, and rebuilds the agreed automation. Integrations are connected as scoped, for example identity sign-in through your existing provider or the data flow to your marketing platform. Extra automation tooling is added only where the scope requires it. The output is a configured staging environment with a test log showing that each agreed workflow and integration behaves as specified, ready for user acceptance testing.
Harden, back up and test recovery
We apply the hardening controls defined in the scope, such as access restrictions, administrative account separation, TLS configuration and patch routine, and set up scheduled backups of the database and files. A restore test is run against a separate environment to confirm that the backup can be recovered. The output is a hardening record, a backup schedule and a restore test report, which your security team can review and retain as evidence for internal or external assessments.
Hand over and cut over
After user acceptance, the production data load is run, the final import is checked against the proof-of-concept criteria, and users are trained on the agreed processes. DeployOpen documents the system, runbooks for backup, restore and upgrades, and the open items. The output is a signed handover, a documented cutover record and a runbook your administrators can operate. If you want continued patching, upgrades and monitoring, a support retainer can be agreed separately and scoped in writing.
How DeployOpen delivers and supports Sales Hub replacement
DeployOpen plans, implements, integrates, hardens, backs up, documents and supports a self-hosted CRM inside your own cloud account, data center or air-gapped network. For a Sales Hub replacement, that means the CRM, its database (PostgreSQL for Twenty, MariaDB or MySQL for EspoCRM and SuiteCRM 8), the reverse proxy, the background worker or cron jobs, backups and the identity integration all run under your control. Before any build starts, the written scope should name the chosen platform, the sales workflows to rebuild (pipelines, sequences, forecast views and the automation rules behind them), the identity provider for SSO, and the data sources to migrate. Ask DeployOpen to show how each item maps to a deliverable and a named acceptance check.
Hardening and testing come before go-live, not after. Typical hardening covers role and team permissions for sales users and managers, API credentials (for EspoCRM, dedicated API users with HMAC rather than basic authentication), SSO configuration, backup and restore testing, and upgrade procedures tied to the vendor's release cadence. DeployOpen runs security testing on the resulting application and its APIs, and infrastructure testing on the hosting layer, and reports findings with fixes you can verify. DeployOpen also prepares evidence for compliance assessments, such as configuration records, access reviews and change logs. It does not issue audit reports, attestations or certifications. Independent auditors and certification bodies do that work, so confirm early which evidence your assessor expects.
Engagements are fixed-scope. Scope, deliverables and timelines are agreed in writing before work starts, and DeployOpen provides a quote from that written scope rather than a published price list. Ongoing support, upgrades and continuous testing are available as retainers, which is where most of the recurring cost sits after the one-time migration. Ask for the retainer terms in writing, including response expectations, which upgrades are covered, how major releases are handled and whether testing repeats after each change. DeployOpen is not a partner, reseller or certified provider of any CRM vendor, so the vendor relationship and licensing for any commercial add-ons remain your decision.

