Frappe CRM and ERPNext integration

Frappe CRM can create customers and quotations from deals in ERPNext, but most syncing depends on both apps sharing one site. This page covers the setup, the mapping and the version pairing.

On this page

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

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 fieldWhat Frappe CRM copies or setsWhat to check before go-live
Organization or primary contactUsed to name the ERPNext customerAgree a naming rule so the same company is not created twice under slightly different names
ContactsCopied to the ERPNext customer's contactsConfirm that people already in ERPNext are not duplicated when a deal is converted
AddressCopied to the ERPNext customer's addressCheck that billing and shipping addresses are complete enough for invoices and tax
TerritoryMapped to the ERPNext customer's territorySet a default territory in ERPNext because the integration needs a value for sales reporting
CurrencyMapped to the ERPNext customer's default currencySet a default currency that matches the price lists and accounts the sales team uses
IndustryCopied to the ERPNext customer's industryConfirm the industry list in ERPNext matches the values the CRM sends
WebsiteCopied to the ERPNext customerCheck 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.

SymptomLikely causeFix
No ERPNext options appear on the dealThe ERPNext setting is not enabled in Frappe CRMEnable the ERPNext integration under Settings, ERPNext, then save and reload the CRM page.
Quotation or customer action fails without a clear errorNo company is set in the ERPNext configurationSelect the default company in the Frappe CRM ERPNext settings so that new records have an owning company.
Deals never sync to ERPNextFrappe CRM and ERPNext are installed on different sitesInstall 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 upgradeThe Frappe CRM and ERPNext versions are not a supported pairCheck 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 dealA mandatory customer field in ERPNext is empty or invalidReview 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 nameNaming follows the deal's organization or primary contactSet 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 currencyThe customer was created before these fields were complete on the dealUpdate 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.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.