· 15 min read

Salesforce SAP Integration: Options, Data Flows and Pitfalls

Salesforce SAP integration connects the front office, where reps sell, with the back office, where SAP prices, ships and bills. You can build it on SAP Integration Suite, MuleSoft, another iPaaS such as Boomi, or custom code over SAP's APIs. The platform matters less than three decisions: which system owns each record, which flows must be real time, and how errors get fixed. This guide walks through all three.
Two systems, a CRM window and an ERP server stack, connected through a middleware hub with arrows flowing both ways, illustrating Salesforce SAP integration
Connecting Salesforce and SAP?Tell us which SAP release you run and which flows matter most. Gilzor’s engineers can map the data flow, build the integration and support it after launch.
Scope my SAP integration

Who owns what: the front office and back office split

In almost every company that runs both, Salesforce is where customers are won and SAP is where orders are fulfilled and paid. Reps live in Salesforce. Finance, supply chain and customer service live in SAP, whether that is SAP ECC or S/4HANA, on premise or in the cloud.

The integration exists so that reps stop asking the back office questions SAP already knows the answer to: "Is this customer on credit hold?", "What is the real price?", "Can we ship 400 units by the 15th?", "Did they pay the last invoice?". And so that back office staff stop retyping orders that reps already entered.

Before choosing any tool, write down the system of record for each kind of data. This table is the most common starting point:

DataSalesforce objectSAP objectDirectionSystem of record
CustomersAccountCustomer master (ECC) or business partner with customer role (S/4HANA)Both ways, with rulesSAP once the customer orders; Salesforce for prospects
ContactsContactContact person on the customer or business partnerSalesforce to SAP, often only those needed for ordersSalesforce
Ship-to and bill-toAccount (child accounts or custom object)Partner functions (sold-to, ship-to, bill-to, payer)SAP to SalesforceSAP
ProductsProduct2Material or product master, by sales organizationSAP to SalesforceSAP
PricesPrice book entriesPricing conditions (list price, customer prices, discounts)SAP to Salesforce, or live lookupSAP
QuotesQuote or CPQ quoteQuotation (optional) or order simulationSalesforce to SAP for pricingSalesforce
OrdersOrder (or custom object)Sales orderSalesforce to SAP to create, SAP to Salesforce for statusSAP after creation
AvailabilityShown on quote or order, rarely storedAvailable-to-promise (ATP) checkLive lookupSAP
DeliveriesCustom object or fields on OrderOutbound delivery, shipment trackingSAP to SalesforceSAP
Invoices, open itemsCustom object or external objectBilling documents, accounts receivableSAP to SalesforceSAP
CreditFields on AccountCredit limit, exposure, block statusSAP to Salesforce, or live lookupSAP

The rule of thumb: whatever SAP needs to ship, bill or collect, SAP owns. Salesforce may display it, but changes go back through SAP's own processes.

What typically flows between Salesforce and SAP

Most projects cover the same six flows, roughly in this order of value:

  1. Account to customer. When an opportunity is won (or a credit application approved), Salesforce asks SAP to create the customer or business partner. SAP returns its customer number, which is written back to the Account.
  2. Products and prices to Salesforce. Materials sold in each sales organization, with list prices, land in Salesforce products and price books on a schedule.
  3. Live price and availability. While a rep builds a quote, Salesforce calls SAP to simulate the order: net price after all conditions, tax, and an ATP date for each line.
  4. Quote to sales order. When the customer accepts, the order is created in SAP from the quote, and the SAP order number comes back.
  5. Order status, deliveries and invoices back to Salesforce. Reps and service agents see whether an order is open, partly delivered, shipped or billed without logging into SAP.
  6. Credit and payment visibility. Credit limit, current exposure, blocks and overdue invoices appear on the Account, so reps don't quote customers who can't be shipped to.
Salesforce SAP integration: the typical data flow Salesforce front office Accounts Opportunities Quotes / CPQ Orders Service cases Integration layer Integration Suite, MuleSoft, Boomi or custom field mapping ID cross-reference retries error queue SAP ECC / S/4HANA back office Customers / BP Materials, pricing ATP Sales orders, deliveries Billing, credit new customer quote to price accepted order create customer simulate order create order SAP to Salesforce: customer numbers, products and prices, price and ATP results, order status, invoices, credit Solid arrows: Salesforce to SAP. Dashed: SAP back to Salesforce. Everything passes through one layer that logs it.
Salesforce asks, SAP decides. Prices, availability, customer numbers and order status always come from SAP, and every message passes through a layer that can retry it or park it in an error queue.

Integration options compared

