Button Text

Integrating Salesforce with SAP S/4HANA

Salesforce knows who the customer is, what was promised and when. SAP S/4HANA knows what the product costs, whether it exists, and whether the invoice was paid. Most organisations run both, and most of them keep the two in agreement through a mix of overnight batches, spreadsheet exports and someone re-keying orders.

That works until it does not. A price changes in SAP and a quote goes out at the old one. An account is created twice and the credit check runs against the wrong record. An order is confirmed in Salesforce that fulfilment cannot deliver.

None of this is a technology problem. It is a question of which system is allowed to be right, and how quickly the other one finds out.

What actually has to agree

Before anyone chooses a platform or writes an interface, it is worth being specific about what is being synchronised. In an order-to-cash landscape it usually comes down to six things.

  • Customer and business partner records. The same organisation exists in both systems, usually with different identifiers, sometimes with different addresses and almost always with different ideas about who owns the relationship.
  • Products and materials. SAP holds the material master. Salesforce holds a version of it that sales can quote from. Every divergence between the two turns into a quote that cannot be fulfilled.
  • Pricing conditions. The most common source of friction, because pricing in SAP is rarely a single number. It is a structure of conditions, scales and discounts that does not map cleanly onto a CRM price book.
  • Sales orders. Created in the CRM, executed in the ERP. This is the flow everyone thinks of first and it is rarely the hardest one.
  • Order status and fulfilment. The return leg. Sales needs to know what shipped, what is backordered and what was invoiced, without logging into SAP.
  • Credit and availability. Whether this customer can order, and whether the stock exists. Both live in SAP and both are needed at the moment of quoting.

The decisions that matter more than the technology

Integration projects tend to start with a platform choice. They tend to get into trouble over four decisions that have nothing to do with platforms.

1. Which system is the source of truth, per object

Not per system, per object. Materials and pricing almost always originate in SAP. Opportunities and activity almost always originate in Salesforce. Customers are genuinely contested, and the answer differs by organisation depending on whether finance or sales creates the account.

Leaving this vague is the single most reliable way to end up with two systems that disagree and no rule for resolving it.

2. What real time actually needs to mean

Not everything needs to be instant. A material master change can wait an hour. A credit block cannot wait at all. Treating every object as real-time is expensive; treating none of them as real-time is why sales quotes from stale data.

The useful exercise is to go object by object and ask what the business cost is of the data being an hour old. Most of the list turns out to tolerate latency perfectly well.

3. What happens when a message fails

Every integration fails sometimes. The question is whether anyone finds out. A sync that silently drops a sales order is worse than no sync at all, because the business has stopped checking manually.

Error handling, alerting and a way to replay failed messages are not a phase-two concern. They are the difference between an integration people trust and one they work around.

4. Who owns it after go-live

Custom interfaces need maintenance every time either platform changes, and Salesforce releases three times a year. If the answer to who maintains this is the person who built it, the integration has a shelf life measured by that person's tenure.

No items found.

Where these projects get into trouble

Two data models that were never meant to meet. SAP's structures are built around financial and logistical integrity. Salesforce's are built around the sales conversation. Neither is wrong; they just do not line up, and the mapping between them is where most of the effort goes.

The cases nobody designed for. Partial deliveries. Pricing exceptions agreed on a call. A customer that exists in one system and not the other. These surface in month four of a build, after the budget is set.

Volume. An integration that works for a thousand messages a day may not work for a hundred thousand. This is worth establishing before the architecture is fixed rather than after.

Scope creep through the back door. The first integration is customers and orders. Then someone asks for contracts, then service cases, then a second Salesforce org from an acquisition. An architecture that assumed one flow rarely survives that.

Build it, or start from prebuilt content

There are three realistic routes, and the honest answer is that all three are appropriate in different situations.

Point-to-point. Fastest to get one interface live. Becomes unmanageable somewhere around the fifth or sixth, because each connection is maintained independently and nobody has the whole picture.

Custom development on an integration platform. Full control, and the right answer when the process genuinely is unusual. The cost is that the build effort and the ongoing maintenance are both yours, and the edge cases are all discovered the hard way.

Prebuilt integration content. The standard order-to-cash scenarios already exist and are deployed as a baseline, leaving configuration rather than development. Salesforce Integration Content for SAP S/4HANA runs on SAP Integration Suite and covers customer, product, pricing and sales order flows out of the box.

The trade-off is straightforward. Custom gives you exactly what you specify, at the cost of specifying and maintaining all of it. Prebuilt content gives you most of it immediately, and the work shifts to the part that is genuinely specific to your landscape: your sales organisation structure, your pricing logic, your approval rules.

Most organisations discover that the genuinely unusual part of their integration is a good deal smaller than they assumed at the outset.

A note on event-driven synchronisation

Batch integration made sense when the alternative was expensive. It is now the more expensive option in most landscapes, because the cost has moved from infrastructure to the consequences of stale data.

Event-driven patterns, where a change in one system publishes an event the other subscribes to, remove the window in which the two systems disagree. Salesforce's Pub/Sub API and SAP's event-driven standards both support this, and Rojo's Salesforce integration content is built on them rather than on the older polling-based streaming approach.

Worth knowing: integrations built on Salesforce's legacy CometD-based streaming options, PushTopic events and Generic events, are running on components Salesforce classifies as legacy and no longer enhances. There is no published retirement date, but anything built on them will need reworking eventually.

Where to start

Two questions answer most of the scoping.

Which objects, in which direction, and how fresh do they need to be? Six rows on a whiteboard settles more than a month of architecture discussion.

Is any of this genuinely unique to us? Where the answer is no, and for order-to-cash it usually is no, prebuilt content removes the work. Where the answer is yes, that is where the effort belongs.

If you are weighing a build against prebuilt integration content for Salesforce and SAP S/4HANA, the practical next step is to map the objects first. The platform decision follows from it rather than the other way round.

Ready to seamlessly integrate your business?

Ready to connect Salesforce and SAP S/4HANA?

Ready to connect Salesforce and SAP S/4HANA?

Frequently Asked Questions

Common questions about integrating Salesforce with SAP S/4HANA

What is the best way to integrate Salesforce with SAP S/4HANA?

Three approaches are common: point-to-point connections between the two systems, custom development on an integration platform, or prebuilt integration content deployed on SAP Integration Suite. Point-to-point is quickest to start and hardest to maintain once the number of interfaces grows. Custom development gives full control at the cost of build and maintenance effort. Prebuilt content covers the standard order-to-cash scenarios from the outset, leaving configuration rather than development.

Which data should sync between Salesforce and SAP S/4HANA?

In most landscapes: customer and business partner records, products and materials, pricing conditions, and sales orders. Materials and pricing usually originate in SAP and flow to Salesforce, while accounts and orders originate in the CRM and flow back. The direction for each object is an architecture decision worth settling before any build starts.

What makes Salesforce–SAP integrations difficult?

Rarely the connectivity. The difficulty sits in reconciling two data models, agreeing which system owns which record, and handling the cases where the business doesn't behave the way either system assumes, partial orders, pricing exceptions, customers that exist in one system and not the other. Those decisions take longer than the technical work.