How Frappe CRM and ERPNext work together for sales and orders
Sales teams often work deals in Frappe CRM while orders, invoices and stock sit in ERPNext, and the gap between the two is where quotes get retyped and customers get duplicated. The supported bridge is the Frappe CRM integration with ERPNext, which is switched on under Settings, then ERPNext, once a company is set. With it enabled, a deal can produce an ERPNext customer and a quotation, so the sales hand-off starts from the same record. Frappe CRM is licensed under AGPL-3.0, which is a different license from ERPNext's GPL-3.0, so confirm with your legal team what that means if you plan to modify either app or offer them as a service to others.
The most important design decision is topology. According to the Frappe CRM documentation, most of the syncing runs only when both apps are installed on the same site. If Frappe CRM runs on a separate site, or on a different bench or host from ERPNext, you should expect to lose much of the automatic customer and quotation creation and plan a custom integration instead. Decide early whether one site serves both the sales team and finance, because moving to a split layout later means rebuilding records and access rules. Also confirm that your planned Frappe CRM release is listed as compatible with your ERPNext major version, since the compatibility statement in the Frappe CRM README covers the v15 and v16 lines.
Before go-live, test the path end to end with a sample deal rather than assuming it works. Check which company is set in the ERPNext settings, because quotations and customers depend on it, and confirm that the customer name, contacts, address, territory, currency, industry and website copied from the deal match how your accounts team expects records to look. Review who can create customers and quotations in ERPNext, since sales users triggering document creation need the matching roles and permissions. Ask your implementation partner to document this configuration and test it in your environment, not a demo site.
What you need before enabling the integration
Four checks and two decisions come before the Frappe CRM settings are touched. Each one changes what syncs, who supports the stack, and whether the integration works at all, so confirm them with the people who will run the site.
Matching version pairing
Frappe CRM's README lists the main v1.x branch as compatible with Frappe and ERPNext v15 and v16. Check the exact Frappe CRM tag you plan to install against the ERPNext version already on your bench or site, and do not mix a v14 ERPNext site with a CRM branch that the README does not list. Confirm the pairing in the README before you pin any version in your build.
ERPNext lifecycle position
ERPNext and Frappe Framework version 14 reached end of life on January 31, 2026, so a sales integration built on v14 starts with no upstream support window. Version 15 is planned to be supported until the end of 2027 and version 16 until the end of 2029. Record which version you run and plan any upgrade before the CRM work begins, not after.
A configured company in ERPNext
The ERPNext setting in Frappe CRM needs a company set before quotations and customers can be created from deals. Set up the company, its default currency and its chart of accounts first, because customers and quotations inherit these values. Decide whether you run one company or several, since that choice determines how sales records are split across the CRM and ERPNext.
Same site or separate sites
Most syncing between Frappe CRM and ERPNext runs only when both apps are installed on the same site. A same-site install keeps deals, customers and quotations in one database, while a separate-site design needs a different data exchange approach that the CRM documentation does not cover. Decide this before installing, because moving apps between sites later is a larger change.
Frappe Cloud support plan match
Frappe's supported versions policy says customers must run a listed version and hold a Frappe Cloud support plan that matches that version to receive warranty coverage from Frappe. If your sites run on Frappe Cloud, confirm the plan tier for each ERPNext major version you operate. Ask Frappe directly about coverage for your CRM and ERPNext combination.
Installation method
ERPNext can be installed on Frappe Cloud, with Docker Compose, or manually with the bench command line tool. Confirm which method your environment uses, since it controls where the bench get-app and bench install-app steps run, how Frappe CRM is added to the same site, and who applies updates. Docker Compose setups built from the frappe_docker repository need the CRM image or app added to the build.
Configuring Frappe CRM to create customers and quotations from deals
This sequence confirms that your Frappe CRM and ERPNext versions match, connects the two apps on one site, and proves with a single sample deal that customers and quotations flow from CRM into ERPNext before the sales team relies on it.
Confirm version compatibility before installing
Before touching the server, check that your Frappe Framework and ERPNext versions are on Frappe's supported versions list, and that the Frappe CRM release you plan to install lists those same versions in its README. The Frappe CRM README lists the main v1.x branch as compatible with v15 and v16, so a site on an unsupported ERPNext version needs an upgrade decision first. Ask your partner or internal owner to record the exact versions in writing. This step is done when the version pairs are written down and matched.
Install Frappe CRM on the target site
Install the Frappe CRM app on the same bench site that already runs ERPNext, using your standard deployment method (bench, Docker or Frappe Cloud). Most syncing only works when both apps share one site, so installing CRM on a separate site is a different architecture to decide on up front. Confirm that the app appears in the installed apps list for that site and that both the CRM workspace and the ERPNext desk load without errors. Take a backup before this change so you can roll back.
Enable the ERPNext setting in CRM
In Frappe CRM, open Settings and find the ERPNext section. Enable the integration and select the company that quotations and customers should belong to. A company must be set for the link to work, so confirm with finance which company will own sales orders and receivables. This step is done when the ERPNext setting shows as enabled with the chosen company saved, and the page reloads without an error.
Prepare one sample deal for testing
Create a single test deal in Frappe CRM using a clearly labeled test organization, a primary contact, an address, and a currency that matches the company's default. Add the fields your sales team will rely on, such as territory and industry, because the customer record copies these. Use a name such as TEST Deal 001 so the record is easy to find and remove later. This step is done when the deal saves with all fields visible on the deal page.
Test deal to customer creation
From the sample deal, use the action that creates an ERPNext customer. Then open the Customer list in ERPNext and confirm a new customer exists. Frappe CRM names the customer after the deal's organization or primary contact and copies contacts, address, territory, currency, industry and website. Check each copied field against the deal. This step is done when the customer record in ERPNext matches the deal, and the CRM deal links to it.
Test deal to quotation creation
From the same sample deal, create a quotation. Open Quotation in ERPNext and confirm a draft quotation exists for the new customer, with the expected items, currency and company. Check that the quotation carries the deal's commercial fields as your design specifies, and that it does not submit automatically unless your process says so. This step is done when the quotation appears in ERPNext, is linked to the customer, and the deal shows the link back.
Record results and remove test records
Write down the versions, the company set in Settings, the customer and quotation identifiers created by the test, and any field that did not copy as expected. Then delete or cancel the test quotation and customer following your ERPNext deletion rules, and archive the test deal. Ask the implementer to confirm the results in writing before real sales users are onboarded. This step is done when the test record log exists and production data is clean.
What syncs on the same site versus separate sites
When Frappe CRM and ERPNext are installed on the same Frappe site, most of the syncing runs as documented. The integration is enabled under Settings, then ERPNext, with a company set, and from that point the sales team can create customers and quotations directly from a deal. Frappe CRM names the new customer after the deal's organization or primary contact and copies the contacts, address, territory, currency, industry and website onto the record.
- Enable the ERPNext setting: Turn on the ERPNext integration in Frappe CRM and confirm a company is selected before testing.
- Customer from deal: Create a customer from a deal and check the naming and copied fields against your master data rules.
- Quotation from deal: Generate a quotation from a deal and confirm that the items, currency and territory match your price lists.
- Shared permissions: Sales users need the ERPNext roles that allow customer and quotation creation, so test each role.
- Version pairing: Both apps must run on a version pair the Frappe CRM README lists, which includes the v15 and v16 lines of Frappe and ERPNext.
Confirm every step in a staging copy of your production site, since the exact field mapping and role requirements may change between releases.
The researched material for this topic does not confirm which parts of the integration work when Frappe CRM and ERPNext run on different sites. The Frappe CRM documentation describes most syncing as running when both apps share one site, so you should treat separate sites as unvalidated until you test them. Do not assume that a quotation or customer created in one system will appear in the other.
- Assumed gap: Plan for deals and accounting records to live in different systems unless a test proves otherwise.
- Custom bridge work: If you need data to move between sites, scope a custom integration or data exchange and cost it separately.
- Duplicate records: Without a shared site, plan how customers are matched to avoid duplicates in ERPNext.
- Authentication and access: Separate sites mean separate logins and roles, so decide who owns each record.
- Upgrade coupling: Each site upgrades on its own schedule, so test the pair after every release on either side.
Before committing to a separate-site design, ask the Frappe CRM documentation and a test environment what is supported, and document the result.
Multi-company and multi-site setups add questions the researched facts do not answer. The integration is enabled with a company set in ERPNext, so the company a deal syncs into is a design decision you must make and test. Where one ERPNext installation hosts several companies, confirm how the Frappe CRM setting behaves when more than one company exists and which company receives new customers and quotations.
- Company selection: Decide which ERPNext company each sales team's deals should feed, and test that routing.
- Territory and currency: Customers copy territory and currency from the deal, so align these with each company's configuration.
- Multiple sites: If you run several ERPNext sites, confirm whether one Frappe CRM instance can serve more than one of them.
- Reporting boundaries: Cross-company pipeline reporting may need a separate view, which is a scope item to confirm.
- Ownership of records: Name a data owner for each company so duplicate or misattributed customers can be corrected.
Ask the vendor or the Frappe CRM documentation to confirm each multi-company behavior, then verify it with your own test data.
How deal fields map to ERPNext customers
This table shows which Frappe CRM deal fields become which ERPNext customer fields when a customer is created from a deal. Read the first column as the source in the CRM and the other columns as what lands in ERPNext and what you must set or check before go-live. The main takeaway is that the customer name and defaults such as territory and currency need decisions made in advance, because duplicates and wrong defaults are easy to create once sales starts using the integration.
| Deal or ERPNext field | What Frappe CRM copies or sets | What to check before go-live |
|---|---|---|
| Organization or primary contact | Used to name the ERPNext customer | Agree a naming rule so the same company is not created twice under slightly different names |
| Contacts | Copied to the ERPNext customer's contacts | Confirm that people already in ERPNext are not duplicated when a deal is converted |
| Address | Copied to the ERPNext customer's address | Check that billing and shipping addresses are complete enough for invoices and tax |
| Territory | Mapped to the ERPNext customer's territory | Set a default territory in ERPNext because the integration needs a value for sales reporting |
| Currency | Mapped to the ERPNext customer's default currency | Set a default currency that matches the price lists and accounts the sales team uses |
| Industry | Copied to the ERPNext customer's industry | Confirm the industry list in ERPNext matches the values the CRM sends |
| Website | Copied to the ERPNext customer | Check for duplicate customers that share a domain before creating new records |
Access and data controls for the CRM and ERP link
Frappe CRM and ERPNext share customers, quotations and company data once they are linked, so access has to be designed before the setting is enabled. The cards below cover the role split for sales users, who may switch the integration on, and how to keep both apps on compatible versions.
Sales roles without accounting access
Sales users need to create customers and quotations from deals, but they should not open ledgers, payment entries or stock valuation. Define which ERPNext roles the sales team holds, then test a sales user account against Customer, Quotation and Sales Order, and confirm that accounting DocTypes return no access. Treat the role matrix as a written deliverable and review it whenever a new ERPNext module is switched on.
Who can enable the ERPNext setting
The integration is turned on under Settings in Frappe CRM, and it needs a company set in ERPNext before syncing works. Decide who holds the rights to change that setting and who selects the company, because the choice determines which company receives new customers and quotations. Record the approver in your change process and check the setting after every upgrade or site restore.
Same-site versus separate-site data flow
Most syncing runs only when Frappe CRM and ERPNext sit on the same site, so the hosting choice is also an access decision. On one site, both apps share one user table and permission model. On separate sites, you must define how records move, which accounts hold the credentials and who can read the exchanged data. Document this choice before any sales user receives access.
Matching Frappe CRM and ERPNext versions
The Frappe CRM README lists the main v1.x branch as compatible with Frappe and ERPNext v15 and v16. Pin both apps to a supported combination, and confirm that the Frappe Framework and ERPNext releases are on a version still listed as supported. Plan upgrades so CRM and ERPNext move together in a tested staging copy before production.
Support status and warranty coverage
Frappe's supported versions policy ties warranty coverage to running a listed version and holding a matching Frappe Cloud support plan. Ask whether your version is listed before you enable the link, and confirm whether your hosting arrangement meets that condition. This check belongs in the design phase, not after go-live.
Roles and permissions as a separate topic
Field-level access, data masking, user permissions and multi-company restrictions are broad enough to need their own design. Use this section for the CRM link decisions only, and plan the wider ERPNext role model in its dedicated topic. Confirm each control against the ERPNext version you run, because the available options change between releases.
Why deals fail to create customers or quotations
This table lists the failures that most often stop a Frappe CRM deal from producing an ERPNext customer or quotation, with the cause and fix for each. Work through the rows in order, since the first two checks rule out the most common problems quickly. Confirm each fix on a test deal before the sales team relies on the integration.
| Symptom | Likely cause | Fix |
|---|---|---|
| No ERPNext options appear on the deal | The ERPNext setting is not enabled in Frappe CRM | Enable the ERPNext integration under Settings, ERPNext, then save and reload the CRM page. |
| Quotation or customer action fails without a clear error | No company is set in the ERPNext configuration | Select the default company in the Frappe CRM ERPNext settings so that new records have an owning company. |
| Deals never sync to ERPNext | Frappe CRM and ERPNext are installed on different sites | Install both apps on the same site, since most syncing runs only in that case. Confirm the site with the bench command used by your team before changing data. |
| Integration breaks after an upgrade | The Frappe CRM and ERPNext versions are not a supported pair | Check the Frappe CRM README, which lists the v1.x branch for Frappe and ERPNext v15 and v16, and align both apps before upgrading one of them. |
| Customer is not created from a deal | A mandatory customer field in ERPNext is empty or invalid | Review the customer DocType's required fields and the deal's organization, contact, territory and currency data, then fill the gaps in the deal. |
| Customer has an unexpected name | Naming follows the deal's organization or primary contact | Set the organization and primary contact on the deal before conversion so the customer name matches your naming convention. |
| Quotation lacks the expected address, territory or currency | The customer was created before these fields were complete on the deal | Update the deal fields first, then recreate or correct the linked customer, since Frappe CRM copies these fields at creation. |
Questions buyers ask before setting up Frappe CRM with ERPNext
How much does it cost to run Frappe CRM with ERPNext?
Self-hosting ERPNext is free under its GPL-3.0 license, and the ERPNext pricing page lists the same for self-hosting, so the cost sits in the work around it. You pay for hosting or servers, for the configuration of the ERPNext setting, company, territories and quotation templates, for testing the deal-to-quotation flow, and for your team's time. Frappe CRM is AGPL-3.0 licensed, so its software cost is also nil. Ask any partner for a quote that separates one-time setup from recurring hosting, support and upgrade work, and that states which hosting option it assumes.
How long does a Frappe CRM and ERPNext setup take?
Duration depends on how many sales users you have, how many companies, currencies and price lists the sales team needs, how clean your existing customer and item data is, and how many people must approve the test results. A basic setup on one site with a single company is usually much shorter than a multi-company rollout with custom fields. No duration is fixed here, so ask for a timeline in the written scope, with milestones for configuration, a test site, user acceptance and go-live.
Do Frappe CRM and ERPNext need to run on the same site?
Most of the syncing only runs when both apps are installed on the same site. The Frappe CRM documentation says the ERPNext setting, which creates quotations and customers from deals, depends on that shared site. If your CRM and ERPNext run on separate sites, plan for a different integration method, such as an API connection you build and maintain, and confirm what that path supports before you commit. Decide this early, because moving CRM onto an existing ERPNext site later changes your hosting, backups and upgrade plan.
Which Frappe CRM and ERPNext versions work together?
The Frappe CRM README lists the main v1.x branch as compatible with Frappe and ERPNext version 15 and version 16. Check that your ERPNext and Frappe Framework versions are on that list before you install. Also check the Frappe supported versions page, because version 14 reached end of life on January 31, 2026, and version 15 is planned to be supported until the end of 2027. Pin your CRM branch to the same major version as ERPNext, and test every minor upgrade on a copy of the site first.
Can our sales team set up Frappe CRM with ERPNext themselves?
Your sales operations lead can configure many day-to-day settings, such as deal stages, lead sources and quotation templates, once the platform is running. The installation, the ERPNext setting, company and territory mapping, user roles and any server-side logic need an engineer who knows Frappe and bench administration. If your team has no one with that skill, ask a partner to handle the platform and train sales on the workflow. DeployOpen plans and implements these platforms in your own infrastructure, and the written scope should name which steps your team owns.
What do we need to provide before the work starts?
Before work starts, name a business owner for sales processes and a data owner for customers, contacts, items and price lists. Provide a test site or staging environment that mirrors the production ERPNext version, and give the implementation team a set of sample deals to walk through. You also need decisions on companies, currencies, territories and who can create customers. Access to your hosting environment, a named approver for user acceptance, and a window for the sales team to test are also needed. Put these in the scope so delays are visible early.
What happens to customer records created from deals?
When Frappe CRM creates a customer from a deal, it names the customer after the deal's organization or primary contact. It also copies contacts, address, territory, currency, industry and website into the new customer record. Duplicate names are a common problem, so decide the matching rules before go-live and test them with real sample data. Confirm with your admin how existing customers in ERPNext will be matched to new deals, and who cleans up duplicates after launch.
What are the main risks of connecting CRM to ERPNext?
The main risks are duplicate or poorly named customers, quotations that use the wrong currency or territory, and permission gaps that let sales users see accounting data they should not. Upgrades can also break the integration if the CRM branch and ERPNext versions drift apart. Mitigate these with a tested data mapping, role-based permissions reviewed before launch, a staging site for every upgrade, and a backup and rollback plan. Ask your implementation partner to show how each risk is tested.
How DeployOpen scopes and delivers the CRM and ERPNext link
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 Frappe CRM and ERPNext, we start from which sales records must live on the same site as accounting and stock, then build and document the link around that decision.
How we scope
- Confirm the ERPNext and Frappe CRM versions in use and check them against the supported versions list before work starts.
- Map which deal fields, customer records and quotations the sales team needs, and which sync only works on a shared site.
- Agree the scope in writing as a fixed-scope engagement, with deliverables and timelines set before build begins.
How we build
- Enable the ERPNext setting in Frappe CRM, set the company, and test customer creation from a deal in a non-production site.
- Configure quotation creation, customer naming, territory, currency and address mapping against your sales process.
- Test the link on a copy of production data, including version upgrades of either app, before any change reaches live sales.
How we hand over
- Document the site layout, app versions, configuration values and the sync behavior your team needs to operate the link.
- Record which sync paths depend on the same site and what changes if the apps are later split across separate sites.
- Walk your sales and administration staff through deal-to-quotation steps and the checks they should run after each release.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Retainer work can cover checking each Frappe CRM and ERPNext release against your configuration before you apply it.
- Ask any partner, including us, to confirm the current support plan and warranty terms for your Frappe version in writing.