There is no button in Salesforce Setup that connects it to SAP. Every real project uses a middleware layer, a custom service, or both. Salesforce Connect is the one exception for read-only views: it can show SAP data in Salesforce through OData without copying it. The main options:

OptionHow it connects to SAPBest forCost levelEffort and limits
SAP Integration Suite (on SAP BTP)SAP's own adapters (IDoc, RFC, OData, SOAP) plus a Salesforce adapter available in its catalogCompanies already on SAP BTP or moving to S/4HANA with RISE; SAP-led IT teamsMedium to high: BTP subscription plus buildStrong SAP content and API catalog. Salesforce side needs more custom mapping work than on Salesforce-centric tools.
MuleSoft AnypointSAP Connector (SAP-certified, uses SAP Java Connector for IDoc and BAPI/RFC), plus OData and SOAP options for S/4HANASalesforce-centric IT, API-led architecture, many systems beyond SAPHigh: platform license, the SAP connector is licensed separatelyVery capable for both sides. Needs MuleSoft skills; overkill for two systems and a few flows.
Boomi, Workato and other iPaaSSAP connectors for RFC/BAPI and IDoc (Boomi for SAP adds a component inside SAP); S/4HANA OData connectorsMid-size companies that want low-code flows and already use the platformMedium: subscription by connectors or tasksFast for standard flows. Complex pricing or ATP calls still need careful design and SAP-side work.
Salesforce Connect (OData)Reads SAP OData services (from SAP Gateway or S/4HANA) as external objectsRead-only views: order history, invoices, open itemsAdd-on licenseNo copies to sync, but data is fetched live, so slow SAP services mean slow pages. Limited for reporting and automation.
Custom middlewareYour own service calling OData, SOAP, BAPI/RFC, or receiving IDocs; Salesforce REST, Bulk and Pub/Sub APIsUnusual logic, high volumes, or a strong in-house team; companies avoiding another platform licenseBuild cost up front, low run costFull control. You own monitoring, retries, upgrades and documentation.

Third-party Salesforce adapters for SAP Integration Suite and SAP Process Orchestration also exist and are listed on SAP's partner pages. Many SAP shops still run SAP PI/PO; if yours does, factor its own end of maintenance into the decision rather than building new flows there. According to SAP, SAP Process Orchestration 7.5 follows the same timeline as SAP NetWeaver 7.5: mainstream maintenance ends at the end of 2027, with optional extended maintenance through 2030, and SAP points PI/PO customers to SAP Integration Suite as the successor.

Which option fits you

Six questions. The answer is a starting point for the conversation with your SAP and Salesforce teams, not a final architecture.

Which Salesforce SAP integration approach fits you?

Real time vs batch: decide per flow

"Real time everything" is the most expensive mistake on these projects. Real-time calls need SAP services that respond fast, under load, every time a rep clicks. Use them only where a rep or customer is waiting for the answer.

FlowRecommended timingWhy
Price and availability during quotingReal time (synchronous call)The rep needs the net price and a delivery date before sending the quote. A copy would be stale.
Credit status before an orderReal time, or near real time with a cached valueA blocked customer should be visible before the order is placed.
Quote to sales orderNear real time (event, seconds to minutes)Fast enough for the rep, and an asynchronous queue survives SAP being briefly unavailable.
Customer creationNear real time, often after an approval stepMaster data teams often review new customers in SAP first.
Order status, deliveriesNear real time events, or every 15–60 minutesStatus changes matter, but nobody waits on a screen for them.
Products and list pricesBatch, daily or on changeThey change rarely; full loads are easy to reconcile.
Invoices and payment historyBatch daily, or live view through Salesforce ConnectMostly for reference; volumes can be large.

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

The order below works for any of the platforms above. Steps 1–3 are where most of the real decisions happen.

  1. Map ownership and scopeFill in a table like the one at the top of this page with your SAP and Salesforce owners in the same room. For each flow, agree on the system of record, direction, timing and what happens on conflict. Cut phase one to the flows that remove the most retyping and phone calls.
  2. Clean and match master dataBefore anything syncs, match existing Salesforce Accounts to SAP customers and store the SAP number on the Account. Agree on which duplicates to merge, on which side. This step often takes longer than building the flows.
  3. Choose the SAP interfaces with your SAP teamFor each flow, pick the interface: standard OData or SOAP APIs where your release has them (S/4HANA), BAPIs over RFC (for example for order creation and order simulation), or IDocs for asynchronous messages such as order confirmations. On S/4HANA, prefer released APIs over custom ABAP to keep the core clean.
  4. Set up the integration user on each sideIn Salesforce, create a dedicated integration user. According to Salesforce's documentation, Enterprise, Performance and Unlimited editions include a small number of API-only Salesforce Integration user licenses; give that user a permission set with only the objects and fields it needs. In SAP, ask Basis for a technical user (system or communication user) with authorizations limited to the BAPIs and services in scope.
  5. Build the canonical model and mappingDefine one middle format for customer, product, order and status, and map each system to it. Map picklists and code lists explicitly: sales organization, distribution channel, division, plant, payment terms, Incoterms, units of measure, currencies.
  6. Build flows in value order, with logging from day oneStart with account to customer and products to Salesforce, then price and ATP simulation, then quote to order, then status back. Every message gets a correlation ID, a log entry and a place in an error queue if it fails.
  7. Test in a Salesforce sandbox against an SAP QA systemUse a full or partial copy sandbox connected to SAP QA, never production. Test the unhappy paths on purpose: customer on credit block, material not released for the sales org, SAP down during order creation, the same order sent twice.
  8. Load, reconcile, then go live in wavesRun initial loads, then reconcile counts and totals between systems (open orders, customer count by sales org). Go live with one region or business unit, watch the error queue daily for two to four weeks, then widen.

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

