CRM

A customer who just paid you is still, as far as HubSpot knows, a lead

Somebody buys from your webshop on Monday. On Tuesday HubSpot sends them a nurture email offering ten percent off their first order, because as far as the lifecycle stage is concerned they are still just a lead who once filled in a form. It reads as either careless or slightly desperate, and it is neither — it is a webshop and a CRM that have never spoken to each other.

HubSpot is very good at knowing what happened on your website. It knows nothing about what happened on your webshop unless something tells it, and "something" is usually a person, once a month, exporting a CSV.

  • Forms API and private app tokens
  • Contacts, deals, lifecycle stage, orders
  • From €1,700 plus service fees
The tool

What HubSpot is, and what changes between the Free tier and the paid Hubs

HubSpot is a CRM with marketing, sales and service tools built around it, organised into Hubs — Marketing, Sales, Service, CMS, Operations — that can be bought separately or together. Underneath all of them sit the same core objects: contacts, companies, deals, tickets, and a lifecycle stage on every contact that is supposed to describe where they actually are, from subscriber through lead and marketing-qualified lead to customer.

The free CRM covers contacts, companies, deals and basic pipelines, and it is a genuinely usable starting point. What it does not have is custom objects, most workflow automation, and the deeper reporting — those arrive with Professional, and custom objects specifically need Professional or Enterprise depending on the Hub. We check which tier you are on before proposing a design that assumes a feature the account does not have.

Since 2022 the standard way in is a private app with a scoped access token rather than the old API key, which HubSpot has fully retired. Authentication is straightforward; the actual work is almost always the mapping between what a webshop calls a customer and what HubSpot calls a contact, and getting the lifecycle stage to move on its own instead of by hand.

What goes wrong

Three things that go wrong between a webshop and HubSpot

These three show up almost every time HubSpot sits next to a webshop instead of only a website, because HubSpot's own tools stop at the form and never see the order.

Marketing nurtures people who already bought

A workflow built to convert leads keeps emailing a discount code to somebody who checked out last week, because nothing moved their lifecycle stage to Customer. It looks like your marketing team does not track who buys, and eventually somebody unsubscribes over it.

What you see instead

A completed order moves the contact to Customer the moment it is paid, which pulls them out of acquisition workflows automatically because that is what the stage is for. Marketing spend goes to people who have not bought yet.

A sales rep works a deal for a customer who already checked out

A deal sits in "Proposal Sent" for three weeks because the person went ahead and bought directly through the webshop instead of waiting for the quote. The rep finds out from the customer, not from HubSpot, which is an uncomfortable way to learn your own pipeline is wrong.

What you see instead

A matching order closes the open deal automatically, or creates one and closes it in the same step if none existed. The pipeline reports what happened, not what a rep last remembered to update.

Marketing consent and the shop account disagree

A guest checkout on the webshop creates a contact with no marketing permission recorded anywhere, while the same email address already exists in HubSpot with consent given through a newsletter signup two years ago. Which record is right depends on who you ask, and a compliance review does not like that answer.

What you see instead

The connection matches on email before creating anything and keeps consent attached to wherever it was actually given, so a guest checkout never silently resets or duplicates a permission that already existed.

The bill for doing it by hand

What a monthly CSV export between HubSpot and your webshop costs

A common pattern we inherit: once a month, somebody exports orders from the webshop, cleans the file up, and imports it into HubSpot as a list update so at least lifecycle stages are roughly right. At 400 orders a month that is a couple of hours of cleaning and matching by hand, plus the mistakes an import based on email-address matching alone tends to make — the customer who used a different email at checkout stays a lead forever.

The bigger cost is not the hours, it is the month of lag. A contact who bought on the 3rd is marketed to as a prospect until the export on the 30th, which is most of a month spent sending the wrong message to a real customer — and every one of those emails is a small, cumulative reason for someone to distrust your brand a little more.

  • A couple of hours a month cleaning and matching an order export by hand.
  • Up to a month of lag before a customer's lifecycle stage catches up with reality.
  • Discount emails sent to people who already paid full price, and the unsubscribes that follow.
  • A deal left open in the pipeline for a sale that already closed through the shop.
What we build

We build the thing on the other end too

With HubSpot the design decision that matters most is which system owns the lifecycle stage once a webshop is in the picture, because HubSpot's own automation was built assuming marketing and sales activity is the only input, and a connected shop needs to be allowed to move that needle too.

A connection needs two ends. Plenty of agencies will build you the API call and hand you a JSON payload; that is the easy half. The harder half is what the data lands in — a website, a webshop, a portal your customers log into, an internal tool that replaces a spreadsheet. JKC builds both ends, which is why the connections we build tend to keep working: nothing about the receiving side is a black box to us.

API integrations

The connection itself: authentication, field mapping, rate limits, retries and a queue that survives the other system being down for an hour. Built against the documented API where there is one, and against whatever the vendor really offers where there is not.

Websites

WordPress sites that read from your systems instead of repeating them by hand: a careers page fed by your HR system, a team page that follows your payroll, prices and availability that are the real ones.

Webshops

WooCommerce shops where the order is the last time anyone types it: it becomes an invoice in your accounting package, a label at your carrier, a stock mutation in your warehouse, and a line in your CRM, on its own.

