SAP B1 · HubSpot Integration

SAP Business One and HubSpot, running as one system

Your CRM knows what was sold. Your ERP knows what was shipped, invoiced and paid. When the two never speak, sales quotes stock that is not there, finance chases orders that were never raised, and nobody trusts the pipeline number. Twopir Consulting builds the integration layer that keeps HubSpot and SAP Business One agreeing on the same customer, the same item and the same order. One identity, one order, one version of the truth.

  • OData v4 Service Layer
  • CardCode ERP identity
  • Two-way CRM ↔ ERP
SAP B1 ↔ HubSpot
HUBSPOT · CUSTOMER ENGAGEMENT Companies & Contacts Accounts · Buyers · Owners Deals & Line Items Pipeline · Products · Amounts Quotes Products Tickets TWOPIR INTEGRATION LAYER Identity & Mapping CardCode ↔ HubSpot ID Transform & Validate Price · Tax · Warehouse Idempotency Retry Audit log SAP BUSINESS ONE · ERP Business Partners CardCode · Contact Persons Sales Documents Order · Delivery · A/R Invoice Items Price Lists Incoming Payment WHAT THE BUSINESS GETS Stock visible to sales Orders entered once Cash status in the CRM
12+
Years of CRM and integration delivery
500+
Organizations served worldwide
40+
Consultants, architects and engineers
250+
Platform deployments delivered

Trusted by 500+ organizations — including distributors, manufacturers and field-service businesses running HubSpot in front of an ERP with Twopir Consulting.

Ultra Consultants
Kacific
Zarraffa's Coffee
Celigo
Amberscript

Built for CRM to ERP Delivery

  • HubSpot Partner
  • SAP Business One Service Layer
  • DI API
  • B1 Integration Framework
  • Wholesale Distribution
  • Manufacturing
  • Field Service
  • Multi-Company & Multi-Currency
Where It Breaks

Where the gap between CRM and ERP costs real money

None of these are exotic failures. They are what happens in a growing business the moment the number of orders outruns the number of people who can remember them. Every manual handoff is a place the two systems drift apart.

Sales quotes stock that isn’t there

Reps promise lead times from a stock report exported last week. SAP Business One holds live quantities per warehouse; without a feed into HubSpot the number on the quote is a guess, and the apology arrives after the order does.

Every won deal is typed in twice

Closed Won in HubSpot, then somebody re-keys the customer, the items, the quantities and the addresses into a sales order. Each pass is a fresh chance to transpose a quantity or pick the wrong price list — and the two systems drift from the first order onward.

Nothing agrees on which record is which

A HubSpot Company ID is not a CardCode, and matching on company name breaks the first time someone types “ABC Manufacturing Pvt Ltd” instead of “ABC Manufacturing”. Without an explicit cross-reference, duplicates multiply quietly.

Finance data never reaches the people selling

A/R invoice status, credit limit and payment history live in SAP Business One. The account manager making the renewal call sees none of it, so the conversation happens without knowing an invoice is sixty days overdue.

Retries quietly create duplicate orders

A timeout on the way into SAP is not proof of failure — the document may already exist. Without a stored source reference and an existence check before create, the retry writes a second order against the same deal.

Reporting stops dead at the handoff

HubSpot reports pipeline, SAP Business One reports revenue, and the two never reconcile because no identifier carries a deal through to the invoice it eventually became.

Definition

What a SAP Business One HubSpot integration actually is

Before comparing tools, it helps to be precise about what is being built — and about the difference between a CRM record and an ERP transaction.

A SAP Business One HubSpot integration is a governed data and process layer between a CRM that manages customer engagement and an ERP that controls inventory, pricing, documents and accounting. It keeps the records both systems share — customers, contacts, products, orders, invoices and payments — consistent in each, and it decides when a CRM activity is allowed to become an ERP transaction.