ECC end of maintenance and the move to S/4HANA

If you are still on SAP ECC, the integration you build now will probably have to survive an ERP migration. According to SAP's published maintenance strategy, mainstream maintenance for SAP ERP 6.0 (enhancement packages 6–8) ends at the end of 2027, with optional extended maintenance through 2030 at an extra fee. SAP has also announced the SAP ERP, private edition, transition option: eligible RISE with SAP customers who move their ECC systems to SAP ERP, private edition, before the end of 2030 can keep running them from 2031 through 2033 while they finish the move to S/4HANA. Check your enhancement package and contract terms with SAP.

What changes for the integration when you move:

  • Business partner replaces customer master. In S/4HANA, customers are business partners with a customer role. Account-to-customer flows built on ECC customer BAPIs or IDocs need rework.
  • APIs change. S/4HANA offers released OData and SOAP APIs for many objects. S/4HANA Cloud, public edition, allows only released APIs, so integrations that depend on custom function modules or direct table reads will not carry over.
  • Numbers may change. Migrations sometimes renumber customers or materials. Keep a cross-reference table in the middle layer so Salesforce does not depend on SAP's internal numbers alone.
  • Both ERPs may run at once. During a phased migration, some regions sit on ECC and others on S/4HANA. A middleware layer can route each message to the right system; point-to-point code cannot.
Build for the migration, not around it

Put a stable canonical model and a middleware layer between Salesforce and SAP. When SAP changes underneath, you rewrite the SAP-side adapters, and Salesforce, its flows and its reports stay as they are.

Pitfalls and how to fix them

  • Two masters for customer data. Reps edit an address in Salesforce, the credit team edits it in SAP, and the sync overwrites one with the other. Fix: make SAP the owner of fields SAP needs to ship and bill; make those fields read-only in Salesforce once a customer number exists, and route change requests through a case or approval flow.
  • Number range clashes. Teams try to create SAP customers with Salesforce IDs, or Salesforce reuses an SAP number from another sales org. Fix: let SAP assign its own numbers (internal number range), store them in an external ID field on the Account, and keep a cross-reference table for every object.
  • Pricing logic copied into Salesforce. SAP pricing often combines many condition types, customer agreements, rebates and freight. A copy in Salesforce CPQ drifts within weeks, and quotes stop matching invoices. Fix: sync list prices for speed, and call SAP order simulation for the final net price before a quote is sent.
  • Slow SAP calls freezing Salesforce pages. A live ATP or pricing call that takes several seconds feels broken to reps, and Salesforce limits how long callouts can run. Fix: call SAP only on an explicit button such as "Check price and availability", tune the SAP service with your Basis team, and cache results for a short time.
  • Sync loops. An update from SAP changes the Account in Salesforce, which triggers an update back to SAP, and so on. Fix: ignore changes made by the integration user in outbound triggers, and send only fields that actually changed.
  • Code list mismatches. Salesforce picklists say "Net 30", SAP says "Z030". New values are added on one side and orders start failing. Fix: keep the mapping table in the middleware, owned by one person, and alert on unmapped values instead of failing silently.
  • Salesforce API limits. Bulk loads of products, prices and invoices can eat the org's daily API allocation and break other integrations. Fix: use the Bulk API for large loads, send changes instead of full loads, and monitor API usage.
  • No error queue, no reconciliation. Failed messages vanish into logs and someone finds out from an angry customer. Fix: every failed message goes to a queue that a named person reviews daily, with a retry button. Run a weekly reconciliation report: open orders, customers and invoice totals compared across both systems.
  • Data that should not sync. Full payment history, bank details, employee data from SAP HR, and every SAP customer ever created rarely belong in Salesforce. Fix: sync only what reps and service agents use, and show the rest live on demand.

