· 15 min read

Salesforce ERP Integration: Quote-to-Cash Sync With Any ERP (2026 Guide)

A Salesforce ERP integration lets reps sell in Salesforce while the ERP books the order, invoices it and tracks the cash, with no one retyping a deal. You can build it with the ERP vendor’s own connector, an AppExchange app, an iPaaS such as MuleSoft, Boomi, Celigo or Workato, or custom middleware. Whatever the ERP, the same three decisions make or break it: which system owns each record, which flows must be real time, and who fixes errors.
A CRM cloud and app window connected through a central hub to three back-office systems, a ledger, a server stack and a warehouse, illustrating a Salesforce ERP integration
Connecting Salesforce to your ERP?Tell us which ERP you run and how deals become orders today. We’ll map the quote-to-cash flow, build the integration and support it after launch.
Map my Salesforce ERP flow

What a Salesforce ERP integration actually does

Reps close deals in Salesforce, but the order, the stock, the invoice and the cash sit in the ERP (enterprise resource planning) or accounting system. Unconnected, the two systems leave finance rekeying each won deal, and reps asking finance by email whether an order shipped or a customer paid.

The fix is a quote-to-cash link. In most companies it covers six steps:

  1. Account. A Salesforce account becomes an ERP customer (or matches an existing one) when the first deal closes, not when a lead appears.
  2. Products and price books. Items and list prices come from the ERP into Salesforce products and price books, so reps quote what finance can bill.
  3. Quote. The rep builds the quote in Salesforce. Some companies call the ERP live here for customer-specific prices, stock or credit status.
  4. Order. A won opportunity, an accepted quote or an activated Salesforce order becomes a sales order in the ERP.
  5. Invoice. The ERP invoices, and the invoice number, amount and due date come back to Salesforce, read-only.
  6. Payment status. Paid, partly paid or overdue flows back to the account and opportunity, so renewals and collections calls start from the same facts.

Stop there for phase one. Projects that try to mirror the whole ERP inside Salesforce take months longer and end with two versions of the truth.

Quote-to-cash between Salesforce and an ERP Salesforce Account Opportunity (won) Quote Order Products, price books, invoices, payments: read-only copies Integration layer connector, iPaaS or custom ID cross-reference, mapping error queue, retries ERP or accounting Customer (credit, terms) Items and prices Sales order Fulfillment Invoice Payment deal order status paid? items, prices, credit Stays in the ERP only: general ledger, journal entries, costing, tax calculation, payroll
Deals go one way, status comes back, master data comes from the ERP. Accounting detail that sales doesn’t need never leaves the ERP.

Who owns what: the system of record table

In quote-to-cash, ownership usually splits at the moment an order is booked: Salesforce owns the selling side, and the ERP owns the financial side from then on. Write that split down object by object, naming the system of record for each: the only place that record may be edited, while the other system shows it read-only. Get sales ops and finance to sign the table off first; tool demos come after.

SalesforceERP recordDirectionSystem of record
AccountCustomerSalesforce → ERP when the first deal closes; credit limit, terms and balance backSalesforce for name, owner and segment; ERP for billing terms, tax status, credit
Contact (billing)Customer contactSalesforce → ERPSalesforce
Product (Product2)Item or materialERP → SalesforceERP (it carries the revenue account, unit and tax code)
Price book and price book entriesPrice list or price levelsERP → SalesforceERP; customer-specific prices often read live, not copied
QuoteEstimate or quotation (optional)Salesforce → ERP only if finance needs itSalesforce
Opportunity (won) or Order, with line itemsSales orderSalesforce → ERP, once; status backERP after booking
Custom Invoice objectInvoiceERP → SalesforceERP
Custom Payment object or fieldsPayment, balance dueERP → SalesforceERP
External ID field on each objectInternal ID or numberWritten back after createThe link itself; never edited by hand

The last row matters most. Store the ERP’s ID on the Salesforce record, and the Salesforce ID on the ERP record where the ERP allows a custom field. Matching by name works until two customers share one; matching by stored ID is exact every time.

Two Salesforce details to check early. Quotes and Orders are standard objects, but according to Salesforce Help an admin has to turn each one on in Setup (Quote Settings and Order Settings) before use. Many companies skip Orders entirely and send the won opportunity straight to the ERP.

If you use a CPQ (configure, price, quote) tool, the quote and order lines come from that tool’s objects, so map those instead.

Your integration options compared

Salesforce has no built-in sync with any ERP. The routes below differ less in what they can move than in how much you can change, what you pay each year and who maintains it.

