HubSpot + Dynamics GP integration

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.

Connects by iPaaS , SQL

Scope this integration Book a scoping call Estimate the cost

Is there an official Dynamics GP + HubSpot integration?

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.

Recommended route
Managed sync on Skyvia
Build effort
15 to 30 hours
In the HubSpot App Marketplace?
No listed app
Typical elapsed time
1 to 2 weeks

Marketplace checked September 2026.

Why teams connect Dynamics GP to HubSpot

A company still on Dynamics GP is running software with a known end. Microsoft stopped selling GP to new customers, perpetual licences from April 2025 and subscriptions from April 2026, and ends product enhancements, tax updates and technical support at the end of December 2029, with security updates continuing to April 2031. Microsoft points GP customers toward Business Central. For a company still on GP the move is coming, and its timing is the company’s own decision.

Meanwhile sales has moved to HubSpot, and the questions it cannot answer are the usual ones for an ERP that runs on its own SQL Server: what this customer owes, what they have on order, whether the last invoice posted. GP answers them in SmartLists and reports that sellers never open, and a seller who asks finance gets the answer after the call.

So the decision on this page is less about capability than about time and money. The managed sync and the custom integration below both work. The question is how much to spend connecting a system with a few years of support left, and how to build the HubSpot side so that it outlives GP. Our answer is to spend little on the GP end, keep the feed one way, and put the care into the keys and properties HubSpot will keep after the move.

What syncs

Every object in the table moves one way, and there are six. The customer master becomes the HubSpot company. The balance comes from a separate table rather than the master, which is why GP’s own integration tools treat the customer balance as a document type of its own. Items become products.

Contacts need care, because GP keeps them on addresses. Each customer address carries a single contact person and an internet-address record holding the email that documents are sent to. HubSpot contacts are built from those address rows, keyed on the customer ID plus the address ID, with email as the match where one exists.

Sales documents are split by state. Unposted documents sit in the sales work table, and a posted document belongs in the history table; Microsoft treats the same document in both as a fault. The feed reads both, keys every document on its type plus its number, the pair Microsoft’s own queries match on, and treats the move from work to history as a change of status, never a deletion. Open orders become deals, and posted invoices land on a custom object associated to the company.

Objects that sync between Dynamics GP and HubSpot
Source object HubSpot object Direction Match key Notes
Customer Company Into HubSpot GP customer ID held in a custom HubSpot property The hold and inactive flags ride across, so a seller sees them before quoting.
Customer balance Company Into HubSpot GP customer ID GP keeps balances in a table apart from the customer master.
Customer address Contact Into HubSpot Customer ID plus address ID, with email as the match where present Each address carries one contact person and the email used for documents.
Unposted sales order Deal Into HubSpot Document type plus document number Microsoft's own queries match a sales document on the pair.
Posted sales invoice Custom object Into HubSpot Document type plus document number, associated to the company A posted document belongs in the history table, not the work table.
Item Product Into HubSpot Item number

Architecture

The runtime is a managed sync over SQL, run on Skyvia. The Skyvia Agent is installed on a machine inside your network that can reach both the GP SQL Server and the internet, and it exchanges data with Skyvia in encrypted form with no public address or open port. In its alias mode, the SQL connection details stay in a file on that machine and never reach Skyvia’s servers.

GP already publishes its data for reporting through SQL views, which is what its Excel refreshable reports read. We add a small set of read-only views of our own, one per object, over the customer master, balances, addresses, open and posted sales documents and items, under a read-only SQL login.

Packages run on a schedule in load order: companies, then contacts, then deals and invoices, then the association pass. Each upserts on the GP key held in a custom HubSpot property, found by a lookup that returns nothing for a new record, so a new GP customer inserts and a known one updates. Every run ends with a count check against the views, and rows that fail validation go to an exceptions report.

An agent inside the network holds the SQL connection to the GP company database. Skyvia packages read the views on a schedule and upsert HubSpot companies, contacts, deals and invoices in load order, each keyed on its GP identifier, then check counts against the views.

What the API allows

API style
SQL database
Authentication
Database credentials
Webhooks
Partial
Changed-since filter
Partial
Sandbox
Yes
Rate limit
Not documented

Developer documentation learn.microsoft.com

Three ways to connect

The deciding factor on GP is the time left, and whether HubSpot must ever write into it. For a one-way feed, a managed sync on Skyvia is the smallest thing that works, and it is switched off on the day Business Central goes live.

A custom integration is the route when HubSpot has to create customers or orders in GP. Microsoft names Web Services for Microsoft Dynamics GP as the preferred tool for integrating data, with eConnect for objects the web services do not cover. Both run on your servers, and Microsoft has said it is not actively fixing issues found in some eConnect procedures, because of the product’s lifecycle. That is a lot of new machinery for a system with a few years left.

Nothing in the HubSpot App Marketplace covers GP. HubSpot’s Business Central app installs as an extension inside Business Central, and its Dynamics 365 app connects to a Dynamics 365 instance by its subdomain.

  • Custom integration

    Possible

    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.

  • Marketplace app

    Avoid

    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.

What breaks and how we prevent it

Posted invoices leave the work table

GP keeps unposted sales documents in its work table and posted ones in the history table. A feed that reads only open documents watches a posted invoice disappear and closes or deletes its HubSpot record. Our views union both tables, carry the posting state as a property, and never delete a record because it went missing from one table.

One bad email fails the batch

Skyvia loads HubSpot contacts, companies and products through HubSpot’s batch API, where one rejected record fails its whole batch and the log keeps only the first error. GP’s email field on an address holds up to 1,000 characters, far more than one address needs. We validate emails in the view, route the bad ones to an exceptions report, and turn batching off only while reloading failures.

Changes the Requester never publishes

A build that takes eConnect’s Transaction Requester as its change feed inherits a default: changes made through eConnect’s own documents are not published unless their RequesterTrx element is set to 1. Orders another integration writes through eConnect can then never reach the queue. GP’s entity action tracking logs actions whatever their origin, so we use it instead, for only the actions we need, since each one writes a row to the eConnect_Out table, and reconcile against the tables nightly.

Web Services pinned to TLS 1.0

Microsoft’s GP support team has written that GP Web Services needs TLS 1.0 when its Authorization Manager store sits in SQL Server, and that moving to TLS 1.2 means reinstalling with an Active Directory store, with no migration between the two. We check the store before promising any write back.

Our approach

  1. Scope. We confirm how many company databases feed HubSpot, the GP release, the date of any Business Central move, and who can grant a read-only SQL login and a machine for the agent.
  2. Architect. We write the views, fix the keys, document type plus number included, and decide which HubSpot properties must outlive GP.
  3. Build. Packages are built against a test company restored from a copy of the live database, writing to a HubSpot sandbox until cutover.
  4. Validate. We reconcile customers, open documents and balances against GP reports, then walk the exceptions with whoever owns receivables.
  5. Operate. We watch run history and the exceptions report, and at the Business Central cutover we freeze GP-sourced invoices as history and switch the feed off.

Common questions

Does HubSpot publish an app for Microsoft Dynamics GP?

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.

When does Microsoft stop supporting Dynamics GP?

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.

Should a Dynamics GP company connect HubSpot before moving to Business Central?

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.

How fresh is Dynamics GP data in HubSpot with a managed sync?

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.

Can Dynamics GP notify HubSpot when a record changes?

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.

Can HubSpot create customers or sales orders in Dynamics GP?

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.

What happens when a Dynamics GP sync run fails partway?

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.

How many hours does a Dynamics GP and HubSpot feed take to build?

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.

Partnerships and accreditations

  • HubSpot Elite Solutions Partner
  • HubSpot Custom Integration Accreditation
  • HubSpot CRM Data Migration Accreditation
  • HubSpot Solutions Architecture Design Accreditation

HubSpot accreditations

  • HubSpot Onboarding Accreditation
  • HubSpot Academy Accreditations

Industry specializations

  • HubSpot Healthcare Industry Specialist
  • HubSpot Financial Services Industry Specialist
  • HubSpot Manufacturing Industry Specialist
  • HubSpot Quote to Cash Capability

Partnerships

  • Anthropic Solutions Partner

Trust and compliance

We design integrations to support the security and privacy rules your business works under, and we build them on independently audited platforms.

How we build

  • Sandbox first. We build and test in a sandbox before anything reaches production.
  • Fail-closed allowlists. An integration runs only against the HubSpot accounts it is approved for.
  • Least-privilege access. Each integration gets only the API scopes it needs.
  • Secrets in a vault. Keys and tokens live in a secrets vault, never in plain text.
  • Sensitive data scoped early. Discovery covers sensitive data, access controls and any BAA or data-processing needs.
  • A compliance package for regulated industries: audit logging, field-level encryption and sensitive-data handling.

Scope a Dynamics GP integration

Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.

  • Dynamics GP

Type any system and its version, such as Sage 300 or Sage 50. Press Enter or a comma after each one.

Add more detail (optional)

Optional. A sentence or two about the workflow is enough.

We use these answers to scope the work and for nothing else. Privacy policy.

Prefer to talk it through first? Book a technical scoping call

Talk to the people who build these

  • Nijat
  • Sean
  • Prash

Book a scoping call