{
  "slug": "dynamics-gp",
  "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/",
  "name": "Dynamics GP",
  "vendor": "Microsoft",
  "aliases": [
    "Microsoft Dynamics GP",
    "Great Plains",
    "Dynamics Great Plains"
  ],
  "website": "https://learn.microsoft.com/en-us/dynamics-gp/",
  "category": {
    "slug": "erp-and-accounting",
    "name": "ERP and accounting",
    "url": "https://apps.sectorgrowth.com/categories/erp-and-accounting/"
  },
  "summary": "Dynamics GP holds customers, balances and sales documents in SQL Server, and Microsoft ends its support in 2029. What a HubSpot feed should cost now.",
  "answer": "No. GP has no app of its own in the HubSpot App Marketplace as of September 2026, and HubSpot's Microsoft apps connect Business Central and Dynamics 365 Sales instead. We recommend a managed sync on Skyvia that reads SQL views over the GP company database, one way into HubSpot, at 15 to 30 build hours. It stops being enough when HubSpot has to write customers or orders back into GP.",
  "nativeApp": {
    "status": "none",
    "verifiedAt": "2026-09-28"
  },
  "api": {
    "style": "sql",
    "auth": "sql",
    "webhooks": "partial",
    "changedSince": "partial",
    "sandbox": "yes",
    "docsUrl": "https://learn.microsoft.com/en-us/dynamics-gp/installation/developer-tools"
  },
  "objects": [
    {
      "source": "Customer",
      "hubspot": "company",
      "direction": "to_hubspot",
      "key": "GP customer ID held in a custom HubSpot property",
      "notes": "The hold and inactive flags ride across, so a seller sees them before quoting."
    },
    {
      "source": "Customer balance",
      "hubspot": "company",
      "direction": "to_hubspot",
      "key": "GP customer ID",
      "notes": "GP keeps balances in a table apart from the customer master."
    },
    {
      "source": "Customer address",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Customer ID plus address ID, with email as the match where present",
      "notes": "Each address carries one contact person and the email used for documents."
    },
    {
      "source": "Unposted sales order",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Document type plus document number",
      "notes": "Microsoft's own queries match a sales document on the pair."
    },
    {
      "source": "Posted sales invoice",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Document type plus document number, associated to the company",
      "notes": "A posted document belongs in the history table, not the work table."
    },
    {
      "source": "Item",
      "hubspot": "product",
      "direction": "to_hubspot",
      "key": "Item number"
    }
  ],
  "approaches": [
    {
      "kind": "skyvia",
      "fit": "recommended",
      "why": "A managed sync on Skyvia reads SQL views over the GP company database through an agent inside your network, one way into HubSpot on a schedule, and leaves nothing custom to retire when GP goes."
    },
    {
      "kind": "custom",
      "fit": "possible",
      "why": "A custom integration earns its cost only where HubSpot must create customers or orders in GP, through its web services or eConnect, and the move off GP is years away."
    },
    {
      "kind": "native",
      "fit": "avoid",
      "why": "No marketplace app is named for GP. HubSpot's Business Central app runs as an extension deployed inside Business Central, and its Dynamics 365 app connects to a Dynamics 365 instance, so neither reads a GP database."
    }
  ],
  "connectionMethods": [
    "ipaas",
    "sql"
  ],
  "effort": {
    "discoveryHours": [
      4,
      8
    ],
    "buildHours": [
      15,
      30
    ],
    "buildBand": "15 to 30 hours",
    "typicalElapsed": "1 to 2 weeks"
  },
  "pattern": "sql-managed-sync",
  "faqs": [
    {
      "q": "Does HubSpot publish an app for Microsoft Dynamics GP?",
      "a": "No. A search of the HubSpot App Marketplace for Dynamics GP returns only loosely matching listings, and a search for Great Plains fares no better. HubSpot's Microsoft apps connect Business Central, through an extension installed inside Business Central, and Dynamics 365 Sales. Neither reads a GP company database, so GP needs a managed sync or a custom integration."
    },
    {
      "q": "When does Microsoft stop supporting Dynamics GP?",
      "a": "At the end of December 2029 for product enhancements, tax and regulatory updates and technical support, with security updates, if needed, until April 2031. Microsoft stopped selling new perpetual licences to new customers in April 2025 and new subscriptions in April 2026. Its advice is to move to Dynamics 365 Business Central, which HubSpot supports with an app of its own."
    },
    {
      "q": "Should a Dynamics GP company connect HubSpot before moving to Business Central?",
      "a": "Yes, if the move is more than a few months away, and cheaply. A managed sync gives sellers balances and orders now and is switched off at cutover. Microsoft's migration brings customers across but re-creates open receivables as new documents for the amount still owed, with GP history kept in a separate snapshot, so invoice records in HubSpot are re-keyed then. If the move is close, connect Business Central instead."
    },
    {
      "q": "How fresh is Dynamics GP data in HubSpot with a managed sync?",
      "a": "As fresh as the schedule. We schedule open sales documents and balances hourly through the working day and the full customer and item lists overnight. Each run reads the views afresh and upserts on GP keys, so an invoice posted in GP reaches HubSpot on the next run, and running the same package twice changes nothing."
    },
    {
      "q": "Can Dynamics GP notify HubSpot when a record changes?",
      "a": "Not over HTTP. The closest thing is eConnect's Transaction Requester: its Outgoing Service publishes an XML document to a Windows message queue when a record of a chosen type, such as a customer or a sales transaction, is created, updated or deleted. A custom service on your network can read that queue, though changes made through eConnect itself are left out by default."
    },
    {
      "q": "Can HubSpot create customers or sales orders in Dynamics GP?",
      "a": "Yes, through GP's web services or eConnect, both of which apply GP's business logic before writing. The web services run on your own servers as a WCF service, and Dynamics Security decides which users may call each operation. We rarely recommend it for GP now: it adds on-premises services to maintain for a product whose support ends in 2029."
    },
    {
      "q": "What happens when a Dynamics GP sync run fails partway?",
      "a": "Skyvia's logs show which package failed and the error on the failed records. Because every object upserts on its GP key, rerunning the chain from the failed package updates what the first attempt wrote instead of duplicating it. When HubSpot's batch API rejects a batch, we find the bad row, correct it in GP or in the view, and rerun that package alone."
    },
    {
      "q": "How many hours does a Dynamics GP and HubSpot feed take to build?",
      "a": "Budget 4 to 8 hours of discovery and 15 to 30 hours to build and validate the packages, once your team grants a read-only SQL login and a machine for the agent. Discovery settles which company databases feed HubSpot, how contacts are drawn from addresses, and the date of any move to Business Central, since that sets how long the sync has to run."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Dynamics GP to HubSpot",
      "anchor": "#why-teams-connect-dynamics-gp-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#why-teams-connect-dynamics-gp-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#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-gp/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Posted invoices leave the work table",
      "anchor": "#posted-invoices-leave-the-work-table",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#posted-invoices-leave-the-work-table"
    },
    {
      "depth": 3,
      "text": "One bad email fails the batch",
      "anchor": "#one-bad-email-fails-the-batch",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#one-bad-email-fails-the-batch"
    },
    {
      "depth": 3,
      "text": "Changes the Requester never publishes",
      "anchor": "#changes-the-requester-never-publishes",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#changes-the-requester-never-publishes"
    },
    {
      "depth": 3,
      "text": "Web Services pinned to TLS 1.0",
      "anchor": "#web-services-pinned-to-tls-10",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#web-services-pinned-to-tls-10"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/dynamics-gp/#our-approach"
    }
  ],
  "caseStudies": [],
  "guides": [
    "https://apps.sectorgrowth.com/guides/migration-or-integration/",
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/"
  ],
  "status": "published",
  "verifiedAt": "2026-09-28",
  "updatedAt": "2026-09-28",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "Understand the Lifecycle Policies - Dynamics GP",
      "url": "https://learn.microsoft.com/en-us/dynamics-gp/terms/lifecycle"
    },
    {
      "title": "Discontinuing support for Microsoft Dynamics GP",
      "url": "https://community.dynamics.com/blogs/post/?postid=468f615b-fe79-ef11-a671-7c1e521674d3"
    },
    {
      "title": "Developer Tools - Dynamics GP",
      "url": "https://learn.microsoft.com/en-us/dynamics-gp/installation/developer-tools"
    },
    {
      "title": "Web service foundation",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/cc508698(v=msdn.10)"
    },
    {
      "title": "What the Dynamics GP Web Service provides",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/cc508699(v=msdn.10)"
    },
    {
      "title": "CustomerCriteria",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/cc507900(v=msdn.10)"
    },
    {
      "title": "Overview of entity action tracking",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/ff622769(v=msdn.10)"
    },
    {
      "title": "Considerations for entity action tracking",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/ff622768(v=msdn.10)"
    },
    {
      "title": "Microsoft Dynamics GP Upgrade 2024 - Upgrading Microsoft Dynamics Web Services",
      "url": "https://community.dynamics.com/blogs/post/?postid=9207c39e-ba6b-ef11-bfe2-000d3a9d265a"
    },
    {
      "title": "Transaction Requester Overview",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/bb625135(v=msdn.10)"
    },
    {
      "title": "Requester document tables",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/bb625133(v=msdn.10)"
    },
    {
      "title": "Using the RequesterTrx element",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/bb625134(v=msdn.10)"
    },
    {
      "title": "BusinessAddress",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/cc533661(v=msdn.10)"
    },
    {
      "title": "InternetAddresses",
      "url": "https://learn.microsoft.com/en-us/previous-versions/dynamicsgp/developer/cc533800(v=msdn.10)"
    },
    {
      "title": "This document has been posted - Dynamics GP",
      "url": "https://learn.microsoft.com/en-us/troubleshoot/dynamics/gp/this-document-has-been-posted"
    },
    {
      "title": "Starting off with Excel Refreshable Reports",
      "url": "https://community.dynamics.com/blogs/post/?postid=8d40bdcc-bf81-424a-8186-7cce1ba5fb71"
    },
    {
      "title": "Set up a test company - Dynamics GP",
      "url": "https://learn.microsoft.com/en-us/troubleshoot/dynamics/gp/set-up-a-test-company"
    },
    {
      "title": "Migrate Dynamics GP data to the cloud - Business Central",
      "url": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/migrate-dynamics-gp"
    },
    {
      "title": "Authenticate your apps for HubSpot data sync",
      "url": "https://knowledge.hubspot.com/integrations/data-sync-authentication"
    },
    {
      "title": "Connect HubSpot and Microsoft Dynamics 365",
      "url": "https://knowledge.hubspot.com/integrations/connect-hubspot-and-microsoft-dynamics-365"
    },
    {
      "title": "Agent Connections",
      "url": "https://docs.skyvia.com/connections/agent-connections.html"
    },
    {
      "title": "HubSpot",
      "url": "https://docs.skyvia.com/connectors/cloud-sources/hubspot_connections.html"
    },
    {
      "title": "How to Perform UPSERT Operation",
      "url": "https://docs.skyvia.com/data-integration/import/how-to-guides/performing-upsert-operation.html"
    }
  ]
}