{
  "slug": "dynamics-365-finance-supply-chain",
  "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/",
  "name": "Dynamics 365 Finance and Supply Chain",
  "vendor": "Microsoft",
  "aliases": [
    "Dynamics 365 Finance",
    "Dynamics 365 Supply Chain Management",
    "Dynamics 365 Finance and Operations",
    "D365 F&O",
    "Dynamics AX"
  ],
  "website": "https://www.microsoft.com/en-us/dynamics-365/products/finance",
  "category": {
    "slug": "enterprise-erp",
    "name": "Enterprise ERP",
    "url": "https://apps.sectorgrowth.com/categories/enterprise-erp/"
  },
  "summary": "Dynamics 365 Finance and Supply Chain keep legal entities, orders and posted invoices. Why HubSpot's Dynamics 365 app misses them, and what fills the gap.",
  "answer": "No. As of September 2026 Dynamics 365 Finance, Supply Chain Management and AX have no app in the HubSpot App Marketplace, and HubSpot's own Microsoft Dynamics 365 app syncs CRM records such as accounts, leads and opportunities rather than the finance and operations apps. We recommend a custom API integration over the OData data entities, reading changes through change tracking and taking invoice and payment business events, at 70 to 150 build hours. A business already running Dynamics 365 Sales with dual-write should test that chain through HubSpot's app first.",
  "nativeApp": {
    "status": "none",
    "verifiedAt": "2026-09-28"
  },
  "api": {
    "style": "rest",
    "auth": "oauth2",
    "webhooks": "partial",
    "changedSince": "yes",
    "sandbox": "yes",
    "rateLimit": "No fixed quota: resource-based throttling returns 429 Too Many Requests when web server utilization crosses a threshold, and user-based limits are disabled from version 10.0.36",
    "docsUrl": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/odata"
  },
  "objects": [
    {
      "source": "Customers V3 (CustomersV3)",
      "hubspot": "company",
      "direction": "to_hubspot",
      "key": "Customer account scoped by legal entity (dataAreaId)",
      "notes": "OData returns only the default company's customers unless the request asks for cross-company data."
    },
    {
      "source": "Sales order headers V2 (SalesOrderHeadersV2)",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Sales order number scoped by legal entity, associated through the ordering customer account",
      "notes": "Orders stay read only in HubSpot. Supply Chain Management confirms, ships and invoices them."
    },
    {
      "source": "Sales invoice headers V2",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Invoice number scoped by legal entity, associated to its sales order number",
      "notes": "Microsoft classes posted invoices as transaction data, so the HubSpot copy stays read only."
    },
    {
      "source": "Released products V2 (ReleasedProductsV2)",
      "hubspot": "product",
      "direction": "to_hubspot",
      "key": "Item number scoped by the legal entity whose prices sales quotes",
      "notes": "A released product belongs to one legal entity. The shared product sits above it."
    }
  ],
  "approaches": [
    {
      "kind": "custom",
      "fit": "recommended",
      "why": "A custom API integration reads the data entities through OData with change tracking, takes invoice and payment business events from a Service Bus queue, and keys every record on its number and legal entity."
    },
    {
      "kind": "ipaas",
      "fit": "possible",
      "why": "Power Automate can subscribe to finance and operations business events directly, which suits a single notification such as a posted invoice updating a HubSpot property. It carries no backfill and no reconciliation."
    },
    {
      "kind": "native",
      "fit": "avoid",
      "why": "HubSpot's Microsoft Dynamics 365 app syncs the CRM records its knowledge base lists, such as accounts, leads and opportunities, and nothing in that documentation reaches Finance or Supply Chain Management."
    }
  ],
  "connectionMethods": [
    "api",
    "ipaas"
  ],
  "effort": {
    "discoveryHours": [
      10,
      20
    ],
    "buildHours": [
      70,
      150
    ],
    "buildBand": "70 to 150 hours",
    "typicalElapsed": "4 to 8 weeks"
  },
  "pattern": "polling-watermark",
  "faqs": [
    {
      "q": "Does HubSpot's Microsoft Dynamics 365 app work with Dynamics 365 Finance?",
      "a": "No. HubSpot's knowledge base lists what the app syncs: accounts, contacts and leads, opportunities, products and bundles, appointments, notes, tasks, invoices, sales orders, emails and phone calls. Those are the records of the Dynamics 365 CRM apps, and the article never mentions Finance, Supply Chain Management or the finance and operations apps. Connecting the ERP means a separate integration against its data entities."
    },
    {
      "q": "Can dual-write carry Dynamics 365 Supply Chain Management data into HubSpot?",
      "a": "Only where Dynamics 365 Sales already runs. Dual-write copies customers, and quotations and orders from Supply Chain Management, into Dataverse for Sales, and HubSpot's Microsoft Dynamics 365 app syncs accounts and sales orders from the Dynamics 365 side. That puts two sync engines and two sets of match rules between the ledger and the portal, so we test the chain in sandboxes first and never add Sales licences just to create it."
    },
    {
      "q": "Which Dynamics 365 Finance business events can a HubSpot integration use?",
      "a": "The Quote to cash events matter most: invoice created from a sales order, free text invoice posted, payment posted, transaction written off and collection status changed. They can go to a Service Bus queue or topic, Event Grid, Event Hubs, an HTTPS endpoint, Blob storage, Power Automate or Dataverse, activated per legal entity. Customer and order changes need change-based alert rules, which run in batch, so we read those entities on a schedule."
    },
    {
      "q": "How does a Dynamics 365 Finance integration pick up changed records?",
      "a": "Through change tracking, enabled per data entity on its primary table, the entire entity or a custom query. A read that sends the odata.track-changes preference gets what changed since the previous read. Deletions are only tracked for bring-your-own-database exports and Dataverse virtual entities, so a nightly comparison of keys closes what was deleted. Changes reach HubSpot on the interval agreed in discovery."
    },
    {
      "q": "What are the API limits for Dynamics 365 Finance and Operations?",
      "a": "There is no fixed request quota today. User-based limits of 6,000 requests per five minutes, per user and web server, were announced, then made optional, and from version 10.0.36 they are disabled on every environment. What remains is resource-based throttling: a 429 Too Many Requests when web server utilization crosses a threshold, which a client handles with Retry-After logic. Throttling priority mapping decides who is throttled first."
    },
    {
      "q": "Is there a Dynamics 365 Supply Chain Management sandbox for integration testing?",
      "a": "Yes. The standard cloud offer includes one Tier 2 Standard Acceptance Testing environment for the length of the subscription, a multi-server instance meant for user acceptance and integration testing. Further sandboxes are paid add-ons. Tier 1 environments are single-box and not suited to acceptance testing, so we build and rehearse the integration in Tier 2 before production."
    },
    {
      "q": "What happens to Dynamics AX integrations in Dynamics 365 Finance?",
      "a": "Most of them are rebuilt. Microsoft lists AX 2012 document services as replaced by data entities and the SOAP query service as replaced by OData, while SOAP custom services carry on and JSON custom services are new. A feed that read AX documents therefore becomes OData reads or package exports against data entities, which is the design described on this page."
    },
    {
      "q": "How many hours does a Dynamics 365 Finance and Supply Chain integration take?",
      "a": "Allow 10 to 20 hours of discovery and 70 to 150 hours of build for customers, orders, invoices and products across the legal entities in scope, with change tracking, an event queue for invoices and payments, and a nightly key comparison. Calendar time depends on how quickly the client's administrators register the application in Entra and create the Service Bus queue."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Dynamics 365 Finance and Supply Chain to HubSpot",
      "anchor": "#why-teams-connect-dynamics-365-finance-and-supply-chain-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#why-teams-connect-dynamics-365-finance-and-supply-chain-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#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-finance-supply-chain/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Customers missing from other legal entities",
      "anchor": "#customers-missing-from-other-legal-entities",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#customers-missing-from-other-legal-entities"
    },
    {
      "depth": 3,
      "text": "Customers V3 on a busy schedule",
      "anchor": "#customers-v3-on-a-busy-schedule",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#customers-v3-on-a-busy-schedule"
    },
    {
      "depth": 3,
      "text": "Deletions change tracking never reports",
      "anchor": "#deletions-change-tracking-never-reports",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#deletions-change-tracking-never-reports"
    },
    {
      "depth": 3,
      "text": "Events out of order or twice",
      "anchor": "#events-out-of-order-or-twice",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#events-out-of-order-or-twice"
    },
    {
      "depth": 3,
      "text": "Endpoint secrets that expire",
      "anchor": "#endpoint-secrets-that-expire",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#endpoint-secrets-that-expire"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-365-finance-supply-chain/#our-approach"
    }
  ],
  "caseStudies": [],
  "guides": [
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/",
    "https://apps.sectorgrowth.com/guides/how-sector-growth-scopes-an-integration/"
  ],
  "status": "published",
  "verifiedAt": "2026-09-28",
  "updatedAt": "2026-09-28",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "Open Data Protocol (OData)",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/odata"
    },
    {
      "title": "Data entities overview",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/data-entities"
    },
    {
      "title": "Service endpoints overview",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/services-home-page"
    },
    {
      "title": "Enable change tracking for entities",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/entity-change-track"
    },
    {
      "title": "Business events overview",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/business-events/home-page"
    },
    {
      "title": "Application business events",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/business-events/app-business-events"
    },
    {
      "title": "Alerts as business events",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/business-events/alerts-business-events"
    },
    {
      "title": "Manage business event endpoints",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/business-events/managing-business-event-endpoints"
    },
    {
      "title": "Service protection API limits",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/service-protection-api-limits"
    },
    {
      "title": "Throttling prioritization",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/priority-based-throttling"
    },
    {
      "title": "Customers V3 entity",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/entity-customers-v3-customerv3"
    },
    {
      "title": "Sales order headers V2 entity",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/entity-sales-order-headers-v2-salesorderheaderv2"
    },
    {
      "title": "SalesInvoiceHeaderV2Entity in AccountsReceivable",
      "url": "https://learn.microsoft.com/en-us/common-data-model/schema/core/operationscommon/entities/finance/accountsreceivable/salesinvoiceheaderv2entity"
    },
    {
      "title": "Released products V2 entity",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/entity-released-products-v2-releasedproductv2"
    },
    {
      "title": "Environment planning",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/organization-administration/environment-planning"
    },
    {
      "title": "Integrated customer master",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/dual-write/customer-mapping"
    },
    {
      "title": "Prospect-to-cash in dual-write",
      "url": "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/data-entities/dual-write-prospect-to-cash"
    },
    {
      "title": "Connect HubSpot and Microsoft Dynamics 365",
      "url": "https://knowledge.hubspot.com/integrations/connect-hubspot-and-microsoft-dynamics-365"
    }
  ]
}