Which open-source option replaces HubSpot Sales Hub seats
If per-seat costs or onboarding fees on Sales Hub Professional or Enterprise are pushing your budget up, and you want pipeline data on your own servers, EspoCRM, SuiteCRM 8 and Twenty can each cover core CRM and pipeline work, with meeting scheduling handled by a separate self-hosted booking tool. Sales Hub's Starter tier is listed at 7 US dollars, Professional at 90 dollars and Enterprise at 150 dollars per seat per month with annual billing, with a free tier for up to 2 users, according to HubSpot's Sales Hub pricing page. That same page lists a required one-time onboarding fee of 1,500 US dollars for Professional and 3,500 dollars for Enterprise. Confirm current figures on the pricing page before you build a model, since tiers and fees change.
Do not assume every Sales Hub feature transfers. Sequences, quotes, forecasting and meeting links each need an explicit check against the candidate platform. EspoCRM's official extensions include a Sales Pack, and its Advanced Pack, included in all EspoCRM Cloud plans, provides reports and workflows, but you should verify which of these you need and whether they are available in your self-hosted edition. SuiteCRM and Twenty have their own gaps. List every sequence, quote template, forecast view and calendar link your sales team uses today, then map each one to a named component (a built-in module, an extension, a workflow or a separate tool) before you commit.
Ask each vendor or implementation partner to confirm, in writing, how each of these features is delivered in your chosen edition. Treat any feature without a confirmed owner as a rebuild item with its own cost, and include the Sales Hub seat and onboarding costs you would avoid in the same model so that the comparison reflects what you actually pay today.
How Sales Hub capabilities map to open-source options
This table maps each Sales Hub capability to EspoCRM, SuiteCRM 8 and Twenty, with a self-hosted scheduling tool for meeting links. Read each cell as Direct, Partial, Plugin or Gap, and confirm every marked item in the product version you plan to run. The main takeaway is that all three platforms cover core sales records, while sequences, quotes and booking pages usually need an add-on or a separate tool.
| Sales Hub capability | EspoCRM | SuiteCRM 8 | Twenty |
|---|---|---|---|
| Contacts and companies | Direct: contacts, accounts and leads with REST API access | Direct: contacts and accounts modules with relationships | Direct: people and companies as objects with custom fields |
| Deals and pipelines | Partial: opportunities with sales stages; confirm pipeline board view | Partial: opportunities with sales stages; confirm board view in your release | Partial: custom deal objects and views; confirm pipeline layout |
| Sequences (automated email cadences) | Plugin or gap: confirm what the Sales Pack covers before relying on it | Gap: plan a separate sequencing tool or Mautic for cadences | Gap: workflows can send email, but confirm cadence support before relying on it |
| Quotes and product catalog | Plugin or gap: confirm quote support in the Sales Pack or a custom build | Gap: expect custom module work for line items and quote documents | Gap: model line items and quote documents as custom objects |
| Meeting links and booking pages | Gap: link a self-hosted scheduling tool from contact and deal records | Gap: link a self-hosted scheduling tool from contact and deal records | Partial: calendar sync is supported; booking pages need a scheduling tool |
| Forecasting | Partial: build forecasts from reports; confirm weighted forecast options | Partial: confirm forecast and reporting options in your release | Partial: build forecast views from custom fields; confirm weighting options |
| Email tracking and sync | Plugin: Google and Outlook extensions are official; confirm tracking features | Partial: confirm email integration and tracking options in your release | Partial: email and calendar sync supported; confirm open and click tracking |
| Reporting and workflows | Plugin: Advanced Pack adds reports, BPM and workflows; confirm self-hosted licensing | Partial: confirm report, dashboard and workflow scope in your version | Direct: workflow automation included; confirm available triggers and actions |
Which CRM fits your team: EspoCRM, SuiteCRM 8 or Twenty
The three self-hosted CRMs below cover the same core need, contacts, accounts, deals and pipelines, but they differ in licensing terms, database stack and API design. The scheduling card covers the one Sales Hub function none of them replaces directly, so plan for it separately.
EspoCRM: PHP and MySQL-family stack
EspoCRM is licensed under AGPL-3.0 and runs on PHP with MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15. Its REST API supports API key, HMAC and basic authentication through dedicated API users, and the docs describe HMAC as the most secure method. Its official Advanced Pack adds reports, Business Process Management and workflows, and it is included in all EspoCRM Cloud plans, so confirm whether your self-hosted build needs it for the Sales Hub workflows you plan to rebuild. Trade-off: the install script deploys a Docker-based stack with Nginx and MariaDB, which suits a small ops team, but background jobs require cron or a scheduled task.
SuiteCRM 8: Angular and Symfony stack
SuiteCRM 8 pairs an Angular frontend with a Symfony backend and is licensed under AGPL-3.0, with SuiteCRM Ltd selling optional support such as SuiteASSURED. Its 8.10 line supports PHP 8.2 to 8.4 with MariaDB or MySQL, and it can use LDAP or SAML login. Trade-off: SAML in 8.7.0 and later does not support IdP-initiated logout, so logging out at the identity provider does not end the SuiteCRM session. Moving from SuiteCRM 7 is a migration to a new environment rather than an upgrade, so budget staging time and review customizations under the public/legacy folder.
Twenty: TypeScript, PostgreSQL and Redis
Twenty's core is mostly AGPL-3.0 with an additional application exception, and files with an Enterprise license header fall under a commercial license. Its backend uses NestJS with BullMQ, PostgreSQL and Redis, and it exposes GraphQL and REST APIs with webhooks. Pricing lists Pro at 9 dollars and Organization at 19 dollars per user per month, with row-level permissions, SAML or OIDC SSO and audit logs on Organization. Single-tenant isolation, IP allow-listing, SCIM provisioning and an SLA sit in the Enterprise tier. Trade-off: the Docker Compose self-hosting guide asks for at least 2 GB of RAM, and the stack is new to PHP-focused teams.
Scheduling: confirm the meeting link replacement
Sales Hub meeting links and booking pages have no direct equivalent inside EspoCRM, SuiteCRM 8 or Twenty, so you will need a separate self-hosted scheduling tool for invitee booking and calendar sync. Check whether it writes meeting records back to your CRM, how it handles time zones and whether it supports your calendar provider and single sign-on. Confirm each of these with the scheduling vendor and in a test environment before you retire the Sales Hub meeting links, because the CRM side of the integration is usually custom work.
Which Sales Hub features you will rebuild or drop
Sequences, quotes, forecasting and meeting links are the Sales Hub features most likely to need work after a move, and none should be assumed to carry over. Start by listing which of them your sales team uses every week. Sequences come first: they are timed email cadences with task creation and reply tracking. Neither EspoCRM nor Twenty should be treated as a drop-in replacement, so confirm whether the official Google or Outlook extensions, or the Advanced Pack, cover cadence steps and reply detection in your target version. Meeting links usually sit outside the CRM, so plan a separate scheduling tool and test that calendar sync attaches meetings to the right contacts and deals. Twenty lists email and calendar sync as a core feature, so confirm how deep that sync goes for your mail provider.
Quotes and forecasting usually need more design work than sequences. Quotes depend on product records, line items and document templates, and the sources reviewed here do not confirm a built-in quote generator in either EspoCRM or Twenty. Treat quote generation as a build item: a document template with merge fields, a product catalog, and an approval step, or a document tool connected through the API. For forecasting, rebuild the pipeline with amounts, close dates and stage probabilities stored as fields, then create reports for reps and managers. In EspoCRM, reports come from the EspoCRM Advanced Pack, which the pricing page says is included in cloud plans, so confirm the licensing position for a self-hosted install.
Most rule logic you move out of Sales Hub will land in EspoCRM's Formula Script, workflows and Business Process Management, or in Twenty's workflow automation. Formula Script runs in before-save scripts configured in the Entity Manager, in API before-save scripts, and in workflows and BPM, so a rule such as setting a next-step date when a deal changes stage belongs there. Workflows and BPM come from the Advanced Pack, so include that extension in the self-hosted design. Before go-live, build a feature matrix with one row per Sales Hub feature your team uses, a column for the exact release, and a column for the test result. Confirm each row against that release, since EspoCRM 10.0.10 and Twenty v2.48.0 are both recent. Mark unused features as drops, and record who approved each drop.
Running the new CRM alongside the rest of your suite
Moving sales records out of HubSpot rarely happens in isolation. Marketing email, ticketing and identity usually stay in place for a while, so the new CRM has to sign in the same people, expose data safely and hand records to the tools that remain. The cards below cover the decisions that connect EspoCRM, SuiteCRM 8 and Twenty to the rest of your stack.
EspoCRM sign-in through OIDC or LDAP
EspoCRM supports OpenID Connect sign-in from version 7.3, with optional user creation on first login and mapping of identity provider groups to EspoCRM teams. It also documents LDAP authentication, including Active Directory and OpenLDAP. Confirm which directory is the source of truth, how groups map to teams, and which fallback login method you keep for administrators. EspoCRM's own two-factor authentication does not work with OIDC, so decide where MFA is enforced before cutover.
SuiteCRM 8 LDAP or SAML login
SuiteCRM 8 can authenticate against LDAP, built on Symfony Security LDAP authenticators and enabled with AUTH_TYPE=ldap, or against SAML, enabled with AUTH_TYPE=saml. The SAML path has a known gap: from SuiteCRM 8.7.0, IdP-initiated logout and POST binding to the logout service are not supported, so signing out at the identity provider does not end the SuiteCRM session. Plan a session timeout or a user-facing logout step, and test this with your identity team before go-live.
Twenty SAML or OIDC on Organization
Twenty's Organization plan includes SAML or OIDC single sign-on, along with row-level permissions and audit logs. The open source core can be self-hosted for free, but identity federation is a paid-plan feature, so the SSO decision affects licensing as well as configuration. Ask Twenty which SSO features are on each plan, and confirm how user provisioning and deprovisioning will work when an employee leaves, since SCIM provisioning is listed only on Enterprise.
REST API authentication choices
EspoCRM's 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 basic authentication as not recommended, so integrations should use dedicated API users with the narrowest role that works. Twenty exposes both GraphQL and REST APIs with webhooks on all plans. Document every integration credential, its owner and its rotation process, because these keys often outlive the staff who created them.
Syncing records to Mautic
If marketing email stays in Mautic, the sync design decides who owns contact status, consent and unsubscribe state. Pick one system as the master for each field, and map identifiers such as email address and CRM record ID before the first sync. Run a small illustrative set of contacts through both systems and check that an unsubscribe in one reaches the other within the window your consent policy requires. Ask your Mautic and CRM developers to document the webhook or API calls used in each direction.
Handing tickets to Zammad
If support remains in Zammad, the CRM needs a stable link to each customer organization and ticket reference, not a copy of ticket bodies. Decide which fields the sales team needs to see, such as open ticket count or renewal risk, and how those values refresh. Records moved out of HubSpot Service Hub also need a clear rule for which system holds the conversation history. Test the handoff with real support workflows and confirm that customer data in both systems follows the same retention and access rules.
How to move Sales Hub deals, contacts and pipelines
This sequence moves contacts, companies, deals and their associations out of HubSpot and into a self-hosted CRM with pipelines that match how your team sells. It ends with a reconciled dataset, a tested cutover and a retirement date for the HubSpot seats.
Inventory pipelines, stages and properties
Sales operations or the HubSpot admin lists every deal pipeline, stage, custom property, association label and required field in use, and marks which ones reports, forecasts and automations depend on. Record counts per object so you can check them later. Confirm the inventory with the sales leads, because properties that look unused are often used by a workflow or a report. The step is done when each property has an owner, a keep, merge or drop decision, and a target field name in the new CRM.
Export records with associations from HubSpot
A user with export permission runs CSV or XLSX exports of contacts, companies and deals with their property values and associations. Plan the batches around HubSpot's limits of up to 300 exports in a rolling 24-hour window and up to three exports running at once, and keep a log of each file and its row count. Store the raw exports in an encrypted location with restricted access, since they contain personal data. The step is done when the record counts in the files match the counts from the inventory.
Map fields, owners and associations
Build a mapping sheet that connects each HubSpot object and property to an EspoCRM or SuiteCRM field or module, including owners, teams, lifecycle stages and the association links between contacts, companies and deals. Decide how duplicate contacts and companies are merged and which record wins when fields conflict. Have a sales lead sign off the mapping before any import runs. The step is done when every exported column has a documented destination or an explicit reason for being dropped.
Build pipelines, stages and access rules in the target
The CRM administrator creates the deal pipelines, stage order, required fields, teams and role-based permissions in the target system, matching the mapping. For SuiteCRM 8 or EspoCRM, set up the staging environment first and test the stage definitions against sample records. Confirm that users see only the records their role allows before importing live data. The step is done when a test deal can move through every stage and the permission checks pass for each role.
Import into staging and reconcile counts
Load the mapped files into a staging instance first, then compare record counts, association links and sample field values against the HubSpot exports. Investigate every mismatch, such as deals without a company or contacts with malformed emails, and fix the mapping rather than editing data by hand. Repeat the import until the reconciliation report shows no unexplained differences. Keep the import scripts and their logs so the run can be repeated. The step is done when the reconciliation report is signed off by the sales lead.
Test in staging and back up before migrating
The administrator takes full file and database backups of the target before the production import and tests restore on a separate copy. For SuiteCRM, the migration documentation advises testing on a staging instance, backing up files and database, and reviewing customizations because the migration may remove non-core files under the public/legacy folder. If you are moving from SuiteCRM 7 instead of starting from scratch, treat it as a migration to a new SuiteCRM 8 environment, not an upgrade. The step is done when a restore has been tested and the customization review is complete.
Run a parallel period and cut over
Sales reps work in the new CRM while HubSpot stays read-only or in sync for a defined period agreed in advance, so that reports and forecasts can be compared between the two systems. Track any records changed in HubSpot during the period and re-import them through the same mapping. On cutover day, freeze HubSpot edits, run the final delta import, switch integrations and email logging, and confirm sign-in for every user. The step is done when the final reconciliation matches and the team has confirmed the new system as the system of record.
Retire HubSpot seats after verification
Keep a final archive of the HubSpot exports and the reconciliation reports, then confirm with your HubSpot account owner how long data remains accessible and what happens at contract end. Remove seats and integrations only after the archive is verified and the business has agreed the retention period. Ask your legal or compliance team what records must be retained and where. The step is done when the archive is stored, the seats are released and the retention decision is written down.
What the self-hosted option costs beyond licence fees
The licence line is zero for EspoCRM, SuiteCRM and Twenty's open-source core, so the real comparison is the bundle of recurring and one-time costs that sit around it. On the HubSpot side, the Sales Hub pricing page lists Starter at 7 US dollars, Professional at 90 dollars and Enterprise at 150 dollars per seat per month with annual billing, plus a free tier for up to 2 users. Professional and Enterprise also carry a required one-time onboarding fee of 1,500 US dollars and 3,500 dollars respectively. Ask your HubSpot account team to confirm these figures against your seat count and billing term, and to state whether any onboarding fee applies at renewal or only at the first purchase.
On the self-hosted side, the costs fall into a few components. Hosting and backups recur every month and are driven by the number of users, the database size and how often you back up. Implementation, configuration of pipelines and roles, and data migration are mostly one-time, but scale with the number of custom properties, associations and the volume of history you choose to carry over. Paid extensions and support are optional recurring costs: SuiteCRM Ltd sells SuiteASSURED support, implementation, training and migration services, and EspoCRM Cloud is priced per user, though self-hosting the open-source edition is free. Admin time and training are often the largest recurring line, because someone must patch, back up and restore the system. When requesting a quote, ask each vendor or partner to split the price into one-time work, first-year support, and annual run costs, and to state who performs upgrades and restores.
Before you compare totals, check the items that are easy to miss. Plan for a parallel run and for the time users need to learn new screens. Confirm whether your current Sales Hub seats include features you will need to rebuild, such as sequences or meeting links, and price those rebuilds separately from the CRM itself. Also ask for the cost of a restore test, because a backup you have never restored is an unpriced risk. A written scope with named deliverables makes these lines comparable across bids.
Questions buyers ask before replacing Sales Hub
How much effort does moving off HubSpot Sales Hub take?
The effort depends mostly on how much history you carry over, how many custom properties and pipelines you run, and how many automations must be rebuilt. A team with a small contact base, one pipeline and few workflows has a much lighter job than a team with years of deal history, several associated object types and reporting that feeds other systems. Start by inventorying properties, pipelines, sequences, workflows and integrations in your HubSpot portal, then decide which records must move and which can stay archived. Ask any implementation partner to base the quote on that written inventory, and confirm which scope items are one-time and which recur after cutover.
Can our own team migrate from HubSpot without outside help?
Yes, for a simple sales portal, a team with a database or platform administrator can often do the work in-house. The usual split is that internal staff own the business rules, pipeline stages and data decisions, while technical staff handle hosting, installation, import scripts and identity integration. Outside help is most useful where you need a controlled cutover, custom field mapping, SSO and LDAP or SAML wiring, or a tested backup and restore plan. Confirm internally who will be on call after go-live, because EspoCRM and SuiteCRM both need scheduled background jobs and regular patching.
Can sequences and quotes be rebuilt in an open-source CRM?
Partly. EspoCRM covers pipelines, workflows and reporting through its Advanced Pack, which is included in EspoCRM Cloud plans and is an official add-on for self-hosted instances as well. Sales Hub sequences, quote templates with e-signature and meeting links usually need separate tools, so treat each one as a gap to close. Map each HubSpot feature to a specific open-source extension or external service, then test it with a real sales workflow before you cut over. Confirm with the vendor which official extensions match your needs, and confirm licensing for any third-party tool you add.
How does EspoCRM Cloud pricing compare with self-hosting?
EspoCRM Cloud is priced per user per month, with published Basic, Enterprise and Ultimate plans at 15, 25 and 69 US dollars, each with a minimum user count, according to the EspoCRM pricing page. The open-source edition can be downloaded and self-hosted for free, so the comparison is between those per-user fees and your own hosting, backup, patching and admin time. Self-hosting shifts cost to recurring internal or contracted labor and infrastructure, while cloud shifts it to the subscription. Ask for a three-year model that lists each component separately, and remember that HubSpot Sales Hub adds one-time onboarding fees of 1,500 US dollars for Professional and 3,500 dollars for Enterprise, per HubSpot's pricing page.
What does the migration need from our internal staff?
Plan for three groups of people: a business owner who signs off on pipeline stages, required fields and data retention, a technical owner who runs hosting and integrations, and a sales operations lead who checks the imported data. EspoCRM runs on PHP with MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, on Apache, Nginx or IIS, and needs cron or a scheduled task for background jobs. Your team must also own backups, upgrades and user access. Confirm who has administrative access to the server, who approves changes and how staff will be trained before go-live.
How do we get around HubSpot export limits when moving data?
HubSpot lets users with export permissions export records such as contacts, companies and deals as CSV, XLSX or XLS files, but it allows up to 300 exports in a rolling 24-hour window and up to three exports running at once, per the HubSpot Knowledge Base. Large portals therefore need a plan that splits exports by object type and date range, tracks which files are complete, and checks row counts and associations after each batch. Confirm how associations are exported in your portal before you design the import, since they must be rebuilt on the new side. Test the full process on a copy of a subset of records first.
Which EspoCRM features need a security review before go-live?
Start with authentication, because EspoCRM supports OpenID Connect sign-in since version 7.3 and LDAP authentication, including Active Directory and OpenLDAP. Its own two-factor authentication is not compatible with OIDC, so confirm how your identity provider will enforce MFA. The REST API supports API key, HMAC and basic authentication, and the documentation describes HMAC as the most secure method and basic authentication as not recommended. Review API user roles, backups, and the Formula Script used in before-save scripts and workflows, since changes there can alter stored data.
When to keep HubSpot Sales Hub
Keep HubSpot Sales Hub when the cost of running your own CRM stack would exceed the seat and onboarding fees you already pay. Self-hosting EspoCRM, SuiteCRM or Twenty moves hosting, patching, backups, upgrades and the authentication setup onto your team or a partner, and that work recurs every quarter. If nobody on the team has run a PHP or PostgreSQL service in production, or no one can own on-call for a CRM, the managed SaaS model is a sound choice even though it carries per-seat fees. Confirm the skills gap honestly before you commit: ask who will apply EspoCRM or SuiteCRM releases, restore a backup in a test environment and rotate database credentials.
HubSpot's value is also its bundled ecosystem. If your marketing runs on HubSpot email, forms, lead scoring and workflows that write back to deals, the CRM is only one part of the system. Moving the sales records without the marketing layer means rebuilding those integrations on Mautic or another tool, and the sibling migration guides describe that split. Before you decide, list every HubSpot integration your sales and marketing teams use daily, then check whether each has a supported connector or needs custom development. A single missing connector can outweigh the license savings.
Fast-moving sales automation is the third case. If your reps depend on sequences, meeting links, quote templates and forecasting that change every quarter, and your RevOps team edits them without engineering help, self-hosting adds a change process that may slow them down. Open-source platforms can cover many of these needs through workflows, formula scripts and extensions, but each one needs a build and a test cycle. Ask your sales operations lead to name the five automations they change most often, then estimate how many of those each candidate can do without developer time.
How DeployOpen scopes and delivers a Sales Hub replacement
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 Sales Hub replacement, we start from the pipelines, sequences, quotes and meeting workflows your team actually uses, then build and document them on the CRM you choose.
How we scope
- Inventory which Sales Hub features your team uses, including sequences, quotes, meeting links and forecasting, and which ones you can drop.
- Agree the CRM candidate, hosting location, identity provider and data sources in a written scope before any work starts.
- Confirm the export path from HubSpot, including file formats, association handling and export rate limits, with a fixed deliverable list.
How we build
- Install and configure the chosen CRM in your cloud account, data center or air-gapped network, with the database and cron jobs it requires.
- Rebuild pipelines, stages, custom fields and sales automations, and connect scheduling and email sync using open-source tools you approve.
- Test imports on a staging instance, check record counts and associations, and run security testing on the application and its API.
How we hand over
- Deliver written documentation covering architecture, configuration, user roles, API users and the sales workflows that were rebuilt.
- Hand over backup and restore procedures, upgrade steps and a list of features that were dropped or moved to another tool.
- Walk your administrators through daily operation, so your team can run the system after the engagement closes.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover, scoped in writing.
- Upgrade planning follows the vendor's release cadence, with staging tests before each production change.
- Compliance readiness work, such as access control and log evidence for your assessors, is prepared for your independent auditors, who issue any reports.