OptionWhat syncsDirectionCost levelEffortMain limits
ERP vendor’s connector (Oracle’s Salesforce Connector for NetSuite, Sage Intacct Advanced CRM Integration)The vendor’s standard quote-to-cash recordsTwo-way$–$$ quoted or bundled by the vendorLow to mediumBuilt around the vendor’s standard process; deep custom logic needs extra tooling
AppExchange app (Breadwinner, DBSync and others)Customers, invoices, payments, often orders; ERP data stored as Salesforce recordsTwo-way$–$$ monthly subscriptionLow (days to weeks)Your process has to fit the app’s model; pricing grows with users or entities
iPaaS (Boomi, Celigo, Workato and similar)Anything both APIs expose, plus other systems in the same flow; templates helpAny$$–$$$ subscription plus buildMediumYou own the design, error handling and recipes
MuleSoft AnypointAnything, through reusable APIs; SAP, NetSuite and Dynamics connectorsAny$$$ platform license plus buildMedium to highNeeds MuleSoft skills; overkill for two systems and a few flows
Custom middlewareExactly what you define, including custom objects and odd billing rulesAny, real time or batch$$$ build, low run costHigh (months)You own monitoring, retries and every API change on both sides
Salesforce Connect (read-only views)ERP records shown live as external objects, not copiedRead from the ERP$$ paid add-onLow to mediumNeeds an OData or custom adapter; slow ERP services mean slow pages; limited reporting and automation

Cost levels are relative. Connector and iPaaS vendors mostly quote by volume, flows and edition, so ask for a written quote that names the records and monthly volumes you plan to sync.

A word on MuleSoft: it is Salesforce’s own integration platform, built for companies that connect many systems and want one governed API layer. Our Salesforce MuleSoft integration guide covers when it pays off.

Apps and connectors are listed on AppExchange (now AgentExchange) and on ERP marketplaces; check the current listing, reviews and supported objects before you buy, because plans change often.

Which Salesforce ERP integration route fits you?

ERP by ERP: what changes

The quote-to-cash map above holds for every ERP. What changes is the tooling each vendor offers and the trap you are most likely to hit. Short notes, with a full guide where we have one.

Enterprise ERPs

  • SAP (ECC and S/4HANA). There is no SAP button in Salesforce Setup. Projects run on SAP Integration Suite, MuleSoft with its SAP connector, Boomi or Workato, or custom code over SAP’s interfaces: OData services, BAPI/RFC function calls and IDoc messages. If you are still on ECC, design the integration to survive the move to S/4HANA: according to SAP’s maintenance strategy, mainstream maintenance for SAP ERP 6.0 ended in 2025 for enhancement packages 0 to 5 and ends at the end of 2027 for enhancement packages 6 to 8. Details in the Salesforce SAP integration guide.
  • Oracle NetSuite. Oracle offers its own Salesforce Connector on NetSuite Connector Platform. According to the NetSuite help center, every NetSuite account using it must be a OneWorld account with at least one subsidiary, and the Salesforce side uses an API-only integration user. Celigo, Boomi, Workato and Breadwinner are the common alternatives. See the Salesforce NetSuite integration guide, and NetSuite ERP implementation cost if NetSuite itself is still being rolled out.
  • Microsoft Dynamics 365 Business Central and Finance. According to Microsoft’s documentation, Business Central’s built-in CRM integration connects to Dynamics 365 Sales through Dataverse, not to Salesforce. For Salesforce you use a connector app from Microsoft AppSource or AppExchange, Power Automate or an iPaaS, or a custom build on the Business Central or Dataverse APIs. See the Salesforce Dynamics 365 integration guide.
  • Workday. Most Salesforce Workday projects are about people data: workers becoming Salesforce users. Companies that also run Workday Financial Management, Adaptive Planning or Professional Services Automation add deal and customer flows, usually on MuleSoft, Workato or Boomi. See the Salesforce Workday integration guide.

Accounting software and mid-market ERPs

Searches for “Salesforce accounting integration software” are usually about this group. The flows are simpler (customer, invoice, payment), and AppExchange apps cover most cases.

  • QuickBooks Online. Neither Intuit nor Salesforce offers its own connector for QuickBooks Online today; teams use an AppExchange app such as Breadwinner or DBSync, Zapier for very simple flows, or an iPaaS. See the Salesforce QuickBooks integration guide.
  • Xero. The same pattern as QuickBooks, with tighter API limits per organization and “contacts” shared between customers and suppliers. See the Salesforce Xero integration guide.
  • Sage Intacct. Sage ships its own integration, the Sage Intacct Advanced CRM Integration, installed in Salesforce as a managed package. According to Sage’s documentation, it covers accounts and contacts, products and price books, order entry quote-to-cash (quotes, orders, invoices and credit memos) and contract billing, and supports Professional (with API access), Enterprise, Unlimited and Performance editions of Salesforce.
  • Acumatica, Epicor and other mid-market ERPs. Expect a partner connector, an iPaaS template or a custom build on the ERP’s REST API. Ask the vendor for a demo with your own objects and a written list of supported fields; coverage varies widely.