Web applications

When the process does not fit any standard product: a customer portal, a quoting tool, a planning board, a dashboard that reads three systems at once. Built on your data, with your systems as the source instead of a copy of them.

What can be connected

What can be connected between HubSpot and your website or webshop

Built against a private app token with scoped permissions, so your HubSpot admin decides and can see exactly what a connection is allowed to touch.

  • Contacts and lifecycle stage (both ways)

    Matched on email before anything is created, with the lifecycle stage moved to Customer automatically on a completed order — not overwritten backward if a later action would demote it.

  • Orders as deals, or closing an existing one (into the tool)

    Line items, amount and order reference, either creating a closed-won deal for reporting or moving an open one forward so the pipeline reflects reality.

  • Web forms, with hidden fields the native embed drops (into the tool)

    UTM parameters, the page a form was submitted from, and any custom field a site-specific form needs, posted through the Forms API rather than the standard embed when the design or the fields do not fit it.

  • Marketing consent and unsubscribes (both ways)

    Consent stays attached to wherever it was given, and an unsubscribe on either side is respected on both — nobody gets marketed to on the site after opting out in an email footer, or the other way round.

  • Custom objects for order-level or product-level data (into the tool)

    On Professional or Enterprise: orders and products as their own objects, associated with the contact and the deal, so reporting can go deeper than a deal amount and a stage.

Almost every first HubSpot project is rows one and two: contacts matched, lifecycle stage correct, deals reflecting reality. Custom objects are a second phase for accounts that have grown past what a deal amount can report on its own.

How it works

How a connection gets built at JKC

The same four steps every time, whichever tool it is. Nothing here is a workshop you pay for: step one exists because scoping a connection wrong is the single most expensive thing that can happen to it.

  1. 1. We look at what is actually being retyped

    Not "which fields exist" but "which fields does somebody currently move by hand, how often, and what breaks when they get it wrong". Most projects turn out to need two or three flows, not a full two-way sync of everything. That conversation is what keeps the quote where it is.

  2. 2. We pick the route, and say why

    A maintained connector from the vendor, a platform like Make or Zapier, or a custom integration against the API. Cheapest first, not custom first: if a supported plugin does exactly what you need, that is the answer and we will tell you so. Custom is for the cases where the off-the-shelf option would need so much configuring that it becomes the fragile option.

  3. 3. We build it to survive the other system

    Every connection ships with retries, a queue and an idempotency key, so an order that arrives while the other side is down is delivered later rather than lost, and a retry does not create a second invoice. On a test environment first where the vendor offers one, so the first thing your real administration sees is a working connection.

  4. 4. We hand it over with the failure modes written down

    Which alerts you will get, what each one means, what to do about it, and who to call. Plus the credentials in your own name, in your own vault — not in ours. A connection nobody but us can maintain is a connection you do not own.

After it goes live

A connection that fails silently is worse than no connection

This is the part most quotes leave out. A connection that stops working without telling anyone is worse than manual work, because with manual work at least somebody notices when it does not get done. Every connection JKC builds is monitored, and the monitoring is not an upsell — it is in the service fee.

An alert per failed message, not a monthly report

A message that does not get through raises an alert the same hour, with the record it was about. Not a dashboard you have to remember to look at.

Replay, not re-enter

Anything that failed sits in a queue and can be sent again once the cause is fixed, in order. Nobody goes back through yesterday to find the four orders that did not land.

We watch the vendor's changes, so you do not have to

APIs get versioned, deprecated and rate-limited. When a vendor announces a change that affects your connection, adjusting to it is part of the service fee, not a new project.

What it costs

From €1,700, and the biggest variable is who built the other end

For HubSpot specifically: which Hub and which tier you are on matters more than the flows do. Free and Starter cover contacts and deals fine; custom objects and the deeper workflow triggers need Professional or Enterprise, and we check that before quoting rather than after.

A connection starts from €1,700 plus a monthly service fee, which covers the monitoring, the queue and keeping up with the vendor's API changes. Work outside a fixed scope is €95 per hour.

What moves the number is not the tool — it is how well the system on the other end is known. If JKC built your website, your webshop or your web application, we already know its data model, its edge cases and where its stock numbers really come from, and a connection into it is mostly configuration and testing. If it is a system we have never opened, we start with a short technical check of both sides and quote after that, so you are not paying hourly for us to work out the basics.

Two more things that move it, in our experience more than anything else: whether the tool has a real API or only a CSV export, and whether the sync has to go both ways. One-way is roughly half the work of two-way, because two-way means deciding, per field, which system wins when they disagree — and that decision is the expensive part, not the code.

Questions

Frequently asked questions about connecting HubSpot

Not for the basics. Contacts, companies, deals and lifecycle stage are available on the free CRM, and a connection that matches orders to contacts and moves the lifecycle stage works there without upgrading anything.

Where you need Professional or Enterprise is custom objects, most workflow automation, and reporting beyond the standard dashboards. We tell you which row on this page needs which tier before you decide anything is missing.

Free, 10 minutes

Not sure where the manual hours actually go?

That is what the Growth Scan is for. Ten minutes, no sales call attached: you get back where the double work sits, which connection would pay for itself first, and which one honestly would not.