The second half of that sentence is the part most projects underestimate. A HubSpot Deal is not inherently an SAP Sales Order. SAP Business One works in Business Partners, Items and sales documents, each with its own identifier and its own validation rules; HubSpot works in Companies, Contacts, Deals, Products and Line Items. The integration is where your business rules say which CRM event crosses into the ERP, under what conditions, and what happens when the ERP refuses it.

It is also why “SAP integration” and “SAP Business One integration” are not the same skill. SAP Business One is a distinct product with its own object model and its own interfaces — the Service Layer, the DI API and the B1 Integration Framework. Exact objects, fields, validations and API behaviour vary by version, localization, database and customer configuration, so we validate every assumption against your installed environment and SAP’s own Business One documentation before designing against it.

Object Model

How the two object models line up

This is the mapping we start from on a first build. Direction is a design decision rather than a default: the system of record for every field is agreed in discovery and written down. The detail of that decision lives on the data synchronization page.

SAP Business One and HubSpot object mapping
Business conceptHubSpot objectSAP Business One objectUsual direction
Customer accountCompanyBusiness Partner — CardCode HubSpot → SAP
Buying contactContactContact Person on the Business Partner HubSpot → SAP
ProductProductItem — ItemCode SAP → HubSpot
PriceLine Item pricePrice List SAP → HubSpot
Stock availabilityCustom property on the Product or CompanyItem quantity by warehouse SAP → HubSpot
Sale in progressDeal and Line ItemsSales Quotation HubSpot → SAP optional
Committed orderDeal at the agreed stageSales Order — DocEntry DocNum HubSpot → SAP
ShipmentCustom object or propertyDelivery SAP → HubSpot
InvoiceCustom object or propertyA/R Invoice SAP → HubSpot
PaymentProperty on the Company or DealIncoming Payment SAP → HubSpot

Scroll the table sideways to see every column

Choosing a Route

Five ways to connect them — and when each is right

There is no single correct answer, and any partner who gives you one without looking at your environment is selling rather than advising. These are the five routes in real use, with the trade-off each one carries.

SAP Business One integration routes compared
RouteWhat it isFits whenWatch for
SAP B1 Service LayerThe modern REST interface to SAP Business One, built on OData. Endpoints look like /b1s/v2/BusinessPartners.You want a supported, remotely reachable API surface and can expose it securely to the integration layer.Session handling and timeouts need designing for. The v1 path is based on OData 3 and is deprecated; v2 is the OData 4 path that receives new work.
DI APIThe older component-based interface that runs against the company database from a Windows host.An on-premise scenario needs an object or behaviour the Service Layer does not expose.It is not a remote web API. It needs a Windows host inside the network, which adds infrastructure and a second thing to keep patched.
B1 Integration FrameworkSAP’s own integration platform, shipped with Business One.The scenario is largely SAP-to-SAP, or a packaged B1if scenario already covers most of what you need.Fewer people maintain it well, and CRM-side logic tends to grow past what the packaged scenarios were designed to carry.
Marketplace connectorA packaged app — for example Commercient SYNC, listed on the HubSpot App Marketplace, or APPSeCONNECT.Your objects and directions are close to standard and time-to-value matters more than exact fit.Cost becomes an ongoing subscription, and anything outside the template goes back to the vendor’s roadmap or into a custom layer beside it.
Custom middleware or iPaaSYour own service, or a platform such as Celigo or Workato, orchestrating the HubSpot and SAP Business One APIs.The rules are genuinely yours — approval gates, multi-company, non-standard pricing, or an object the packaged apps do not carry.You own the operating burden: monitoring, retries, credential rotation and upgrades. That is a real cost and it belongs in the business case.

Scroll the table sideways to see every column

What We Build

The three layers every working integration needs

Master data, transaction flow, and the operational scaffolding that keeps both correct. Skip the third and the first two degrade within a quarter.

Master Data Alignment

Customers, contacts, products and prices agreeing across both systems, on a deterministic identity strategy rather than fuzzy name matching.

  • Business Partner create and update driven from HubSpot
  • CardCode written back onto the HubSpot Company record
  • Item and price-list feed into HubSpot Products
  • Contact Person mapped under the correct Business Partner

