Get in Touch
About Us Insights Newsroom Gallery Why AtomicNorth Get in Touch

Salesforce
Integration

An integration is not finished when the record arrives. It is finished when somebody can tell you, without opening either system, that the two sides still agree, and what happened to the eleven records that did not make it last Tuesday.

Interfaces are judged on their failure behaviour, not on the happy path.

Pattern firstThen the tool

Batch, event or request, decided per interface before anyone picks middleware.

ERP sideOracle in-house

EBS, Fusion and the database layer supported by the same firm, with in-house Oracle expertise.

ErrorsOwned

Every interface has a failure path, a retry policy and a named owner.

ProofReconciliation

A scheduled check that the two systems still agree, reported whether or not it passed.

What we build

Interfaces that fail in a way you can act on

The design work is mostly deciding which pattern each interface is. Get that wrong and no amount of middleware rescues it.

Interface design

Each interface classified before it is built: batch, near-real-time event, or synchronous request. Volume, latency tolerance and failure consequence decide which.

Most integration pain comes from a synchronous call doing a job that should have been a queued event, usually because it was quicker to write.

A pattern chosen on purpose.

ERP and finance

Quote to cash, customer master, product and pricing, invoice and payment status, into Oracle E-Business Suite, Fusion, or whatever the finance system happens to be.

We support the Oracle side of these interfaces in-house, which removes the usual argument about which end the fault is on.

One firm accountable for both ends.

Middleware

MuleSoft where it is already in the estate or genuinely warranted, platform events and the Salesforce APIs where it is not, and a plain answer about which this is.

Middleware licensed for one interface is a cost that outlives the reason for it.

The lightest thing that does the job.

Error handling and retry

Dead-letter handling, retry with backoff, idempotent writes so a replay does not duplicate, and alerting that names the interface and the owner.

An interface with no failure path has one anyway. It is called silence, and you find it at month end.

Failures that announce themselves.

Reconciliation

A scheduled comparison of the record sets either side, reported on a cadence whether or not it found a discrepancy.

This is the part that gets cut for time and the part that would have caught the problem three weeks earlier.

Evidence that the two sides agree.

Monitoring and limits

API consumption watched against the org limits, with headroom reported before it becomes an outage rather than after.

Governor and API limits are the failure mode that arrives suddenly, usually on the busiest day.

Headroom you know about in advance.

How an interface gets built

StageOneMap

Field-level mapping agreed between the two systems, including what happens when a value exists on one side and not the other, and which system wins on conflict.

The mapping argument is better had now than during a month-end reconciliation.

You receive:

A signed mapping and a system of record

Field by field, with transformation rules, mandatory fields and the conflict policy written against each.

Both system owners sign it, not just the project.

StageTwoBuild

The interface built to the chosen pattern, with its error path, retry policy and idempotency written at the same time as the happy path rather than after it.

Retry without idempotency is how a failed batch becomes a duplicate problem.

You receive:

An interface plus its failure behaviour

The integration, its error handling, its alerting, and the run book for the person who gets the alert.

The failure path is demonstrated, not just described.

StageThreeProve

Volume testing against realistic record counts, failure injection to confirm the error path behaves, and a first reconciliation run before anything is trusted.

An interface that has never been made to fail on purpose has untested error handling.

You receive:

A test record and a baseline

Throughput at expected and peak volume, the result of each injected failure, and the first clean reconciliation.

Go live is a decision made on this.

StageFourRun

Monitored in production with API headroom tracked, reconciliation on a schedule, and interface health in the monthly service review alongside everything else.

An integration is a living thing. Both ends change, usually without telling each other.

You receive:

A monthly interface report

Volumes, failures, retries, reconciliation results and API consumption against limits, with remediation owned and dated.

Reported whether or not it was a good month.

01
Patterns

Which pattern each interface gets

Chosen per interface at design time. Most estates end up with a mixture, and that is correct.

Salesforce Integration: patterns, pattern, use it when, typical mechanism, failure behaviour
PatternUse it whenTypical mechanismFailure behaviour
Scheduled batchVolume is high and same-day is good enoughBulk API, scheduled jobWhole run retried, exceptions reported
Event drivenThe other system should react promptly but not blockPlatform events, change data captureQueued and replayed, order preserved
Synchronous requestThe user is waiting and cannot proceed without an answerREST calloutFails fast with a message the user understands
Outbound notificationA simple trigger is enough and payload is smallOutbound message, FlowRetried by the platform, then dead-lettered
File transferThe far end is legacy and offers nothing betterSecure file drop, scheduled loadChecksum and row count checked before load
Ownership

One firm on both ends of the interface

The usual integration argument is which side the fault is on, conducted between two suppliers who each have a reason to say it is the other one.

We support Oracle E-Business Suite, Fusion and the database layer in-house with in-house Oracle expertise, so for most finance and ERP interfaces there is one firm accountable for both ends and no argument to have.

Talk to an expert
  • One ticketAn interface failure is one incident with one owner, not a ticket on each side.
  • One reconciliationCompared from both ends by the same team, so a discrepancy has a cause rather than a dispute.
  • One change windowChanges either side are planned against each other, because an ERP patch and a Salesforce release do not coordinate themselves.

Scope and targets are set after discovery, against the org as it stands.

Questions we get asked

Before you send an RFP

Do we need MuleSoft?

Often not. If it is already in the estate and paid for, we will use it. If it would be bought for this project, we will tell you plainly whether the interface count justifies it, because middleware licensed for two interfaces is a cost that outlives the reason for it.

Can you integrate with Oracle E-Business Suite?

Yes, and we support the Oracle side as well, with in-house Oracle expertise. That is the practical difference on finance interfaces: no argument about which end the fault is on, because it is the same firm on both.

What about the Salesforce API limits?

They are a design input, not something to discover later. Consumption is estimated during design, monitored in production, and reported against the limit with headroom stated. A batch pattern often exists specifically to stay inside them.

How do you handle a failed record?

It goes to a dead-letter position, raises an alert naming the interface and the owner, and appears on the reconciliation. It does not sit in a log nobody reads, which is the usual arrangement and the reason month end is a surprise.

Bring us themapping.

Or the fact that there isn't one. Either way the first piece of work is agreeing which system wins on conflict, and that conversation is cheaper now than at month end.

Get in touch +91-120-4849200