Skip to content

Acumatica to Salesforce Sales Order Sync: Mapping, Status, and Backfill

A bottom-funnel guide to syncing Acumatica sales orders into Salesforce: what maps straight across versus what needs translating, how order statuses map, keeping Acumatica the one-way source of truth, backfilling historical orders, and staying inside Salesforce API limits.

Author
Ruben Burdin · Founder & CEO
Published
July 20, 2026
Read time
9 min read
Acumatica to Salesforce Sales Order Sync: Mapping, Status, and Backfill
REVOPS

Syncing Acumatica sales orders into Salesforce is a common first integration: orders and fulfillment live in Acumatica, sales works in Salesforce, and reps need to see order status without opening the ERP. The concept is simple, but teams evaluating it ask the same concrete questions, because the details decide whether the sync is trustworthy.

Does the data map straight across or does it need transformation? How do Acumatica order statuses line up with Salesforce, since they are not the same values? Can a custom field like the Acumatica Note ID carry over? How do you keep Acumatica the one-way source of truth so no order gets overwritten? How do you backfill the orders that already exist? And how do you avoid the Salesforce API limits and per-task costs that catch teams on tools like Zapier? This guide answers each one.

Acumatica to Salesforce sales order sync: field mapping, status mapping, one-way source of truth, and backfill at a glance

The setup below assumes a managed sync platform such as Stacksync connecting Acumatica and Salesforce. For the broader Acumatica to CRM picture across both Salesforce and HubSpot, see the Acumatica to Salesforce and HubSpot integration guide. This post goes deep on the sales order sync itself.

Field mapping: straight across, or transformed?

The most common question is whether Acumatica data needs transformation on the way into Salesforce or whether it is the same content flowing straight across. For a sales order, most fields are a direct copy. Shipping address, quantities, and line totals move field for field with no reshaping. Two things do need handling: matching records to the right target, and translating values that differ between the systems.

The key detail is the match key. Line items match on the Acumatica inventory ID, so each order line links to the correct Salesforce product instead of guessing by name. At the order and customer level, a stable identifier (the Acumatica customer ID or Note ID) is stored as a Salesforce external ID so the same record is never created twice.

An Acumatica sales order maps into a Salesforce order: Stacksync matches line items on inventory ID, translates status, and carries the Note ID to an external ID
Most fields copy across. Line items match on inventory ID, status is translated, and the Note ID becomes an external ID.
Acumatica sales orderSalesforceHow it maps
CustomerAccountMatched on external ID, not created twice
Shipping addressShipping addressCopied field for field
Line itemsOrder productsMatched on inventory ID
Quantity and priceQuantity and priceCopied as-is
Order statusStatusTranslated to your values
Note ID (custom)External IDCarried for record linking

A typical Acumatica sales order to Salesforce field map.

Status mapping: Acumatica and Salesforce are not 1:1

Order status is the one field that always needs translation. Acumatica and Salesforce use different status vocabularies, so they do not line up one to one. The fix is a mapping table: you decide which Acumatica status becomes which Salesforce value, and the sync applies it every time a status changes. The table below is an example, not a fixed rule, since your Salesforce status picklist is your own.

Acumatica order statusExample Salesforce status
OpenDraft
On HoldOn Hold
Awaiting ApprovalIn Review
Back OrderProcessing
ShippingProcessing
CompletedActivated
CancelledCancelled

Statuses do not match 1:1, so you define the mapping. Example values only.

The same idea covers custom fields. Many teams add a field during their Acumatica implementation, such as the Acumatica Note ID, to link records back to the source. That field maps into Salesforce like any other, usually to an external ID, so the connection between an Acumatica order and its Salesforce record is explicit and survives re-syncs. Getting this key in place up front is also what makes the historical backfill match cleanly instead of duplicating.

Keeping Acumatica the one-way source of truth

For sales orders, most teams want Acumatica to stay the single source of truth. Orders are raised, approved, and fulfilled in the ERP, so the sync should push order data out to Salesforce and never let a Salesforce edit change the order. That is a one-way sync: Acumatica to Salesforce, with orders read-only on the Salesforce side.

Direction is set per object, not globally. You can keep sales orders strictly one-way while still running accounts and contacts two-way if sales needs to edit those. The point is that no rep action in Salesforce ever writes back to an Acumatica order, so finance and operations always work from one authoritative version.

Acumatica sales orders sync one-way to Salesforce as read-only, with no write-back, while accounts and contacts can optionally sync two-way
Orders flow one way and stay read-only in Salesforce. Accounts and contacts can run two-way if you want.

This is also where a purpose-built sync beats a stack of scripts. Because direction and read-only rules are enforced by the platform, there is no path for an accidental Salesforce edit to reach Acumatica, and no custom guard code to maintain.

Backfilling historical orders