Order-to-Cash Flow

The path from a won deal to a sales order, delivery, invoice and payment — with the ERP staying in control of what it will accept.

  • Deal to Sales Order, header and line mapping
  • Warehouse, tax code, currency and price-list resolution
  • Delivery and A/R Invoice status returned to HubSpot
  • Payment status visible to the people holding the relationship

Safe, Observable Operation

The part that decides whether an integration survives its first bad week rather than its first demo.

  • External-ID cross-reference on every synced record
  • Idempotent writes, so a retry cannot duplicate a document
  • SAP errors classified into retry, fix and escalate
  • Logging that traces a source record to the document it created
How We Deliver

From current-state map to running service

A phased approach, because the expensive mistakes in ERP integration are made in the first two weeks and discovered in the last two. Timelines, prerequisites and cutover detail are on the implementation page.

Phase 01

Process discovery

We walk your order-to-cash process as it runs today, including the workarounds, and identify every point where a person moves data between HubSpot and SAP Business One.

Current-state map
Phase 02

Environment validation

We confirm what your installed SAP Business One actually exposes — version, localization, Service Layer availability, licensing, network path and the user the integration will run as.

Technical feasibility note
Phase 03

Mapping and rules

Object mapping, field mapping, value mapping and the business rules: when an order is created, who owns pricing, how a customer is matched, what happens on failure.

Signed mapping document
Phase 04

Build and test

The integration is built against a test company database, with the error, retry and replay behaviour exercised deliberately rather than discovered in production.

Tested integration
Phase 05

Cutover and support

Controlled go-live, reconciliation of the first live documents, and a support model so somebody owns the queue on the morning it misbehaves.

Running service
Technical Surfaces

The surfaces an integration actually touches

Four things have to be right for this to run unattended. Any one of them left vague in scoping becomes the reason go-live slips.

HubSpot APIs

A private app scoped to the objects in the mapping, with webhooks where a change needs to move immediately rather than on the next run.

SAP B1 Service Layer

The REST/OData surface for Business Partners, Items, sales documents and payments, with session lifetime and concurrency handled deliberately.

Network and credentials

The Service Layer is usually reachable only from agreed addresses, so firewall rules and credential rotation are part of the design, not an afterthought.

Monitoring and reconciliation

A queue you can look at, alerts that name the failing record, and a periodic count-level check that the two systems still agree.

What It Looks Like

Delivery patterns we build to

These are architecture patterns, not client metrics — we publish numbers only where a specific engagement has measured them. The case study beside them is real and linked.

DELIVERY PATTERNS
Quotes that show real availability

Line items carry quantity on hand by warehouse, fed from SAP Business One on the cycle the business agrees. The quote stops being a guess about stock.

A won deal becomes exactly one sales order

At the agreed stage the integration resolves the Business Partner, items, price list, warehouse and tax code, creates one order, and writes its DocNum back to the deal.

Invoice and payment status where sales can see it

A/R Invoice and Incoming Payment status flow back, so an account manager sees an overdue balance before the renewal call rather than after it.

One identity, readable from either side

CardCode stored on the HubSpot Company, the HubSpot ID stored in a SAP user-defined field, so either system can find the other’s record without guessing.

TWOPIR CASE STUDY
Salesforce CPQ and multi-tool integrations

A quote-to-order process rebuilt across CPQ and the systems around it. Different platform pair, the same integration discipline this page describes: one identity, one order, and a handoff that does not rely on anybody re-typing.

  • Quote and order data moving between systems without re-keying
  • One customer identity carried across every connected tool
  • Integration logic owned in one place, not spread across admins
Read the case study
Why Twopir

Why teams bring us in for the ERP boundary

We work with growing, mid-market, and enterprise organizations that need help with complex CRM implementations, integrations, and business system challenges. SAP Business One sits at the point where a CRM mistake becomes an accounting mistake, which is why it deserves a different kind of attention.