One more route exists when the accounting system is already straining: accounting or ERP apps built on the Salesforce platform itself, sold on AppExchange. That removes the integration but is a finance system migration, so it needs your controller’s buy-in.

Real time or batch: decide per flow

Real time costs more to build and to run. Most flows don’t need it. Decide flow by flow, not for the whole project:

FlowTypical timingWhy
Won deal → sales orderNear real time (event-driven)Fulfillment and invoicing wait for it
Order, fulfillment and invoice status → SalesforceEvery 15–60 minutes, or on ERP eventsReps check it a few times a day
Payments and balances → SalesforceHourly or nightlyUsed for renewals and collections, not live deals
Items and list prices → SalesforceNightly, plus on changeCatalogs change slowly
Customer-specific price, stock, credit checkLive call while quotingCopying every price combination is impractical; read it on demand
Invoice history backfillOne-off batch, overnightProtects API limits on both sides

On the Salesforce side, event-driven flows usually listen to Change Data Capture or Platform Events, and large loads go through Bulk API 2.0. Our Salesforce integration guide explains the API choices in more depth.

How to set up a Salesforce ERP integration, step by step

The order is the same for a vendor connector, an app, an iPaaS or a custom build.

  1. Map the current quote-to-cash processSit down with sales ops and finance for half a day. Write down what triggers an order (won opportunity, accepted quote, signed contract), who creates customers today, and where orders get changed after they are booked.
  2. Fill in the system of record tableUse the table above. One owner per object and, where both sides edit the same object, per field. Agree who fixes sync errors and how fast.
  3. Clean both sidesDeduplicate accounts in Salesforce and customers in the ERP before the first sync. Decide whether Salesforce products will be loaded from the ERP item list (usually yes). Dirty data copied by an integration becomes twice the cleanup.
  4. Create integration usersDon’t connect with an admin’s personal login. In Salesforce, use a dedicated integration user; supported editions include a limited number of free API-only Salesforce Integration user licenses, according to Salesforce. Give it a permission set with only the objects the sync touches. Do the same with a role-limited user on the ERP side.
  5. Connect sandboxes, not productionConnect a Salesforce sandbox to an ERP test or sandbox environment. Load a copy of real customers, items and price lists. Many ERP projects lose weeks waiting for ERP sandbox access, so request it on day one.
  6. Build master data flows firstItems and prices from the ERP into Salesforce, then the account-to-customer match. Match on the stored ERP ID first, then on one exact field you trust, and send everything else to a review queue instead of creating a new customer.
  7. Build the order flow and the return flowWon deal to sales order with lines, then order status, invoices and payments back to Salesforce. Lock the order lines in Salesforce once the ERP has booked them.
  8. Test the awkward casesPut real deals through the sandbox, including the messy ones: a new customer, an existing one, a deal with several lines and a discount, a tax-exempt customer, a foreign-currency customer, an order changed after booking, a partial payment, a credit memo. Have finance check each result in the ERP.
  9. Go live in phasesSwitch production on for new deals only, from an agreed cut-off date, and check the error queue every day for two weeks. Add flows (quotes, live pricing, history) in later phases, one at a time.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Pitfalls and how to fix them

ProblemWhy it happensFix
Duplicate customersBoth systems are allowed to create customers, or the sync pairs records by company name, so a legal suffix or a typo on one side produces a second customer.Only one system creates customers. Match on the stored ERP ID; route unmatched accounts to a review queue.
Two masters for one fieldSales edits the billing address in Salesforce, finance edits it in the ERP, each sync overwrites the other.One owner per field. Show the other side read-only and give users a way to request a change.
Sync loopsField updates flow both ways, so each write wakes the other side’s sync, which writes back again.Give every field a single direction. Have the integration ignore changes made by its own integration user.
Orders changed after bookingA rep edits a won opportunity after the sales order exists; the ERP never hears about it, or receives a second order.Lock synced lines in Salesforce. Route changes through a change order or an amendment process in the ERP.
Unmapped products and unitsA Salesforce product has no ERP item, or units of measure differ, so the order fails.Load products from the ERP. Block closing deals with unmapped products using a validation rule.
Picklist and code mismatchesPayment terms, regions, tax codes or currencies use different values on each side.Keep a mapping table in the integration layer, not hard-coded in flows. Review it when finance adds a value.
Wrong tax or totalsSalesforce sends tax amounts that disagree with the ERP’s tax engine.Let the ERP calculate tax. Send address and exemption status, then read the final total back.
API limits during backfillLoading years of invoices hits API limits or concurrency limits in Salesforce or the ERP.Backfill overnight in batches with Bulk API; sync only changed records after that.
Duplicate orders on retryA timeout makes the integration resend an order the ERP already created.Make order creation idempotent: send the Salesforce ID as an external reference and check it before creating.
Sync stops silentlyA password or token expires; errors go to an inbox nobody reads.Dedicated integration users, alerts to a shared channel, a named owner and a weekly error review.