Turning on real-time sync only handles orders from that moment forward. Teams that went live on Acumatica months ago also want the existing orders in Salesforce, often a thousand or more since go-live. That is a one-time historical backfill, and it runs on the same mapping as the live sync.

  1. 01
    Set the mapping and keys first
    Lock in the field map, the status mapping, and the external ID (Note ID or customer ID) so historical records match instead of duplicating.
  2. 02
    Run the historical load
    Read the existing Acumatica orders in one managed backfill, applying the same field and status mapping as the live sync.
  3. 03
    Match, do not duplicate
    Records match on inventory ID and external ID, so an order that later updates lands on the same Salesforce record it was backfilled to.
  4. 04
    Switch to real time
    Once the backfill reconciles, enable real-time sync so every new order and status change flows automatically from that point on.

Because the backfill and the ongoing sync share one mapping, every order from launch and the order created five minutes ago end up in exactly the same shape in Salesforce, with no separate import script to reconcile later.

Book a Stacksync demo — sync Acumatica sales orders to Salesforce, one-way and in real time

Staying inside Salesforce API limits, without per-task bills

Two costs surprise teams that build this on a generic automation tool: Salesforce API limits and per-task pricing. Because a tool like Zapier bills per task, an Acumatica trigger that fires on every order and line-item change burns tasks quickly. As order volume grows, monthly task usage can climb from a few thousand into five figures, and the plan jumps a tier with it, so the integration gets more expensive exactly as the business scales.

Each of those tasks is also a separate Salesforce API call, which is how high-volume syncs bump into Salesforce rate limits during busy periods. A sync built for this handles both problems the same way.

ConcernPer-task automationStacksync
Billing modelPer task, every triggered call countsNot billed per record
Volume spikesTask usage and cost climb with ordersBatched, so spikes are absorbed
Salesforce API limitsEach task is a separate API callGrouped writes stay inside limits
Historical backfillExtra tasks, extra costPart of the initial managed load

Why per-task automation gets expensive at order volume, and how a managed sync avoids it.

Stacksync uses change data capture to react only when data actually changes, and it groups those changes into batched Salesforce writes with retries and replay. That keeps the sync inside API limits during peak order periods and keeps cost flat as volume grows, instead of scaling your bill with every task.

Bringing it together

An Acumatica to Salesforce sales order sync comes down to a handful of decisions: most fields copy straight across while line items match on inventory ID, order status is translated through a mapping you define, custom keys like the Note ID carry over as external IDs, orders stay one-way with Acumatica as the source of truth, history is backfilled on the same mapping, and the whole thing runs inside Salesforce API limits without per-task bills.

Get those right and reps see live order status in Salesforce while Acumatica stays authoritative. To map your own orders, statuses, and custom fields on real data, see the Acumatica and Salesforce integration or book a demo.

Start syncing with Stacksync — keep Acumatica the source of truth for sales orders in Salesforce

FAQ

Frequently asked questions

Does Acumatica data need transformation to map into Salesforce, or does it flow straight across?
Most of it flows straight across. Shipping address, quantities, and totals copy field for field. The parts that need handling are matching and translation: line items match on the inventory ID so the right product is linked, order status is translated to your Salesforce status values, and a stable key like the Acumatica customer or Note ID is stored as a Salesforce external ID so records stay linked over time.
How do Acumatica order statuses map to Salesforce statuses?
They do not match one to one, so you define the mapping. Acumatica statuses such as Open, On Hold, Awaiting Approval, Back Order, Shipping, and Completed each map to the Salesforce status value you use, for example Draft, Processing, or Activated. Stacksync applies that mapping table on every sync, so a status change in Acumatica lands as the right Salesforce value automatically.
Can I carry a custom field like the Acumatica Note ID into Salesforce?
Yes. Custom fields added during your Acumatica implementation, including the Acumatica Note ID used for record linking, map to a Salesforce field, usually an external ID. Storing that key on the Salesforce record keeps orders matched to the right Acumatica source record instead of creating duplicates, and it is what makes the historical backfill line up cleanly.
Can I keep Acumatica as the one-way source of truth so Salesforce edits never change orders?
Yes. You set sync direction per object. Sales orders flow one way, from Acumatica to Salesforce, and are read-only in Salesforce, so no rep edit ever writes back to an order. You can still run accounts and contacts two-way if you want, while orders stay strictly Acumatica-owned. That keeps one authoritative version of every order.
How do I backfill historical Acumatica sales orders into Salesforce?
You run an initial historical load before switching on real-time sync. Stacksync reads the existing orders from Acumatica, applies the same field and status mapping, and matches them on the inventory ID and external ID so nothing duplicates. A backfill of a thousand or more orders since go-live runs as one managed load, then real-time sync keeps every new order current from that point on.
Does Stacksync avoid the Salesforce API limits and per-task costs that Zapier hits?
Yes. Zapier bills per task, so an Acumatica trigger that fires on every order and line-item change burns tasks fast and can push a plan into a much higher tier as volume grows. Stacksync uses change data capture and batches writes, so it groups Acumatica changes into fewer Salesforce calls that stay inside API limits, and it does not bill per record, so cost does not spike with order volume.

About the author

Ruben Burdin
Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

All posts by Ruben Burdin

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Coworkers laughing in front of a laptop in a casual office setting

Your last integration took months.
Your next one takes a prompt.