Confirm your environments
Identify the SAP Business One version, database and hosting arrangement. Confirm Service Layer availability, Salesforce API access and a sandbox before choosing the integration route.
Connect SAP Business One (SAP B1) and Salesforce to automate sales orders and keep customer, pricing, inventory and invoice data aligned. AIONDATA builds the sync around your sales and finance workflows, with custom field mapping, retries and monitoring.
California-based leadership · Serving US and international teams
Share your objects, volumes, and timing needs — we'll come back with a written scope.
Please share the systems and workflow—not credentials or customer records. We’ll confirm API access, scope and next steps.
Part of NVIDIA’s program for startups building with AI and accelerated computing.
About the programPravin’s experience includes Google and SmartBear. Sravan previously held leadership roles at JPMorgan Chase and First Republic Bank.
Meet the founders9110 Alcosta Blvd Ste H345, San Ramon, CA 94583
US-led delivery, with engineering in India. Supporting US and international organizations.SAP Business One Salesforce integration connects your CRM sales process to ERP finance and inventory. Won opportunities create SAP B1 sales orders; products, prices, stock, invoices and payment status flow back to Salesforce. We define which system owns each record, map custom fields and add monitoring and reconciliation. Delivery uses the SAP B1 Service Layer and Salesforce APIs, with sync timing agreed for each data flow.
These decisions shape the scope, cost and acceptance tests. The flows below describe possible implementation behavior, not a preinstalled connector or a guarantee for every product edition.
Identify the SAP Business One version, database and hosting arrangement. Confirm Service Layer availability, Salesforce API access and a sandbox before choosing the integration route.
Decide how Salesforce Accounts match SAP Business Partners, which system owns pricing, and what approval is required before an opportunity becomes an order. Map custom fields and multiple SAP companies explicitly.
Use a test opportunity with agreed products, currency, tax treatment and payment terms. Check the resulting SAP document, returned reference and the behavior for duplicates, blocked customers and missing items.
The proposal separates mapping, build, testing, deployment, technical handover and support. License costs, additional objects, historical backfills and custom approval rules are identified before work starts.
Field mapping
The records, match keys and triggers most implementations start from. Your scope confirms each row against your editions, custom fields and business rules.
| Source | Target | Match key | Direction | Trigger | Notes |
|---|---|---|---|---|---|
| Business Partners (OCRD, BusinessPartners) | Account | CardCode in an Account external ID field | SAP B1 ↔ Salesforce | Account approval in Salesforce; B1 changes on a schedule or webhook | New customers created in B1 only after approval and a duplicate check; payment terms, credit limit and sales employee returned to Salesforce. |
| Contact persons (OCPR, ContactEmployees) | Contact | CardCode + contact name, stored as an external ID | SAP B1 ↔ Salesforce | On change | Decide which system owns contact details; B1 keeps contacts under the Business Partner. |
| Items (OITM, Items) | Product2 | ItemCode = ProductCode, also stored as an external ID | SAP B1 → Salesforce | Scheduled delta | Only sellable items; inactive items are deactivated in Salesforce, not deleted. |
| Price lists (OPLN, ITM1) | Pricebook2 and PricebookEntry | Price list number = price book external ID; ItemCode + price book = entry | SAP B1 → Salesforce | Hourly, or after a price update | One price book per B1 price list and currency in scope. |
| Special prices (SpecialPrices) | Account-specific price book or custom price object | CardCode + ItemCode | SAP B1 → Salesforce | Scheduled | Choose one pattern; many special prices are easier to show as a lookup than as price books. |
| Warehouse stock (OITW) | Product2 availability fields or a custom stock object | ItemCode + WarehouseCode | SAP B1 → Salesforce | Every 5 to 15 minutes | Available quantity per warehouse; read-only in Salesforce. |
| Quote and QuoteLineItem (synced quote) | Sales Quotation (OQUT, Quotations) | Salesforce Quote ID in a user-defined field | Salesforce → SAP B1 | Quote approved or accepted | Optional; used when formal quotations are issued from B1. DocNum is written back to the quote. |
| Won Opportunity and OpportunityLineItem, or Order and OrderItem | Sales Order (ORDR, Orders) | Salesforce record ID in a user-defined field; existing-order check before create | Salesforce → SAP B1 | Opportunity won, or Order status change | One trigger per process; the B1 DocNum and status are written back to Salesforce. |
| Deliveries (ODLN, DeliveryNotes) | Order status or a delivery record on the Account | Base sales order DocEntry | SAP B1 → Salesforce | Scheduled or webhook | Delivered quantities and tracking visible to the rep. |
| A/R Invoices (OINV, Invoices) | Invoice custom object on the Account | DocEntry as an external ID | SAP B1 → Salesforce | Scheduled | Read-only copy; the invoice of record stays in SAP B1. |
| Incoming Payments (ORCT, IncomingPayments) | Account balance and credit status fields | CardCode | SAP B1 → Salesforce | Scheduled | A credit-hold flag can block new orders in Salesforce. |
| Sales employees (SalesPersons) | User (record owner) | Sales employee code mapped to a Salesforce user in a mapping table | SAP B1 ↔ Salesforce | On assignment change | Decide whether Salesforce ownership or the B1 sales employee drives commission reporting. |
Download this mapping as a CSV worksheet · no email required
Options, cost and timeline
A prebuilt connector is sometimes enough. This comparison shows when each route fits, what it typically costs and how long it takes.
| Approach | Typical cost | Typical time | Fits when | Watch for |
|---|---|---|---|---|
| iPaaS template | From about $99/month (vendor list price, checked Sep 2026) for APPSeCONNECT plans, plus ProcessFlow packs | Days to weeks for standard flows, depending on mapping and testing | Standard account, product, price, quote and order flows | Check CPQ, approval and multi-company support, and ask how changes outside the template are priced |
| Two-way sync platform | From about $1,000/month (vendor list price, checked Sep 2026) for Stacksync’s Starter plan | Days to weeks, with the vendor’s engineers helping on mapping and access | Teams that want record-level two-way sync on a vendor-run platform | Pricing scales with active syncs and synced records; confirm SAP B1 object coverage |
| Custom integration (AIONDATA) | Quoted after a short discovery; hosting and support priced separately | Usually a few weeks including mapping workshops and UAT for accounts, products, prices, stock and order push; roughly two to three months with custom objects, multiple B1 companies or complex pricing | Approvals, CPQ, multiple companies, custom objects, or a requirement to own the code | Needs an owner for monitoring and release retests, or a support agreement |
| Managed integration service | From about $4,200/month (vendor list price, checked Sep 2026) for Stacksync’s Managed Pro plan; other providers quote per scope | Setup as above, then ongoing | Teams without in-house integration staff | Agree response times, who fixes SAP data errors, and your access to mappings and logs if you change provider |
Vendor prices are list prices from their public pages on the date shown; confirm current pricing with each vendor.
A sync that reports success on every call can still lose business outcomes. Reconciliation checks that each won deal has an SAP order, and that each SAP customer maps to exactly one Salesforce Account in each company.
Technical details last reviewed September 26, 2026. Product capabilities and prices change; confirm them for your edition.
Sources: SAP: Working with SAP Business One Service Layer (user guide 1.29, July 2026) · SAP: SAP Business One Service Layer API Reference · Salesforce: Object Reference for the Salesforce Platform (Winter ’27, API 68.0) · Salesforce: Developer Limits and Allocations Quick Reference · APPSeCONNECT: SAP Business One and Salesforce integration · APPSeCONNECT: pricing · Stacksync: pricing
Outcomes
Order creation and credit checks are usually event-driven: a Salesforce flow or platform event fires when an opportunity is won or an order reaches an agreed status, and the sales order lands in SAP B1 within seconds to minutes. Items, price lists and stock change in bulk, so they are usually read from the Service Layer on a schedule, often every 5 to 15 minutes. On SAP Business One 10.0 FP 2602 or later, Service Layer webhooks can push Business Partner and document changes instead of polling.
We start with a mapping workbook that pairs every Salesforce field with its SAP B1 counterpart, including user-defined fields and picklist translations for payment terms, sales employees and warehouses. The CardCode is stored in a Salesforce external ID field, so updates match the right Account without a search, and new Business Partners are created only after a duplicate check on tax ID or name and address. Failed transactions go to a retry queue with alerting and a dashboard of records that need attention.
The Service Layer for new integrations. SAP describes it as an OData service built on the same DI core as the DI API, so Business Partners, items and documents have the same properties in both. The DI API is a Microsoft COM library suited to Windows add-ons, and we use it only where the Service Layer lacks a function. Salesforce talks to the integration service, never directly to your SAP server.
Not for the core sync. SAP added Service Layer support for Microsoft SQL Server with SAP Business One 10.0 PL01, so both versions use the same API. Reporting features differ: Semantic Layer views are HANA only, while SQL Server systems can expose their own SQL views through the Service Layer, which is useful for read-only account summaries. Older SQL Server releases without the Service Layer need the DI API or an upgrade.
Yes. Each Service Layer login names one company database, so the integration routes each Account and order to a company by rule, for example by country, business unit or a field on the opportunity. The same customer can exist in several companies with different CardCodes, so we store the company and CardCode pair rather than a single number.
Usually in Salesforce, where reps work, with SAP B1 supplying prices, stock and credit status. Salesforce syncs one quote at a time with its opportunity, so the synced quote is a natural trigger. If your team issues formal quotations from B1, we create a B1 Sales Quotation from the approved Salesforce quote and write the B1 document number back.
Pick one. A won opportunity with products is simplest; a synced, accepted quote suits teams that negotiate line by line; a Salesforce Order suits teams that already manage orders in Salesforce, and its Status field can gate the transfer. Two triggers for the same deal are the most common cause of duplicate SAP orders.
The transfer stops in a queue with the SAP error, for example a missing item, a blocked Business Partner or a credit limit, and the rep sees a failed status on the Salesforce record. Data errors wait for a fix and a replay; technical errors retry automatically. The Salesforce record ID is stored on the SAP order and checked before every create, so a replay cannot produce a duplicate.
API access and daily allocations. Salesforce’s limits reference lists Enterprise Edition, and Professional Edition with API access enabled, at 100,000 API calls per 24 hours plus 1,000 per Salesforce license, for example 115,000 for 15 licenses. A well-designed sync uses a small share of that, but backfills and frequent polling add up, so we batch reads and use change events where they fit.
If your process matches a template, a connector is cheaper to start. APPSeCONNECT lists plans from $99 per month and says its SAP B1 connector handles HANA, SQL Server and multi-company setups; Stacksync lists two-way sync plans from $1,000 per month. Choose custom when approvals, CPQ, multiple companies or custom objects make the template work against your process, or when you want to own the code.
The number of objects and directions, and how much logic sits between them. Quote approvals, CPQ, multiple SAP B1 companies or currencies, custom objects and historical backfills add build and test time. Ongoing cost depends on hosting, monitoring, any iPaaS subscription, Salesforce API capacity and the support you choose.
Yes, read-only. Open A/R invoices, incoming payments and the Business Partner balance sync to the Account on a schedule, and a credit-hold flag can block new orders in Salesforce before they reach SAP. The documents stay in SAP B1 as the record; Salesforce shows what reps need to act.
You choose. We hand over the code, mapping workbook, runbook and alert setup so your team can operate it, or we support it under an agreed plan. Salesforce ships seasonal releases (the current object reference is Winter ’27, API version 68.0) and SAP ships B1 feature packs, so the integration should be retested on a release calendar.
Yes. Alongside or instead of a point-to-point sync, we can build an MCP server that exposes both the SAP B1 Service Layer and the Salesforce API as tools. An agent in Claude, a Slack bot or a custom app can then answer questions like “what is this account’s open balance and last three orders” or draft a sales order from an opportunity, with approval steps where you want a human in the loop.
A standard scope covering accounts, products, prices, stock and order push usually takes a few weeks including mapping workshops and UAT. Adding custom objects, multi-company SAP B1 databases, or complex pricing rules extends that to roughly two to three months. We give a fixed timeline after a short discovery of your SAP B1 configuration and Salesforce customizations.
Other pairs involving SAP B1 or Salesforce.
The enquiry form is at the top of this page. Share your objects, volumes and timing needs and we'll come back with a written scope.
Go to the enquiry form