{
  "slug": "dynamics-365-business-central",
  "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/",
  "name": "Dynamics 365 Business Central",
  "vendor": "Microsoft",
  "aliases": [
    "Business Central",
    "D365 Business Central",
    "Microsoft Dynamics NAV",
    "Navision"
  ],
  "website": "https://www.microsoft.com/en-us/dynamics-365/products/business-central",
  "category": {
    "slug": "erp-and-accounting",
    "name": "ERP and accounting",
    "url": "https://apps.sectorgrowth.com/categories/erp-and-accounting/"
  },
  "summary": "Business Central holds the quote, the order and the posted invoice, with real webhook subscriptions and an Entra identity already in the building.",
  "answer": "Yes. Microsoft Business Central has a HubSpot-built app in the HubSpot App Marketplace as of September 2026, and it keeps customer records in step without a build. It does not carry sales orders or posted invoices. Those need a keyed service on API v2.0 with webhook subscriptions, which we scope at 70 to 150 build hours.",
  "nativeApp": {
    "status": "hubspot-built",
    "name": "Microsoft Business Central",
    "developer": "HubSpot",
    "verifiedAt": "2026-09-22"
  },
  "api": {
    "style": "rest",
    "auth": "oauth2",
    "webhooks": "yes",
    "changedSince": "yes",
    "sandbox": "yes",
    "rateLimit": "600 OData requests a minute per production environment, 300 per sandbox, and 6,000 per user in a five minute sliding window",
    "docsUrl": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/"
  },
  "objects": [
    {
      "source": "customers",
      "hubspot": "company",
      "direction": "two_way",
      "key": "Customer number held in a custom HubSpot property",
      "notes": "The customer number survives a rename. The display name does not."
    },
    {
      "source": "salesQuotes",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Quote number",
      "notes": "The closest thing Business Central has to a pipeline record."
    },
    {
      "source": "salesOrders",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Order number, carrying the quote number it came from",
      "notes": "An order updates the deal its quote opened rather than creating a second one."
    },
    {
      "source": "salesInvoices",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Invoice number, associated to the order"
    },
    {
      "source": "items",
      "hubspot": "product",
      "direction": "to_hubspot",
      "key": "Item number"
    }
  ],
  "approaches": [
    {
      "kind": "custom",
      "fit": "recommended",
      "why": "Business Central publishes proper webhook subscriptions and a clean application identity, so a keyed service can carry quotes, orders and posted invoices at near real time without polling the environment flat."
    },
    {
      "kind": "native",
      "fit": "possible",
      "why": "HubSpot's own Business Central app keeps customer records in agreement with no build, which is the right answer for a team that wants the account record right and nothing more."
    },
    {
      "kind": "ipaas",
      "fit": "avoid",
      "why": "A per-task platform spends the environment's request budget on connector overhead, and the per user rate limit means one busy automation identity throttles every other integration using it."
    }
  ],
  "effort": {
    "discoveryHours": [
      10,
      20
    ],
    "buildHours": [
      70,
      150
    ],
    "buildBand": "70 to 150 hours",
    "typicalElapsed": "4 to 8 weeks"
  },
  "pattern": "webhook-queue",
  "faqs": [
    {
      "q": "Is the Microsoft Business Central app in the HubSpot marketplace built by HubSpot?",
      "a": "Yes. The listing named Microsoft Business Central is published by HubSpot, and a separate connector from Cloudify sits beside it. The HubSpot app is a field level sync for account records. Sales documents and posted invoices are not part of it, so anything transactional still means a build."
    },
    {
      "q": "How do Business Central webhook subscriptions stay alive?",
      "a": "They have to be renewed. A subscription expires after three days, and renewing it means sending an update request and completing the same handshake as the original registration, returning the validation token with a success code. We run a keeper job daily rather than hourly before expiry, so a single failure has two more chances before anything lapses."
    },
    {
      "q": "What happens when Business Central sends a collection notification?",
      "a": "It means too much changed at once. Business Central waits about thirty seconds after the first change, and if more than a thousand records moved in that window it sends one collection notification with a filter instead of a notification per record. Our service reads the filtered page rather than guessing, which is why a bulk posting run does not flood the queue."
    },
    {
      "q": "Does a Business Central integration need a licensed user?",
      "a": "It needs an application identity rather than a person. Service to service authentication registers an application in Microsoft Entra, grants it API access, and enables it inside Business Central with explicit object permissions. Applications cannot be given the full administrator permission set, so the permissions have to be chosen deliberately, which is a good constraint rather than an obstacle."
    },
    {
      "q": "How many API calls can a Business Central environment take per minute?",
      "a": "Six hundred OData requests a minute against a production environment and three hundred against a sandbox, with a separate per user ceiling of six thousand requests in a five minute sliding window. Exceeding either returns a too many requests response. A batch request may hold one hundred operations, which is the cheapest way to stay inside both."
    },
    {
      "q": "Can we build against a Business Central sandbox first?",
      "a": "Yes, and we always do. Essential and Premium subscriptions include one production environment and three sandbox environments at no extra charge, and a sandbox can be created as a copy of production. We build and rehearse there, then cut over by swapping credentials, with an environment allowlist in the service so the wrong token cannot write."
    },
    {
      "q": "Why would a Business Central order create a second deal in HubSpot?",
      "a": "Because the order was written on its own key instead of the quote it came from. Business Central holds a quote and an order as two records, so a naive sync opens a deal for each and the forecast doubles. We carry the originating quote number onto the order and upsert on it, so the order updates the deal the quote opened."
    },
    {
      "q": "What does a Business Central and HubSpot integration take to deliver?",
      "a": "Allow 10 to 20 hours of discovery and 70 to 150 hours of build for five entities with webhook subscriptions, a renewal keeper, a nightly sweep and reconciliation endpoints. Discovery is where the quote to order rule and the exposed field list get settled. Calendar time depends less on us than on how quickly an administrator can register the application in Entra."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Dynamics 365 Business Central to HubSpot",
      "anchor": "#why-teams-connect-dynamics-365-business-central-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#why-teams-connect-dynamics-365-business-central-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#three-ways-to-connect"
    },
    {
      "depth": 2,
      "text": "What breaks and how we prevent it",
      "anchor": "#what-breaks-and-how-we-prevent-it",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Expired and deleted subscriptions",
      "anchor": "#expired-and-deleted-subscriptions",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#expired-and-deleted-subscriptions"
    },
    {
      "depth": 3,
      "text": "Month end bulk postings",
      "anchor": "#month-end-bulk-postings",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#month-end-bulk-postings"
    },
    {
      "depth": 3,
      "text": "Permissions assembled by hand",
      "anchor": "#permissions-assembled-by-hand",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#permissions-assembled-by-hand"
    },
    {
      "depth": 3,
      "text": "Two major updates a year",
      "anchor": "#two-major-updates-a-year",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#two-major-updates-a-year"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-business-central/#our-approach"
    }
  ],
  "caseStudies": [],
  "guides": [
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/"
  ],
  "builtBySectorGrowth": false,
  "status": "published",
  "verifiedAt": "2026-09-22",
  "updatedAt": "2026-09-25",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "API (v2.0) for Dynamics 365 Business Central",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/"
    },
    {
      "title": "Working with webhooks",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/dynamics-subscriptions"
    },
    {
      "title": "Operation Limits in Dynamics 365 Business Central",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/operational-limits-online"
    },
    {
      "title": "Using Service to Service Authentication",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/automation-apis-using-s2s-authentication"
    },
    {
      "title": "Managing Production and Sandbox Environments",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/tenant-admin-center-environments"
    }
  ]
}