What does a CRM cost when you self-host, build with a partner or buy per seat?
The software itself is free to self-host under open-source licenses, so the real comparison is total cost: hosting, configuration, integrations, data migration, training and support. A team weighing Salesforce, HubSpot, EspoCRM, Twenty or SuiteCRM should set license prices beside these labor and infrastructure lines, not against them. The reference points are the published per-seat prices: Salesforce Sales Cloud lists Starter Suite at $25 and Pro Suite at $100 per user per month, HubSpot Sales Hub lists Professional at $90 per seat per month with an annual commitment and Enterprise from $150, EspoCRM Cloud lists Basic at $15 per user per month with a minimum of 3 users, and Twenty lists Pro at $9 and Organization at $19 per user per month. Subscription cost scales with every seat you add, while a self-hosted server mostly does not, so the gap widens as headcount grows.
Self-hosting moves the bill from the vendor to your own budget. Recurring costs include cloud or data center capacity, backups, monitoring, patching, and staff or partner time for upgrades. One-time costs include the initial configuration, custom objects and fields, email and calendar sync, SSO setup, the import of accounts and contacts, and training. The main cost drivers are the number of integrations with ERP, telephony and billing, the volume and quality of legacy records, and how much custom workflow the business needs. A partner-built CRM shifts those one-time costs into a fixed-scope statement of work, while SaaS keeps them small but keeps the per-seat fee running.
Before comparing quotes, ask each vendor or partner to price the same written scope: seat count for three years, hosting model, number of integrations, migration volume, training sessions and the support tier, including response times. Confirm which features are paid, such as the Advanced Pack included in EspoCRM Cloud plans or Enterprise features like SCIM provisioning in Twenty, because these change the comparison. Also confirm the SuiteCRM support package and hosting options directly with SuiteCRM Ltd, since its paid services are separate from the free software. Build the model over the same period you would sign a SaaS contract, and include who maintains the platform after the project ends.
Which cost components apply to in-house, partner and SaaS CRM?
This table compares who is paid for each cost component under an in-house self-hosted CRM, a partner-built CRM and per-seat SaaS, and whether each cost is one-time or recurring. Read each row as a question to put to your own team, your partner or your SaaS vendor before you compare totals. The main takeaway is that self-hosting removes the per-seat licence but moves hosting, configuration, integration and compliance work onto your side or a partner's.
| Cost component | In-house self-hosted | Partner-built | Per-seat SaaS |
|---|---|---|---|
| Software licence | No licence fee for the open-source core (SuiteCRM, EspoCRM, Twenty); paid vendor services are optional | Usually the same open-source licence; partner bills for build work, not the software | Recurring per-user subscription; tiers differ by feature set, for example EspoCRM Cloud lists per-user plans |
| Hosting and infrastructure | Recurring cloud or data center costs paid to your provider; your staff patch and back up | Recurring hosting, often billed by the partner or your cloud account; confirm who holds the accounts | Included in the subscription; data location and tenancy options vary by vendor, so confirm them |
| Configuration and customization | Internal staff time, one-time for the initial build and recurring for changes | One-time fixed-scope project fee, plus any retainer for later changes | Often one-time administrator time; advanced items may need paid add-ons or vendor services |
| Integrations (ERP, email, telephony, billing) | Internal engineering time to build and maintain connectors | One-time build fee; recurring maintenance if covered by a retainer | Connectors may be marketplace apps with recurring fees, or custom work billed separately |
| Data migration and deduplication | One-time internal effort; plan for trial imports and cleanup | One-time project fee covering mapping, import modes and post-migration checks | One-time onboarding fees may apply; for example, HubSpot Sales Hub lists one-time onboarding fees of $1,500 (Professional) and $3,500 (Enterprise) |
| Training and change adoption | Internal time and materials; recurring for new hires | One-time workshops, often included in the project scope | Vendor training may be paid or included; SuiteCRM Ltd sells training as an optional service |
| Support and upgrades | Internal staff on call; recurring for patch and minor release cycles | Recurring retainer if you need ongoing support or upgrades; confirm response expectations in writing | Included in the subscription at a support tier; higher tiers and SLAs cost more |
| Security testing and compliance evidence | Internal or third-party testing, recurring; you produce access logs and evidence yourself | Testing and evidence preparation as scoped work; independent auditors assess the results | Vendor provides its own attestations; you still need evidence for your own controls and records |
How the cost profile differs across SuiteCRM, EspoCRM and Twenty
SuiteCRM is licensed under the GNU Affero General Public License version 3, so the software itself carries no per-user fee when you self-host it. The cost sits in the stack and the work around it. SuiteCRM 8 runs on PHP with MySQL or MariaDB, and the SuiteCRM 8.10 compatibility matrix lists PHP 8.2, 8.3 and 8.4 with supported MariaDB and MySQL versions on Linux, Unix or macOS. A team that already runs PHP and MariaDB can absorb much of this. The bigger line item is the move from SuiteCRM 7. The migration docs describe a new SuiteCRM 8 environment with data moved into it, not an in-place upgrade, and they advise a staging instance, full file and database backups, and a review of customizations because non-core files under the public/legacy folder may be removed.
- Free software, paid work: the license costs nothing, but setup, configuration, LDAP or SAML login and staging tests are labor you or a partner must fund.
- Migration as a project: budget a SuiteCRM 7 to 8 migration as a scoped project with its own testing window.
- Support is optional: SuiteCRM Ltd sells SuiteASSURED support, hosting, implementation, training and migration services, so ask whether you need a paid support contract.
- Recurring maintenance: minor 8.x releases arrive roughly every eight weeks and patches carry security fixes, so plan recurring upgrade effort.
Check which SuiteCRM line you will run and whether your current customizations depend on files the migration may remove.
EspoCRM is licensed under AGPL-3.0 and the open-source edition can be downloaded and self-hosted for free. It runs on PHP 8.3 to 8.5 with MySQL 8.0 or newer, MariaDB 10.6 or newer, or PostgreSQL 15, on Apache, Nginx or IIS, and it needs cron or a scheduled task for background jobs. The installation script for Ubuntu, Debian and Linux Mint deploys a Docker-based stack with Nginx and MariaDB and a command.sh utility for backups, restores and upgrades, which lowers the initial hosting effort for small teams. The Advanced Pack, which provides reports, Business Process Management and workflows, is included in all EspoCRM Cloud plans, so a managed subscription removes the need to license it separately.
- Free self-hosting: the open-source edition has no license fee, but you pay for servers, backups and admin time.
- Cloud per-seat pricing: EspoCRM Cloud costs 15 US dollars per user per month on Basic with a 3-user minimum, 25 dollars on Enterprise with a 5-user minimum and 69 dollars on Ultimate with a 10-user minimum.
- Advanced Pack included in Cloud: confirm whether self-hosted workflows and reports need the same official extension and how that is licensed for your deployment.
- Integration extensions: official extensions for Sales Pack, VoIP, Google, Outlook, Zoom and Stripe may add cost depending on the tier you pick.
Ask for the cost of the Cloud plan at your user count, and compare it with the server and admin hours you would fund for self-hosting.
Twenty's open-source core is mostly AGPL-3.0 with an additional application exception, and files marked with an Enterprise license header are commercial. Its backend uses NestJS with BullMQ, PostgreSQL and Redis, and its frontend uses React. 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. That footprint is heavier than a single PHP application, and it asks for TypeScript, PostgreSQL and Redis skills. Twenty's pricing page says the open-source core can be self-hosted for free and that all plans include unlimited custom objects, fields, views and records plus REST and GraphQL APIs and webhooks.
- Hosted tiers: Pro costs 9 US dollars per user per month and Organization costs 19 dollars per user per month, which adds row-level permissions, SAML or OIDC SSO and audit logs.
- Enterprise is a different cost class: Enterprise starts at 50,000 dollars a year and adds single-tenant isolation, IP allow-listing, SCIM provisioning and an SLA.
- Infrastructure sizing: budget for at least 2 GB of RAM plus database and cache capacity, then measure under your real load.
- Skill mix: if your team lacks TypeScript or Redis experience, add partner or training time to the self-hosted total.
Confirm which features your access, audit and identity requirements need, because those features move you from the free core to a paid tier.
What moves CRM cost up or down
CRM cost is shaped by a handful of decisions that compound: how many people log in, how many systems the CRM must talk to, what the data looks like, how much the platform is customized, what the compliance rules require, and who does the work. Each card below names the direction a driver pushes cost and what to confirm in your own environment before you ask for a quote.
Headcount growth and per-seat math
Per-seat SaaS cost scales linearly with users, so the gap between a subscription and a self-hosted CRM widens as the sales team grows. Published list prices show the spread: Salesforce Starter Suite is $25 per user per month and Pro Suite is $100 per user per month billed annually, while EspoCRM Cloud Basic is $15 per user per month with a three-user minimum. Self-hosted SuiteCRM, EspoCRM and Twenty carry no license fee for the open source edition, so headcount mainly drives hosting size and support hours. Confirm your seat count for the next three years, the plan each vendor requires for the features you need, and any minimum seat counts.
Integrations with ERP, email and telephony
Each system the CRM must exchange data with adds build and test effort, and that effort recurs whenever a connected product changes its API. Email and calendar sync, telephony and ERP order or invoice data are the usual cost centers, and Twenty and EspoCRM both expose APIs and webhooks that partners build against. Ask whether each integration is a native connector, an official extension or custom code, and who maintains it after go-live. Count the integrations in scope before comparing quotes, because a partner-built CRM is often priced by integration count.
Data volume and migration source
The cost of moving data depends on where it comes from and how clean it is. Moving from Salesforce or HubSpot involves mapping standard and custom objects, deduplicating accounts and contacts, and carrying attachments and activity history, while a legacy CRM may need extraction from a database with no export tooling. Migration is one-time cost, but the cleanup it forces is often the largest single item in a partner quote. Confirm record counts per object, attachment volume, the source system's export options and how much history must survive the cutover. Import limits and modes should be tested with a trial import before any price is fixed.
Customization depth and workflow logic
Custom objects, fields, layouts, approval paths and automations raise build and maintenance cost faster than seat counts do. EspoCRM includes reports, Business Process Management and workflows in its Advanced Pack, which is included in all Cloud plans, and Twenty lists unlimited custom objects and fields on every plan. Scripted logic, such as EspoCRM Formula Script in before-save hooks, must be documented and retested after each upgrade. Keep a written list of customizations, separate the ones that must survive upgrades, and ask a partner to price them as named items rather than as an hourly estimate.
Security and compliance controls
SSO, audit logging, role-based access and penetration testing add cost because they are configured, tested and evidenced rather than switched on. Some controls sit behind higher plans: Twenty places SAML or OIDC SSO and audit logs in its Organization tier, and its Enterprise tier adds SCIM provisioning and an SLA. Where the FTC Safeguards Rule applies, 16 CFR 314.4 expects annual penetration testing, and vulnerability assessments at least every six months when continuous monitoring is absent. Confirm which controls your regulator requires, whether they need a higher plan or added engineering, and who runs the testing.
In-house skills versus partner capacity
The cost of running a self-hosted CRM is mostly labor: someone must patch the platform, maintain the database, run backups and handle upgrades. SuiteCRM and EspoCRM are PHP applications on MySQL or MariaDB, while Twenty is a TypeScript application on PostgreSQL and Redis, so the team's existing skills often decide which one is cheaper to run. A partner adds fixed-scope build and handover, plus optional retainers for upgrades and support. Ask your team which stack it already operates, how many hours it can give to upgrades each quarter, and what the partner will hand over in writing at close.
How per-seat subscription prices compare as the team grows
Per-seat pricing scales in a straight line with headcount, while self-hosting costs are largely fixed or step-based, so the cheaper option depends on how many people will use the CRM and how large the one-time project is. Start with your own numbers: multiply the number of named users by the monthly list price, then by twelve, and compare that annual figure with the annual cost of hosting, configuration, integrations, migration and support. As of October 2026, Salesforce lists Starter Suite at $25 and Pro Suite at $100 per user per month billed annually, HubSpot lists Professional at $90 per seat per month with an annual commitment and Enterprise from $150, and EspoCRM Cloud lists Basic at $15 per user per month with a minimum of 3 users. Confirm each figure with the vendor before you rely on it, because list prices change and negotiated rates differ.
Each per-seat line grows with every hire, contractor and seasonal user you add, so the gap between SaaS and self-hosting widens as the team grows. Self-hosting has its own step costs: a server or cloud account, backups, upgrades, security patching and a partner or staff member to maintain the system. Those costs rise with complexity (more integrations, more custom objects, stricter access rules) rather than with each user. A useful test is to model three headcounts you expect within your planning horizon, then ask a partner for a written quote covering the one-time project and the recurring support, and find the headcount where the cumulative totals cross. Illustrative only: a team with few users may find a subscription cheaper for years, while a larger team may reach the crossover much sooner.
Two items commonly distort the comparison. First, check the minimum user counts and what each tier includes: EspoCRM Cloud's Advanced Pack, which provides reports and workflows, is included in all cloud plans, so you should not add it as a separate cost when comparing. Second, check whether your required features sit on the tier you priced. Confirm with each vendor which tier provides single sign-on, audit logs and row-level permissions, since those controls often drive the move to a higher plan. Ask any implementation partner to separate the one-time fees from the recurring support fees in the quote so you can compare both models on the same basis.
How to build your own CRM cost estimate
This sequence turns a vague question about CRM cost into a like-for-like comparison of build, partner and SaaS options over three years, using the same users, pipelines and integrations for every option. The output is a written cost model that a finance lead and a technical owner can both defend.
Count current users and project growth
Start by listing every person who will sign in to the CRM, grouped by role: sales reps, managers, support staff, marketing users and read-only viewers. Ask HR or the sales lead for the headcount expected in each of the next three years, because per-seat pricing scales with the count you enter here. Note which users need admin or API access, since some plans price those roles differently. The step is complete when you have one table of named roles, current counts and planned counts by year.
Define pipelines, objects and integrations
Document each sales pipeline and its stages, the objects you need (accounts, contacts, opportunities, activities, custom entities), the custom fields that matter for reporting, and every system the CRM must exchange data with, such as ERP, billing, telephony, email and marketing tools. Mark which integrations are needed at launch and which can wait. Integrations are often the largest variable in a partner quote, so this list drives the scope. The step is complete when the list is signed off by the business owner of each pipeline.
Shortlist candidate platforms
Pick the candidates to price, typically one or two self-hosted options among SuiteCRM, EspoCRM and Twenty, one per-seat SaaS benchmark, and a partner-built option if you do not have in-house platform staff. Check the shortlist against your hosting stack and team skills. SuiteCRM and EspoCRM are PHP applications on MySQL or MariaDB, while Twenty is a TypeScript application on PostgreSQL and Redis, so your existing operations skills often narrow the list before any price is compared. The step is complete when each candidate has a one-line reason to stay on the list.
Write one fixed scope for all partner quotes
Turn the requirements from the previous steps into a written scope that every partner receives in the same form. The scope should cover the platform choice, the number of users, the pipelines and custom objects, each integration with its source and target system, data migration volumes and sources, authentication requirements such as SSO, training audiences, and support expectations. Without a shared scope, quotes cannot be compared because each partner will price a different project. The step is complete when the scope document is dated, versioned and has been reviewed by the people who will use the system.
Collect per-seat quotes with add-ons and onboarding fees
Ask each SaaS vendor for a written quote at your user counts, including the plan tier that provides the features in your scope, any required add-on packs, and any one-time onboarding fee. Ask each partner for a fixed-scope quote covering implementation, configuration, integrations, migration, training and the first year of support. For self-hosted platforms, ask the partner to separate the license cost, which may be zero, from implementation and recurring support. The step is complete when every quote is in writing, with the same scope and user count and each line item labeled as one-time or recurring.
Add hosting, staff time and ongoing support
Add the costs that do not appear on a vendor quote. For self-hosted options, these include cloud or data center hosting, backups, monitoring, certificate management, patching and upgrades, and the internal staff hours to own the platform. Confirm with your infrastructure team the hosting footprint, and ask partners for a written support and upgrade price, since a self-hosted CRM needs regular maintenance. For SaaS, include any storage, sandbox or API overage charges that the vendor lists. The step is complete when each option has a recurring line for hosting and a recurring line for people, both with a named owner.
Compare three-year totals at your growth path
Build one spreadsheet with a column per option and rows for one-time costs, recurring licenses or subscriptions, hosting, support, internal staff time and expected price changes. Calculate each option's total over three years using the user counts from the first step, so that per-seat subscriptions reflect growth while self-hosted costs reflect the platform and support. Run a second view where headcount rises or falls, to see where the per-seat line crosses the self-hosted line. The step is complete when the model shows the total for each option, the assumptions behind it, and the quote lines that each assumption came from.
Which CRM costs are one-time and which recur every year
The one-time costs of a self-hosted CRM are the work that happens before the first user logs in and the work that moves your data into the new system. Requirements gathering comes first: pipelines and stages, custom objects and fields, roles and record-level access, and retention rules. Configuration follows, along with data migration from the current system, the integrations with email, calendar, telephony and ERP, security hardening such as single sign-on and access logging, initial user training, and staging tests that prove the migrated data and workflows behave correctly. In a quote, ask the partner to price each of these as its own line so you can see which items you would pay for once and which you would pay for again.
The recurring costs are the ones that keep the system safe and current after go-live. Hosting is the largest and runs whether or not anyone changes the CRM. Your licence line is zero for the open-source core of SuiteCRM, EspoCRM or Twenty, but a paid support, retainer or add-on package is not. Upgrades recur too. SuiteCRM minor 8.x releases arrive roughly every eight weeks, and patch releases contain only security and bug fixes, so budget for applying them on a schedule. Backups, monitoring and periodic security testing also recur. SuiteCRM 7 to 8 is a migration, not an upgrade: a new environment is built and the 7 data is moved into it, so it is a one-time project you should plan separately from routine maintenance. Ask the partner which of these recurring items are included in a fixed retainer and which are billed per request.
Frequently asked questions about CRM cost and effort
Is self-hosted open source CRM software really free?
The software license is free, but the total cost is not. SuiteCRM, EspoCRM and Twenty can each be downloaded and self-hosted without a license fee, and Twenty's pricing page says its open source core can be self-hosted for free. You still pay for the server or cloud account, the database, backups, monitoring, upgrades, configuration, integrations, data migration, user training and support. These costs are mostly one-time for setup and recurring for hosting, maintenance and upgrades. Ask any partner to separate license, infrastructure, labor and support in the quote so the recurring costs are visible from the start.
How much ongoing effort does a self-hosted CRM need after launch?
Ongoing effort depends on the platform, the hosting model and how much you customize. SuiteCRM 8 minor releases arrive roughly every eight weeks, and its patch releases contain only security and bug fixes, so someone must apply them on a schedule. EspoCRM requires cron or a scheduled task for background jobs, and its installation script provides a command.sh utility for backups, restores and upgrades. Twenty's self-hosting guide runs a server, a worker, PostgreSQL and Redis and asks for at least 2 GB of RAM. Confirm with any partner who owns patching, backup testing, monitoring and on-call response, and what each of those costs per month.
How long does a CRM migration take, and what does it need from our team?
Migration duration depends on data volume, the number of custom fields, the number of source systems and how clean the records are. For SuiteCRM 7 to 8, the documented path is a migration, not an upgrade: a new SuiteCRM 8 environment is built and the 7 data moved into it, after bringing the 7 instance to the latest 7.14.x or later. Your team must supply a staging environment, file and database backups, a field mapping sign-off, decisions on duplicate rules and owners for permissions. Ask the partner for a written timeline tied to these inputs, and confirm which of your staff must be available for testing and sign-off.
Can an internal IT team build and run a self-hosted CRM alone?
An internal team can, if it already runs PHP applications on MySQL or MariaDB or TypeScript applications on PostgreSQL and Redis, depending on the platform chosen. SuiteCRM and EspoCRM are PHP applications on MySQL or MariaDB (EspoCRM also supports PostgreSQL 15), while Twenty is a TypeScript application on PostgreSQL and Redis, so existing skills often decide the shortlist. The harder parts are usually CRM-specific: data mapping, email and calendar sync, identity integration, custom workflows and user adoption. Be honest about whether those skills exist in-house, and ask a partner which pieces they would hand over and which they would keep.
What should a partner quote for a self-hosted CRM include?
A useful quote lists the written scope, deliverables and timeline before work starts, since most engagements are fixed-scope. It should separate one-time work (requirements, environment build, configuration, data migration, integrations, testing, training) from recurring work (hosting, patching, backups, support and upgrades). Ask for the platform and version, the number of users and entities, each integration by system, the migration sources and volume assumptions, and the acceptance criteria. Also ask who holds the admin credentials, how documentation is delivered and what happens to scope that changes mid-project. DeployOpen does not publish a price list, so quotes follow from the written scope.
When does per-seat SaaS cost less than self-hosting?
Per-seat SaaS is often cheaper for small teams with simple pipelines and no strict data residency needs, because the vendor carries hosting and upgrades. Published list prices show the gap: Salesforce Sales Cloud Starter Suite is $25 per user per month, Pro Suite is $100 per user per month billed annually, and HubSpot Sales Hub Professional is $90 per seat per month with an annual commitment plus a one-time $1,500 onboarding fee. EspoCRM Cloud is $15 per user per month on Basic with a minimum of 3 users, and Twenty Pro is $9 per user per month. Self-hosting costs grow with infrastructure and labor rather than seats, so model both at your expected user count and five-year growth, and confirm current prices on each vendor's page.
How DeployOpen scopes and delivers a fixed-scope CRM implementation
DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted CRM platforms inside your own cloud accounts, data centers or air-gapped networks. We set the cost model for each option in a written scope before work starts, so the build, partner and SaaS comparison rests on your actual user count, data volume and integrations.
How we scope
- We count named users, growth plans and the roles each group needs before comparing per-seat SaaS prices with self-hosted totals.
- We list integrations with ERP, email, telephony and billing, since each one adds build and support effort.
- Engagements are fixed-scope, with deliverables and timelines agreed in writing before any work begins.
How we build
- We install the chosen platform in your environment, with hosting, database and backup components sized to your stack.
- We configure pipelines, custom fields, roles, single sign-on and the integrations defined in the scope.
- We test imports, permissions and integration paths in a staging instance before anything moves to production.
How we hand over
- We document the cost model, licence terms, hosting footprint and recurring tasks so your team can review them.
- We deliver a written list of one-time and recurring costs, including staff time for upgrades and patching.
- We walk your administrators through configuration, backups, restores and upgrade steps before close-out.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- We can review the cost model again when user counts, licence terms or platform versions change.
- Retainer scope is agreed in writing, so you know which upgrades, fixes and reviews are included.