We architect before we connect

Field mapping is the easy half. The hard half is deciding which system owns which decision, and that is a business conversation we run before anybody opens an API.

The ERP’s rules win, by design

SAP Business One will refuse a document that breaks its validation, and it is right to. We design the CRM-side flow so those refusals are expected, explained and recoverable.

Identity is treated as a first-class problem

Deterministic external IDs and an explicit cross-reference, never name matching. This is the single most common reason a CRM-ERP integration degrades after month three.

We build for the bad day

Idempotency, classified errors, replay and reconciliation are in the first build, not a later hardening project that never gets funded.

One team across both sides

We are a HubSpot Partner with an integration practice, so the CRM architecture and the ERP interface are designed together instead of negotiated between two vendors.

Answers

Questions we get before the first call

The ones worth answering in writing, because they change what you should be scoping.

Not natively. HubSpot and SAP Business One have no built-in connection between them, so every integration runs through something in the middle: a packaged marketplace connector, an integration platform, or custom middleware that calls both APIs. On the SAP side that middle layer usually talks to the Service Layer, the REST interface built on OData; the DI API and the B1 Integration Framework are the alternatives.

Which one is right depends on how standard your objects and directions are, how much non-standard business logic the flow carries, and who will operate it after go-live. The comparison table above sets out the trade-offs.

No, and treating it as automatic is one of the more expensive assumptions in this kind of project. A Deal is a CRM record of a commercial conversation; a Sales Order is an ERP transaction with validation, pricing, tax, warehouse and credit implications.

The integration defines the rule: which pipeline stage triggers creation, what must be true first — a valid Business Partner, resolvable items, an agreed price list — and what happens if SAP rejects the document. That rule is a business decision we document before we build it.

Idempotent processing. Before creating anything, the integration checks whether a document already exists for that source transaction, using a stored reference such as the HubSpot Deal ID held in a SAP user-defined field. If it exists, the existing reference is reused; if not, the document is created and its DocEntry is logged.

This matters most for orders, invoices and payments, where a duplicate is not a cosmetic problem. A timeout is not proof that nothing was written, so any integration that retries without this check will eventually double-post.

Often, yes, and that is where a good share of these engagements start. We assess what the existing connector covers, where it is failing and whether the gap is configuration, a missing cross-reference, an unmodelled business rule, or a genuine product limit.

Sometimes the answer is to configure what you have properly. Sometimes it is to keep the connector for standard objects and build a small custom layer beside it for the parts it cannot reach. Replacing it is the last option, not the first.

Both. The deployment model changes the network design rather than the integration design: an on-premise Service Layer generally has to be reached through a controlled path, which means the client’s IT team authorises specific addresses before the integration can connect at all.

We treat that as a scoping item in phase two, because it is a common source of delay when it surfaces late. Where the Service Layer cannot be exposed, the DI API on an in-network host is the usual alternative.

SAP Business One stays the source of truth for both. Item quantities by warehouse and price-list values are pushed into HubSpot properties on an agreed cycle — often scheduled rather than real-time, because stock does not need to be accurate to the second to be useful to a rep, and every real-time field adds load.

The design question is not “how fast” but “how stale is acceptable, and what does the rep do when the number is wrong”. We answer that explicitly, and the agreed cycle goes in the mapping document.

That is a decision to make before go-live, not after. Someone has to watch the error queue, replay what failed, rotate credentials, and re-test after a SAP Business One upgrade or a HubSpot change.

Twopir can run it as a managed service, or hand it over with the runbook, monitoring and documentation your own team needs to own it. What we will not do is leave it unowned, because an unowned integration degrades silently.

Next Step

Let’s map your order-to-cash process

Bring the process you run today — including the spreadsheet nobody admits to. We will tell you which parts belong in the integration, which belong in HubSpot, which belong in SAP Business One, and what a realistic first phase looks like.

Speak with a team that has built CRM to ERP integrations before