← All integrations
Business Central → HubSpot

Business Central HubSpot integration

In short

A Business Central to HubSpot integration keeps your Dynamics 365 ERP and your CRM in agreement about the same customers. It syncs company and contact master data, pushes HubSpot closed-won deals into Business Central as customers and sales orders, and feeds posted-invoice and payment status back onto HubSpot companies and deals so sales and finance see one truth. Done properly it is not a nightly CSV or a brittle Zap: it is an idempotent, bidirectional pipeline with a shared cross-reference between HubSpot record IDs and Business Central customer numbers, so nothing is duplicated and nothing drifts.

What a Business Central to HubSpot integration actually does

Business Central is where the money is real. It holds the posted invoices, the open balance, the payment terms, the credit limit, the customer number your finance team actually books against. HubSpot is where the relationship is real - the deals, the contacts, the pipeline, the conversations your sales and success teams live in. The two systems describe the same customers and almost never agree about them.

A Business Central to HubSpot integration closes that gap in both directions. It pushes ERP truth - who is a customer, what they owe, whether the last invoice is paid or overdue - onto the matching HubSpot company and deal, so sales stops asking finance for account status over email. And it turns won business in HubSpot into structured records in Business Central - a customer, a contact, a sales order - so finance stops re-keying deals off a spreadsheet. One customer, one identity, kept in sync automatically.

What data moves

Business Central object / eventBecomes in HubSpotNotes
Customer (Debitor)CompanyMatched by domain / VAT no.; No. and systemId written back to the company
ContactContact, associated to the companyHubSpot dedupes by email; associations rebuilt on the CRM side
Posted sales invoiceDeal property / invoice on the companyAmount, currency, due date, document no. surfaced to sales
Customer ledger open balanceCompany propertyTotal outstanding and overdue amount, refreshed on a delta
Payment statusDeal / company propertyPaid, open, or overdue - so sales sees dunning risk
Item / productProduct in the catalogOptional; keeps HubSpot line items priced from the ERP

And in the other direction:

HubSpot object / eventBecomes in Business CentralNotes
Closed-won dealSales order (and customer if new)Customer created first, then the order references it
CompanyCustomer (Debitor)Number assigned by the BC number series, not by HubSpot
ContactContact linked to the customerMapped to the BC contact-to-customer relationship
Deal line itemsSales order linesItem numbers, quantities, unit prices, currency mapped through

The field mapping, the system of record per field, and the cross-reference between the two ID schemes are agreed once and encoded in the pipeline. After that, nobody reconciles them by hand.

The details that break naive syncs

A generic connector or a Zap gets you a demo and leaves the expensive edge cases in production:

How we build and run it

We treat this as a pipeline, not a bundle of workflow automations. Business Central changes are picked up on a delta - filtered on last-modified or via Graph change notifications - validated, transformed into your agreed HubSpot mapping, and written through HubSpot’s batch API. HubSpot deal and company changes flow back the same way, creating customers and sales orders in the correct Business Central company.

The pipeline is idempotent. Every record carries a stable identity in the cross-reference, so a retry, a replay, or a re-run never creates a second customer or a duplicate deal. It runs on cloud-native, fully EU-hosted AWS infrastructure, so customer and financial data never leaves the EU - which keeps your DPA / AVV and your GDPR obligations clean.

Then we keep it running. Monitoring, alerting, incident response, and - critically - tracking Business Central and HubSpot API changes are our responsibility under contract. Microsoft ships Business Central API updates on a release cadence and HubSpot deprecates endpoints on its own schedule; staying ahead of both is our job, not a fire your team fights when deals stop appearing in the ERP. You get a named owner, a fixed-price scope, and an SLA.

When this integration is worth building

If you close a handful of deals a month and one person copies them into Business Central without complaint, you do not need a pipeline, and we will tell you so. A HubSpot Operations Hub sync or a manual export may be enough.

The integration earns its place when deal volume makes re-keying a real cost, when sales genuinely needs live payment and balance status to prioritise accounts and chase renewals, when duplicate customers in the ERP are already causing invoicing errors, or when you run multiple Business Central companies against one HubSpot portal and the matching logic is beyond what a point tool can express. At that point a managed, bidirectional pipeline pays for itself in the reconciliation it removes.

Frequently asked questions

Which direction does the data flow - from Business Central to HubSpot or the other way?
Usually both, and the direction matters per object. Master data and financial reality (customers, posted invoices, open balance, payment status) flow from Business Central into HubSpot so sales sees accurate account state. New business flows the other way: a closed-won HubSpot deal becomes a customer and a sales order in Business Central. We agree the system of record for each field up front so the two sides never fight over the same value.
How do you match a HubSpot company to a Business Central customer when they have no shared key?
That is the core of the build. HubSpot dedupes companies by domain and contacts by email; Business Central keys customers by a number-series No. and an internal systemId GUID. There is no common identifier, so we maintain a cross-reference table that maps HubSpot record IDs to Business Central customer numbers, seeded from an initial reconciliation and kept authoritative from then on. New records get matched on domain, VAT registration number, or name plus address before we ever create a duplicate.
Can HubSpot create the customer number, or does Business Central assign it?
Business Central assigns it. Customer numbers come from a number series, so you cannot push an arbitrary No. from HubSpot and expect it to stick. The pipeline creates the customer in Business Central, reads back the assigned No. and systemId, and writes them onto the HubSpot company so both sides reference the same identity from that point on.
Will this survive Business Central and HubSpot API rate limits at our volume?
Yes, because we design for them rather than discover them in production. Business Central throttles per environment (request-per-minute and concurrency ceilings, plus a hard per-request timeout) and HubSpot caps app requests per ten-second window and per day. We use the batch endpoints on both sides, back off on 429s, and sync deltas rather than full tables, so a busy sales month does not trip a limit and stall the queue.
Who operates it after go-live?
We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. When Microsoft ships a new Business Central API version or HubSpot deprecates a webhook, that is our problem to handle under contract, not a surprise your RevOps team finds when deals stop syncing. You get a named owner, alerting, incident response, and an SLA rather than a workflow somebody has to babysit.

Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.

Request a scoping call