Timeline and budget at a glance

6–10 wkOne-way batch sync of accounts, products and prices
3–6 moPhase one: customers, products, live price and ATP, quote to order, status back
6–12 moSeveral SAP systems or regions, or a parallel ECC to S/4HANA migration
30–50%Of the effort often goes to mapping, data cleanup and testing, not code

These ranges are typical for mid-market and enterprise projects, not guarantees; SAP-side changes and data quality move them most. Platform licenses (BTP, MuleSoft, iPaaS) come on top of build cost. For how integration budgets break down, see our guides on API integration cost and data integration cost.

When a custom integration makes sense

A custom service between Salesforce and SAP is reasonable when you have only these two systems to connect, your logic does not fit a connector (for example complex configurable products or multi-plant ATP rules), or platform licenses would cost more over five years than building and running the service.

A solid custom build typically includes: a small service or set of functions hosted in your cloud, connections to SAP through OData, SOAP or the SAP Java Connector for BAPIs, Salesforce REST, Bulk and Pub/Sub APIs, a message queue for asynchronous flows, a cross-reference store, an error queue with a simple admin screen, alerts and runbooks. If you go this way, treat it as a product with an owner, not a one-off script. Our API development and custom software development pages describe how such builds are usually scoped.

For other Salesforce connections, from email and phone systems to other ERPs, start with the Salesforce integration guide. If you are comparing ERPs, the Salesforce NetSuite integration guide covers the mid-market alternative.

Go-live checklist

Tick what is already true for your project before the first real order flows through.

Salesforce SAP integration go-live

FAQ

How do I integrate Salesforce with SAP?
Start by deciding which system owns each kind of data: usually SAP owns customers, materials, prices, orders and invoices, and Salesforce owns leads, opportunities and quotes. Then pick a middleware layer (SAP Integration Suite, MuleSoft, Boomi or another iPaaS, or custom code), connect it to SAP through OData, BAPI/RFC or IDoc and to Salesforce through its APIs and a dedicated integration user. Build flow by flow, test against an SAP QA system and a Salesforce sandbox, and add error queues and reconciliation reports before go-live.
Does Salesforce have a native SAP connector?
Not a built-in, point-and-click sync like some CRM-to-accounting connectors. The common routes are middleware with SAP and Salesforce adapters: MuleSoft (owned by Salesforce) offers an SAP connector, and SAP Integration Suite offers a Salesforce adapter. Salesforce Connect can also show SAP data in Salesforce through OData without copying it, which suits read-only views such as order history.
Should I use MuleSoft or SAP Integration Suite for Salesforce and SAP?
Both can do the job, so the deciding factor is usually your existing estate and team. If you already license SAP BTP or are moving to S/4HANA with RISE, SAP Integration Suite keeps integration close to SAP’s own APIs and content. If your IT team already runs MuleSoft or the Salesforce side drives the architecture, MuleSoft is the natural choice. Compare total license cost, existing skills and how many other systems the platform will connect.
How long does a Salesforce SAP integration take?
A one-way batch sync of accounts and products can be live in 6–10 weeks. A typical first phase with account and product sync, quote to sales order, real-time price and availability checks and order status usually takes 3–6 months. Programs that cover several SAP systems, regions or a parallel S/4HANA migration often run 6–12 months or longer, mostly because of data cleanup and SAP-side changes.
What happens to my Salesforce SAP integration when we move from ECC to S/4HANA?
Expect rework. S/4HANA replaces separate customer and vendor masters with business partners, changes some tables and APIs, and SAP pushes customers toward released OData and SOAP APIs instead of custom code inside the ERP. Integrations built on a middleware layer with a stable canonical model usually need changes only on the SAP side, while point-to-point code often has to be rewritten.
Can Salesforce CPQ calculate SAP prices?
It can, but duplicating SAP pricing logic in Salesforce is one of the most common causes of wrong quotes. Many companies keep list prices in Salesforce for fast quoting and call SAP to simulate the order for the final net price, discounts, taxes and availability before the quote goes out. If your SAP pricing uses many condition types and customer-specific agreements, a real-time pricing call is usually safer than a copy.

Where Gilzor fits

Gilzor builds and maintains Salesforce integrations. Our engineers can map the data flow between Salesforce and SAP, build the integration on your chosen platform or as a custom service, add the error queues and reconciliation reports, and support it after launch (see Salesforce integration services). Gilzor works from Poland and Cyprus, with a few shared hours a day with the US East Coast.

Tell us which SAP release you run, which platform you already license and which flows hurt the most. We'll help you map ownership, compare the integration options and scope a realistic first phase.

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