What not to sync

Copying everything is slower, burns API calls and exposes financial detail to people who don’t need it. Leave the general ledger, journal entries and chart of accounts in the ERP, along with costing and margins below the level sales should see, vendor bills, payroll and bank data. Sync only the invoice history sales actually uses, usually the last one to two years.

When a custom integration makes sense

Connectors and apps fit most standard processes. Custom middleware pays off when:

  • Pricing, billing or approval rules are too specific for a connector: subscriptions, usage, milestones, multi-entity revenue splits.
  • Reps need live price, stock or credit checks during quoting.
  • Volume is high enough that per-user or per-transaction pricing costs more each year than a build.
  • You connect a heavily customized ERP or a legacy system with SOAP, file or EDI (electronic data interchange) interfaces.
  • The same quote-to-cash logic must serve other channels, such as a customer portal or an online store.

A typical custom build includes a canonical data model, an ID cross-reference store, idempotent order creation, an event listener on the Salesforce side, scheduled or event-driven pulls from the ERP, a retry queue and an error dashboard finance can read. If you plan an ERP migration, this middle layer is what lets you swap the ERP adapter while Salesforce stays untouched.

$10–40kTypical custom two-way sync with an accounting system
$40–150k+Typical ERP integration with SAP, NetSuite or Dynamics 365
2–6 monthsTypical first phase with an enterprise ERP
15–25%Of the build per year for maintenance and API changes

For how these ranges break down, see our API integration cost guide. Building a wider data platform around Salesforce and the ERP? Read the cost of data integration. If you are weighing a custom ERP instead of a packaged one, custom ERP development cost covers that decision.

Go-live checklist

Salesforce ERP integration go-live readiness

FAQ

What is Salesforce ERP integration?
It is a connection that moves data between Salesforce, where sales manages deals, and an ERP or accounting system, where orders are booked, invoiced and paid. A typical integration sends won deals to the ERP as sales orders and brings order, invoice and payment status back to Salesforce. It also keeps customers, products and prices consistent in both systems.
Does Salesforce have a native ERP integration?
Salesforce has no built-in ERP sync. It offers MuleSoft, its own integration platform, and Salesforce Connect, a paid add-on that shows external data such as ERP orders inside Salesforce without copying it. Some ERP vendors ship their own Salesforce connector: Oracle has one for NetSuite and Sage has one for Sage Intacct. For other ERPs you use an AppExchange app, an iPaaS or a custom build.
Which ERP integrates best with Salesforce?
The one you already run, as long as it has a modern API and a maintained connector. NetSuite and Sage Intacct stand out because their vendors publish a Salesforce connector. SAP, Dynamics 365 and Workday integrate well through iPaaS platforms and their REST or OData APIs. QuickBooks and Xero have several AppExchange apps. Pick the ERP for finance reasons, then choose the integration route.
Can Salesforce replace an ERP?
Not on its own. Salesforce is a CRM platform and does not include a general ledger, inventory costing or payroll. Some vendors build accounting or ERP apps on the Salesforce platform and sell them on AppExchange, which removes the integration because both sides share one database. That is a finance system choice, so involve your controller or CFO before going that way.
How long does a Salesforce ERP integration take?
A connector or AppExchange app for an accounting system usually goes live in a few weeks, including sandbox testing. A first phase with an enterprise ERP, covering accounts, products, quote to order and order status, typically takes two to six months. Most of that time goes into ownership decisions, data cleanup, sandbox access and user acceptance testing, not coding.
How much does Salesforce ERP integration cost?
Apps for QuickBooks or Xero cost a monthly subscription. A custom two-way sync with an accounting system typically costs $10,000–40,000 to build, and an ERP integration with SAP, NetSuite or Dynamics 365 typically $40,000–150,000 or more, plus 15–25% of the build per year for maintenance. iPaaS licenses come on top if you use one. Our API integration cost guide breaks these ranges down.

Where Gilzor fits

ERP projects stall on ownership and sandbox access more often than on code, which is why the mapping comes first. Gilzor is a software development company with engineers in Poland and Cyprus, not a Salesforce reseller. We can run the quote-to-cash mapping with your sales ops and finance teams, build the integration on your ERP vendor’s connector, an iPaaS or custom middleware, and support it after launch (see Salesforce integration services).

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Art Scherbakov
Written byArt Scherbakov

Co-Founder of Gilzor. Works with founders and product companies on how to staff and run engineering: team extension, dedicated teams, and getting stalled projects moving again.

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights