ERP Integration with Salesforce: A Practical Guide

ERP Integration with Salesforce: A Practical Guide

Outrank AI

A sales rep sends a quote using the price in Salesforce. Finance rejects it because the ERP price changed yesterday. Meanwhile, customer service is checking a Shopify order that neither system shows correctly, and nobody can explain which record to trust.

ERP integration with Salesforce should resolve those disagreements, not automate them. The difficult part isn't getting an API call to succeed. It's deciding who controls each field, how failures get recovered, and who maintains those decisions when your business changes.

Table of Contents

What Your ERP and Salesforce Each Need to Own

The price mismatch starts before anyone chooses a connector. Sales treats a Salesforce price book as authoritative, finance maintains an ERP price list, and both teams assume the other system will catch up. Connecting them without resolving that conflict only moves the wrong price faster.

In 2024, 81% of IT leaders said data silos hinder digital-transformation efforts, according to Informatica's summary of Salesforce's Connectivity Benchmark Report, which identifies ERP and financial-system integration as cross-functional use cases. For a sales rep, the practical requirement is narrower: see reliable order status and credit limits without leaving Salesforce.

Assign authority before access

Start with an explicit division of responsibility:

Data

Proposed system of record

Other system's role

Accounts, contacts, opportunities, cases

Salesforce

Read approved relationship information

Sales orders and invoices

ERP

Submit order requests and display confirmed results

Item masters and inventory levels

ERP

Read or display

Price lists and customer credit terms

ERP

Display, without independent edits

These are starting decisions, not universal rules. A Salesforce account might own relationship details while the ERP controls its billing identity. Document ownership at field level wherever responsibilities split.

For Shopify brands, include the storefront boundary in that exercise. An ERP and ecommerce integration plan should distinguish customer-entered information from approved financial records. If nobody internally can define those ERP rules, TekRecruiter's resource on ERP talent for growing companies is relevant to filling that operational skills gap.

Create a one-page ownership sheet with object, system of record, sync direction, business owner, and date last agreed. Sales operations should maintain CRM definitions after launch; finance and operations should maintain ERP definitions, with a named integration owner recording approved changes.

Choosing Between a Direct Connector and Middleware

A prebuilt connector trades flexibility for a quicker setup. Custom point-to-point code trades ongoing engineering work for control. An integration platform centralizes orchestration but introduces licensing and specialist skills. A hybrid architecture avoids unnecessary copies but makes some Salesforce screens dependent on ERP availability.

Confirm the ERP product, deployment model, version, and supported interfaces before shortlisting platforms. A connector that supports the ERP's name may still omit your custom order objects or require an interface your deployment doesn't expose.

Salesforce-ERP architecture options compared

Architecture

Best fit

Setup effort

Ongoing maintenance

Main risk

Native or prebuilt connector

One ERP, a narrow set of standard objects

Low to medium

Medium, tied to vendor release cycles

Limited custom transform logic

Custom point-to-point API

A few objects, one developer team

Medium

High, changes require coordination across both endpoints

Brittle as connected systems grow

Integration platform, including iPaaS or MuleSoft

Several connected systems, shared transforms

High

Medium, platform licences and skills

Platform cost and vendor lock-in

Hybrid, ERP-held data via on-demand lookup

Pricing, stock, or invoices that must stay authoritative in the ERP

Medium

Low to medium, fewer copies to reconcile

Slower screens when the ERP is under load

Choose the simplest architecture your support team can operate. A standard customer-and-order flow may fit a connector well. Custom approval chains, regional routing, and shared transformations across Shopify, Salesforce, and the ERP make centralized orchestration more useful.

The strategic importance of that integration layer was evident when Salesforce announced its agreement to acquire MuleSoft on March 20, 2018, for approximately $6.5 billion in enterprise value. That history doesn't make MuleSoft the default choice for a smaller commerce stack.

Evaluate the boundary, not the label

Spell's explanation of Spell's direct connection to PaymentIQ is an adjacent payment-integration example to consider when evaluating direct connections. For Salesforce, ask the same operational questions: who translates errors, who retries requests, and who coordinates endpoint changes?

On our Acure project, technology partners included Shopify Plus, Yotpo for reviews, NetSuite for ERP integration, and Shopify Markets for international commerce. That isn't evidence of a Salesforce implementation; it illustrates why a Shopify integration with ERP must account for the surrounding application stack.

Decision rule: Count the systems and objects in scope, then reject any architecture that leaves competing authoritative records.

After go-live, assign connector upgrades to an application owner, custom code to a development team, and middleware operations to a platform owner. A hybrid approach also needs an ERP availability owner because sales users will depend on those live responses.

Mapping Objects and Choosing a Sync Pattern

Choose a stable external ID before mapping descriptive fields. The ERP customer number is a useful candidate once the customer exists there. Don't match on email alone: shared purchasing addresses, changed domains, and guest checkouts make email an unreliable business identity.

The workspace below illustrates the systems involved in that mapping exercise.

A desktop workspace displaying SAP and Salesforce software screens showing an ERP to Salesforce data synchronization process.

Map meaning as well as fields

Map Salesforce Account to ERP customer, Opportunity or Order to ERP sales order, Product2 to item master, and PricebookEntry to the applicable ERP price-list entry. An opportunity becoming closed-won shouldn't automatically mean the ERP can fulfill it. Define the approval, credit, and required-address conditions that make it an accepted order.

Specify currency precision, rounding method, order-date time zone, units of measure, and tax-code translation. A case of products isn't interchangeable with an individual item, and a local order date can change when converted across time zones.

F1Group's explanation of connecting business apps to share data provides useful context for cross-application workflows. Your mapping sheet must go further, recording null handling, defaults, validation, and rejected-value behavior for every mapped field.

Sync patterns by latency and use case

The delay categories below are design expectations, not performance guarantees.

Pattern

How it works

Typical delay

Good for

Recovery after failure

Scheduled batch

Scheduled job sends changed records

Until the next completed run

Financial summaries, large product catalogues

Rerun the affected time window

Event-driven

Change publishes an event or webhook

Near real time when queues are healthy

Order status, credit holds, case updates

Replay retained events

On-demand lookup

Salesforce requests ERP data when needed

At request time

Inventory, invoices, live pricing

Retry the request without maintaining a replicated copy

Use Salesforce's data integration decision guide to evaluate latency, volume, access, and recovery requirements. Keep authoritative calculations in the ERP and expose only the context sales and service need. For replicated personal or financial fields, define consent, retention, deletion propagation, access controls, and auditability.

This accompanying video offers another way to review the integration workflow.

Check your Salesforce API allocation and whether Bulk API suits catalogue loads before scheduling them. Reserve capacity for operational traffic rather than letting a product import consume the available budget.

After launch, the data steward maintains the field mapping sheet; the integration owner validates record counts and relevant totals after sync runs and investigates differences.

Setting Up Authentication and Access Safely

Treat the integration as its own identity, not an extension of an administrator's account. It should have enough access to perform the approved workflow and no more.

Configure the service identity

  1. Create a dedicated Salesforce integration user. Name it for the connected system so administrators can identify its activity. A personal admin login couples production access to someone's employment, password changes, and interactive security settings.

  2. Configure an approved OAuth application. Use the application registration supported by your Salesforce org, such as an External Client App or an existing Connected App. For a suitable server-to-server implementation, OAuth JWT bearer authentication avoids storing a user password, but the signing private key still needs protection.

  3. Grant permissions from the mapping sheet. Use permission sets for required objects and field-level access, then check record-sharing requirements separately. Starting with broad administrator permissions hides missing access rules until someone tightens them during a critical run.

  4. Apply network and session controls. Where supported, restrict access to trusted middleware egress locations and test token renewal during long jobs. Don't weaken session policies to keep a poorly designed batch alive.

  5. Protect and rotate credentials. Store private keys and client secrets in a secrets manager, restrict retrieval, and record certificate expiry and rotation ownership. Test replacement credentials before revoking the working ones.

  6. Enable appropriate audit tracking. Track sensitive changes where field types and platform capabilities support it, and retain integration logs without exposing confidential payloads. Credit-limit changes may warrant audit history; bank details shouldn't be copied into Salesforce merely because they're available.

Verify the restriction works

Apply equivalent controls to the ERP service account. If the integration only reads prices and creates approved order requests, it shouldn't also change price lists or post journals.

A successful request proves connectivity. A rejected unauthorized request proves part of your access design.

Using the integration identity, test permitted reads and writes through the actual API path, then attempt access outside the approved mapping. The security administrator owns permissions and credential rotation after launch, while the integration owner confirms that security changes don't interrupt business workflows.

How to Build, Test and Go Live

Build around acceptance criteria that finance, sales operations, and fulfillment can verify. A green middleware dashboard isn't enough if invoice totals disagree or cancelled orders reappear.

The implementation flow below summarizes the release stages; failure recovery needs its own explicit approval.

A four-step infographic showing how to build, test, and go live with data integration processes.

Prove the normal path and the broken path

  1. Build in a sandbox. Implement external IDs, validation, and transformations from the approved mapping. Use masked or synthetic sensitive information and disable outbound actions that could notify real customers.

  2. Load a representative test set for every object. Include duplicate names, missing tax codes, cancelled orders, partial shipments, refunds, and customers with different billing and shipping entities. Choose coverage by business condition, not just by record volume.

  3. Repeat the identical sync. Confirm it creates no additional records or duplicate downstream effects. This tests idempotency for that scenario, but also test retries after partial completion and duplicate event delivery.

  4. Break the connection deliberately. Interrupt ERP access during a batch and force a record-level rejection. Confirm the error queue preserves enough context for replay, valid independent records continue where safe, and failed dependencies don't create orphaned order lines.

A timeout deserves special attention. The ERP may have committed the order even though Salesforce never received confirmation. Before resending a create request, query by its stable transaction identifier.

Release a bounded slice

  1. Reconcile business results. Compare order counts, invoice sums, and inventory quantities for matching scope and cutoff times. Separate legitimate timing differences from missing records, and compare monetary totals by currency rather than adding incompatible amounts.

  2. Run a parallel validation period that covers your relevant business cycles. Reps can inspect ERP information in Salesforce while the existing transaction process remains authoritative. Prevent the parallel workflow from creating duplicate orders or customer communications.

  3. Launch a limited object or region first. Set rollback triggers, preserve pre-change values where restoration is safe, and document how to pause processing. Turning off a sync doesn't undo an invoice, shipment, or financial posting already created in the ERP.

Athletic brand NOBULL partnered with us for Shopify Plus, NetSuite integration, and scale. That scope reinforces the need to validate commerce operations together rather than approve a connector in isolation.

Release gate: Don't approve production until someone other than the developer can recover a deliberately failed transaction using the runbook.

The sign-off checklist should cover sandbox mapping, representative test coverage, repeat-run behavior, failure recovery, reconciliation, parallel validation, and rollback. Record a named approver and approval date for each item.

After go-live, the release owner hands the runbook to the support owner, finance approves reconciliation rules, and sales operations owns user-facing acceptance. Keep the delivery team available until those owners can operate the workflow independently.

Owning Data After Launch and Next Steps

Reliability means maintaining trust over time, not celebrating a successful initial sync. An integration can keep returning successful responses while sending outdated definitions, omitting newly introduced fields, or processing transactions in the wrong business sequence.

Nuvolar's discussion of enterprise data consistency highlights the continuing importance of governance and ownership across connected systems. The practical response is to give someone authority to resolve discrepancies, not merely permission to view a dashboard.

Post-launch symptoms, causes and fixes

Symptom

Likely cause

Fix

Duplicate customer records

No enforced external ID, matching on name or email

Enforce the ERP customer number as external ID and set a controlled merge rule

Orders missing in Salesforce

Failed API call not retried

Replay the error queue for the affected time window after checking destination state

Field values flip between systems

Both systems write the same field

Assign a system of record per field and make the other read-only

Batch runs slow at month end

Batch volume exceeds the processing window

Split batches by region or date and filter unused fields

Sync stops after a password change

Credentials or certificate expired

Replace password-based access where appropriate and alert before certificate expiry

Use these symptoms to organize triage, rather than treating every discrepancy as a reason to rebuild the integration.

A chart illustrating common data integration symptoms, their causes, and suggested solutions to maintain data trust.

Make support an operating responsibility

Maintain a replayable error queue with transaction identifiers, failure reasons, attempt history, and a safe replay action. Separate temporary failures from business rejections: retrying a network interruption is sensible; repeatedly submitting an invalid tax code isn't.

Define service-level targets for acceptable sync delay and incident resolution by workflow. A credit hold requires different treatment from a historical invoice refresh. Alert on the oldest unprocessed transaction and reconciliation exceptions, not just whether a scheduled job started.

  • Integration owner: Monitors delivery, retries, queue age, and infrastructure failures.

  • Business data owner: Resolves ambiguous customer, product, and transaction definitions.

  • Finance owner: Approves payment, refund, invoice, and tax reconciliation.

  • Application owners: Review schema changes and coordinate deployment compatibility.

Schedule weekly reconciliation across orders, customers, inventory, payments, and refunds, with more frequent checks for time-sensitive workflows. Every exception needs a disposition: corrected, accepted as timing-related, or escalated with a named decision-maker.

Resolve commerce disputes in writing

Say a Shopify promotion discounts an order, Salesforce displays the customer's negotiated terms, and the ERP invoice shows a different amount. Customer service should gather the transaction references; finance should decide the approved financial treatment; the integration owner should determine whether mapping or sequencing caused the discrepancy.

Define equivalent escalation paths for cancellations, partial shipments, returns, and international tax handling. Require application and data-owner approval before a schema change reaches production, including evidence that existing messages and queued retries remain compatible.

We maintain structured data integrity, third-party integrations, script governance, and performance troubleshooting for client Shopify stores. When evaluating systems integration services, make those ongoing responsibilities explicit rather than assuming implementation support includes them indefinitely.

This week, confirm the architecture against the actual systems and objects, pilot an account or order workflow through permissions and reconciliation, and assign the error queue to a named operator. Before the next meeting, answer the question that will expose the most important unresolved decision: which system is the system of record for the object that caused the most disputes last quarter?

Our Build service includes Shopify development, migration, and integrations and ERP work, supported by ongoing technical governance. Visit Presidio to discuss your Shopify, Salesforce, and ERP boundaries, bringing your ownership sheet and a pilot workflow so we can scope the implementation and its post-launch responsibilities.

Tags:

Tags:

Tags:

Share:

Share:

Share:

Stay up to date.

No spam. No nonsense.

Stay up to date.

No spam.

No nonsense.

Stay up to date.

No spam.
No nonsense.

ยฉ 2025 Presidio United Holdings LLC | Policy and terms


Stay up to date.

No spam. No nonsense.