---
title: "Shopify Draft Orders to HubSpot Deals: Track Quotes"
description: HubSpot's Shopify app doesn't sync draft orders. How to turn Shopify quotes into HubSpot deals with Flow, Zapier or code, and close the right deal on payment.
image: https://www.crmwired.com/hubfs/crmwired-site/guide-shopify-draft-orders-hubspot-deals-og.jpeg
---

[Skip to content](https://www.crmwired.com/guides/shopify-draft-orders-hubspot-deals#main)

<https://www.crmwired.com/?hsLang=en>

[Services](https://www.crmwired.com/#services)

[**NetSuite + HubSpot**Quotes, customers and leads synced both ways.](https://www.crmwired.com/hubspot-netsuite-integration?hsLang=en)[**ServiceTrade + HubSpot**Field jobs move the right sales deal.](https://www.crmwired.com/hubspot-servicetrade-integration?hsLang=en)[**Shopify + HubSpot**Every draft order tracked as a deal.](https://www.crmwired.com/hubspot-shopify-integration?hsLang=en)[**Zapier + HubSpot**Zaps that run only when they need to.](https://www.crmwired.com/zapier-hubspot?hsLang=en)[**AI agents and Help Desk**A customer agent that answers from your policies.](https://www.crmwired.com/hubspot-ai-agent?hsLang=en)[**HubSpot audit and cleanup**Find what your portal is really doing.](https://www.crmwired.com/hubspot-audit?hsLang=en)

[Case studies](https://www.crmwired.com/case-studies?hsLang=en)[Guides](https://www.crmwired.com/guides?hsLang=en)[Help](https://help.crmwired.com/)[About](https://www.crmwired.com/#about)[Pricing](https://www.crmwired.com/#pricing)[Book a free call](https://www.crmwired.com/contact?hsLang=en)

Menu

[NetSuite + HubSpot](https://www.crmwired.com/hubspot-netsuite-integration?hsLang=en)[ServiceTrade + HubSpot](https://www.crmwired.com/hubspot-servicetrade-integration?hsLang=en)[Shopify + HubSpot](https://www.crmwired.com/hubspot-shopify-integration?hsLang=en)[Zapier + HubSpot](https://www.crmwired.com/zapier-hubspot?hsLang=en)[AI agents and Help Desk](https://www.crmwired.com/hubspot-ai-agent?hsLang=en)[HubSpot audit and cleanup](https://www.crmwired.com/hubspot-audit?hsLang=en)[Case studies](https://www.crmwired.com/case-studies?hsLang=en)[Guides](https://www.crmwired.com/guides?hsLang=en)[Help](https://help.crmwired.com/)[About](https://www.crmwired.com/#about)[Pricing](https://www.crmwired.com/#pricing) [Book a free call](https://www.crmwired.com/contact?hsLang=en)

[Home](https://www.crmwired.com/?hsLang=en) / [Guides](https://www.crmwired.com/guides?hsLang=en)

Guide

# Shopify draft orders to HubSpot deals: how to track quotes to revenue

HubSpot's Shopify app doesn't sync draft orders. How to turn Shopify quotes into HubSpot deals with Flow, Zapier or code, and close the right deal on payment.

By [Abdur Rahim Mostafa](https://www.crmwired.com/#about) · Updated 25 October 2026

HubSpot's own Shopify app does not sync draft orders. A quote a rep builds as a draft order in Shopify stays invisible in HubSpot until it turns into an order, and then it arrives in HubSpot's Orders object with no deal attached. The quote never appears in your sales pipeline.

To track Shopify quotes as HubSpot deals you add a second sync just for draft orders. You can build it with Shopify Flow, with Zapier, with a marketplace app such as Unific's Quotific, or with your own code on Shopify webhooks and HubSpot's CRM API. Whichever you pick, the method is the same. Store the draft order ID on the deal, save the order ID when the draft becomes an order, and use that order ID to close the deal when payment comes in.

This guide is for B2B and high-ticket stores where reps quote in Shopify. HubSpot has its own [quotes tool](https://knowledge.hubspot.com/quotes/create-and-send-quotes), which is a separate subject.

## How a Shopify draft order turns into an order

A [draft order](https://help.shopify.com/en/manual/fulfillment/managing-orders/create-orders/create-draft) is an order your team builds in the Shopify admin on the customer's behalf, with products, custom prices, discounts, shipping and tax. Shopify's [developer docs](https://shopify.dev/docs/api/admin-graphql/latest/enums/DraftOrderStatus) give every draft one of three statuses: open (no invoice sent, not paid), invoice sent, and completed, which means it has been turned into an order.

How the draft gets completed affects how you close deals.

- The customer pays the invoice. Shopify's [invoice email](https://help.shopify.com/en/manual/fulfillment/managing-orders/create-orders/send-draft) holds a checkout link, and once the customer pays, the draft becomes an order marked Paid.
- Staff accept payment in the admin, either by marking it as paid or by charging a card, which Shopify allows only with Shopify Payments.
- Staff complete it with payment terms: due on receipt, due on fulfillment, a net term of 7 to 90 days, or a fixed date. The order exists, and the money comes later.

With payment terms, the order and the payment can be weeks apart. Decide which one moves a deal to Closed won before you build anything.

Two details make matching possible. The draft order keeps the ID of the order created from it (the `order` field in the GraphQL Admin API, `order_id` in the older REST API). And Shopify [copies draft order tags to the order](https://help.shopify.com/en/manual/shopify-flow/reference/actions/add-draft-order-tags) when the order is created. Each draft also has a name like #D1223 that reps recognize.

## What HubSpot's Shopify integration syncs today

HubSpot's own app is listed as Shopify on the [App Marketplace](https://ecosystem.hubspot.com/marketplace/listing/shopify-data-sync), and the [knowledge base article](https://knowledge.hubspot.com/integrations/connect-hubspot-and-shopify-via-data-sync) calls it Shopify (Data Sync). As of October 2026 it maps these objects:

| Shopify | HubSpot | Direction |
| --- | --- | --- |
| Customers | Contacts | Two-way |
| Companies (Shopify Plus only) | Companies | Two-way |
| Products | Products | Two-way |
| Orders | Orders | Shopify to HubSpot |
| Abandoned checkouts | Carts | Shopify to HubSpot |

Draft orders are missing from that list, and so are deals. Orders go to HubSpot's [Orders object](https://knowledge.hubspot.com/orders/create-and-manage-orders), which has its own order pipeline. HubSpot's [developer blog](https://developers.hubspot.com/blog/robust-ecommerce-extensibility-how-hubspots-orders-and-carts-transform-marketing-automation) explains that ecommerce data used to sit in deals before HubSpot added Orders and Carts objects. Older guides that mention Shopify orders landing in an ecommerce deal pipeline describe that earlier setup.

## Ways to get draft orders into HubSpot as deals

### Shopify Flow

Shopify Flow is Shopify's free automation app. It has a [Draft order created](https://help.shopify.com/en/manual/shopify-flow/reference/triggers/draft-order-created) trigger, and its [Send HTTP request](https://help.shopify.com/en/manual/shopify-flow/reference/actions/send-http-request) action can call HubSpot's API to create the deal. As of October 2026 Shopify offers that action only on the Grow, Advanced and Plus plans. Flow keeps API tokens as secrets, hidden in the editor and in run logs.

Flow has no trigger for an edited draft. It does have Draft order deleted, Order paid and [Scheduled time](https://help.shopify.com/en/manual/shopify-flow/reference/triggers/scheduled-time) triggers, and the scheduled one can run as often as every 10 minutes. A scheduled workflow can use [Get draft order data](https://help.shopify.com/en/manual/shopify-flow/reference/actions/get-draft-order-data) with an `updated_at` filter to collect drafts changed since the last run, up to 100 at a time, and send the new amounts to HubSpot. The created trigger ignores drafts with no line items.

### Zapier

Zapier's [Shopify and HubSpot integration](https://zapier.com/apps/hubspot/integrations/shopify) has instant New Draft Order and Updated Draft Order triggers, and HubSpot actions to create, find and update deals. A basic setup is two Zaps. One creates a deal from each new draft. The other finds that deal by draft ID and updates the amount and stage whenever the draft changes. Shopify is a premium app on Zapier, and [premium apps need a paid Zapier plan](https://help.zapier.com/hc/en-us/articles/37982571569421-What-is-a-premium-app). Before you trust the update Zap to close deals, complete a test draft in your store and check that it fires.

### A marketplace app

Unific's [Shopify Draft Orders: Quotific](https://ecosystem.hubspot.com/marketplace/listing/shopify-quotific-cpq-unific) is on the HubSpot App Marketplace. The listing says it turns the draft orders reps create into HubSpot deals in any sales pipeline, lets reps start a draft order from a deal or contact in HubSpot, and sends Shopify invoices. [Unific's own page](https://www.unific.com/hubspot/quotific-shopify-draft-order) says the deal gets a close date once the customer pays the invoice. It is a paid subscription with pricing on the listing. Ask the vendor how it treats drafts built directly in the Shopify admin, since its pages mostly describe drafts started from HubSpot.

### Custom code

For full control, subscribe to Shopify's `draft_orders/create`, `draft_orders/update` and `draft_orders/delete` [webhook topics](https://shopify.dev/docs/api/admin-graphql/latest/enums/WebhookSubscriptionTopic), which need the `read_draft_orders` scope, plus `orders/paid`. A small service receives them and calls HubSpot's API. Create a deal property for the Shopify draft order ID and make it a [unique identifier](https://developers.hubspot.com/docs/api-reference/latest/crm/properties/guide) (HubSpot allows up to ten per object). HubSpot's [batch upsert endpoint](https://developers.hubspot.com/docs/api-reference/latest/crm/using-object-apis) can then create or update the deal by that ID in one call. This helps because Shopify says your app [might receive the same webhook more than once](https://shopify.dev/docs/apps/build/webhooks/verify-deliveries), and it recommends a reconciliation job that fetches anything you missed. For HubSpot access, use an app installed in your own account (static auth on HubSpot's new platform, or a [legacy private app](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview)).

## Closing the right deal when the quote is paid

The matching logic decides whether your pipeline numbers can be trusted. Set it up in this order:

1. When a draft is created, create the deal with the draft order ID in a unique property, plus the draft name so reps can find it in Shopify.
2. When the draft is completed, read the order ID from the draft and write it to the deal. If you use payment terms, move the deal to an “Order created, awaiting payment” stage.
3. When Shopify reports the order as paid (the Order paid trigger in Flow, or the `orders/paid` webhook), search for the deal holding that order ID and move it to Closed won. Update the amount from the order, since the draft may have changed since the deal was created.
4. Associate the order record from HubSpot's native sync with the deal. HubSpot's [Orders API](https://developers.hubspot.com/docs/api-reference/latest/crm/objects/orders/guide) supports order-to-deal associations.

### Avoiding a duplicate deal

HubSpot's own Shopify app won't make a second deal, because it writes orders to the Orders object. Duplicates come from a second rule, such as a Zap or workflow that creates a deal for every new or paid Shopify order. A completed draft is a normal Shopify order, so that rule makes a second deal for the same sale. Two checks prevent it. Before creating a deal from an order, search for a deal that already holds that order ID. And tag drafts when they are created, using Flow's Add draft order tags action, which works only in workflows that start with Draft order created. Because the tag carries over to the order, the order rule can skip anything that has it.

### Duplicated, deleted and stale quotes

Shopify lets reps duplicate a draft, which creates a new draft and a second open deal for the same buyer. When one is paid, the other isn't a lost sale, so give it its own stage outside Closed lost. Do the same for drafts that are deleted or left unpaid too long, or your close rate will count quotes nobody was choosing between.

## Reporting quote-to-revenue in HubSpot

Once every draft is a deal, HubSpot's normal deal reports work on your quotes. A quote pipeline might use these stages.

1. Quote drafted (draft open)
2. Invoice sent
3. Order created, awaiting payment
4. Closed won (paid)
5. Closed lost
6. Superseded (a duplicate replaced by another quote)

HubSpot's [sales analytics tools](https://knowledge.hubspot.com/reports/create-sales-reports-in-the-sales-analytics-suite) include Deal funnel, Deals won and lost, Deal loss reasons and Time spent in deal stage reports. On Professional and Enterprise subscriptions, HubSpot also keeps [stage properties](https://knowledge.hubspot.com/properties/stage-calculated-properties) on each deal, such as the date it entered each stage and its cumulative time there. They show how long quotes wait at Invoice sent. Leave Superseded and expired deals out of close rate reports.

Deals now hold rep-built quotes, while the Orders object holds every Shopify order, web checkouts included. If you want web orders in the deal pipeline too, create those deals only from orders without the quote tag.

## How I built this for Sauna Heater Supply

Sauna Heater Supply sells high-ticket sauna equipment on Shopify, and more than 80% of their orders start as draft orders built by reps. HubSpot couldn't see any of those quotes, and the build had to stay on Sales Hub and Service Hub Professional.

I used Shopify Flow. It creates a HubSpot deal for every draft order, syncs quote amounts every 10 minutes and closes the right deal when the order is paid. Duplicate quotes move to a Superseded stage, so they don't count as lost. I rebuilt the customer sync in Flow to replace a third-party connector and added a daily catch-up job for missed quotes. Trade partner tags mark each buyer as B2B or DTC, and abandoned checkouts land as deals too. Later, carts with no order after 21 days started moving to an Abandoned - Expired stage, kept apart from Closed Lost. The details are in the [Sauna Heater Supply case study](https://www.crmwired.com/case-studies/sauna-heater-supply?hsLang=en).

Cancellations and refunds need the same care. For [BelBonita](https://www.crmwired.com/case-studies/belbonita?hsLang=en), which sells wholesale to stylists through Shopify, I built six Flow automations covering orders, customers, abandoned checkouts, cancellations and refunds. Their native Shopify connector had been disconnected before that work.

If you'd rather have this built for you, see my [Shopify and HubSpot integration service](https://www.crmwired.com/hubspot-shopify-integration?hsLang=en).

## Questions

### Does HubSpot's Shopify integration sync draft orders?

No. It syncs customers, companies, products, orders and abandoned checkouts. A draft only reaches HubSpot once it becomes an order, and then as an order record.

### Can Zapier send Shopify draft orders to HubSpot as deals?

Yes. Zapier's Shopify app has New Draft Order and Updated Draft Order triggers, and its HubSpot app can create, find and update deals. Shopify is a premium app on Zapier, so you need a paid plan.

### Will a paid draft order create a duplicate deal?

Not through HubSpot's own Shopify app, which writes orders to the Orders object. It can if another Zap or workflow makes deals from Shopify orders, so check for a deal with that order ID before creating one.

### Do I need Shopify Plus?

Not for the methods here. As of October 2026, Flow runs on the Basic, Grow, Advanced and Plus plans, and its Send HTTP request action needs Grow or higher. HubSpot's app needs Plus only for company sync.

### Do I need HubSpot Enterprise?

No. The Sauna Heater Supply build runs on Sales Hub and Service Hub Professional, with no Enterprise upgrade.

HubSpot help centre

Fixes for problems this guide covers

- [Shopify integration not syncing](https://help.crmwired.com/integrations/hubspot-shopify-integration-not-syncing/)
- [Deals not showing in the pipeline board](https://help.crmwired.com/deals-and-reports/hubspot-deals-not-showing-in-pipeline/)
- [Closed won revenue looks wrong](https://help.crmwired.com/deals-and-reports/hubspot-won-revenue-wrong/)
- [Zapier trigger from HubSpot not firing or delayed](https://help.crmwired.com/integrations/zapier-hubspot-trigger-not-working/)
- [Deal amount doesn't match its line items](https://help.crmwired.com/deals-and-reports/hubspot-deal-amount-not-updating/)
- [Workflow webhook action failing](https://help.crmwired.com/workflows/hubspot-workflow-webhook-failing/)

[Browse all HubSpot fixes](https://help.crmwired.com/)

**Written by Abdur Rahim Mostafa.** I'm an independent HubSpot consultant with 12 years of HubSpot work. I build integrations, automation and AI agents in HubSpot for teams in the US, UK and Australia. [See my case studies](https://www.crmwired.com/case-studies?hsLang=en) or [find me on LinkedIn](https://www.linkedin.com/in/abdur-rahim-mostafa-302157137/).

On this page

Free 30-minute call

Want this done for you?

Tell me what you need in HubSpot. You'll get a written scope and one fixed price.

[Book a free call](https://www.crmwired.com/contact?hsLang=en)

## More guides

## [Guide HubSpot audit checklist: what to check in your portal and what to fix A HubSpot portal audit you can run yourself, area by area, with where HubSpot shows each problem and what real client audits found. Read the guide →](https://www.crmwired.com/guides/hubspot-audit-checklist?hsLang=en)

## [Guide HubSpot NetSuite integration: the native app, connectors or custom code What HubSpot's NetSuite app syncs, how connectors, iPaaS and custom SuiteScript compare, and what to map before you connect the two systems. Read the guide →](https://www.crmwired.com/guides/hubspot-netsuite-integration-options?hsLang=en)

## [Guide How to connect ServiceTrade and HubSpot so field jobs move your deals Connect ServiceTrade to HubSpot with Zapier or the API, match jobs to deals on the service request ID, and keep won revenue accurate. Read the guide →](https://www.crmwired.com/guides/servicetrade-hubspot-integration?hsLang=en)

## [Guide How to set up HubSpot's customer agent (and what to prepare first) What HubSpot's customer agent needs, which channels it answers on, how to set it up and test it, and what to prepare before it goes live. Read the guide →](https://www.crmwired.com/guides/hubspot-customer-agent-setup?hsLang=en)

## Need help with your HubSpot portal?

Book a free 30-minute call. You'll get a written scope and one fixed price.

[Book a free 30-minute call](https://www.crmwired.com/contact?hsLang=en)Microsoft Teams · times shown in your time zone

<https://www.crmwired.com/?hsLang=en>

HubSpot setup, automation and integrations. Calls early morning to mid-afternoon US Eastern.

[Book a free call](https://www.crmwired.com/contact?hsLang=en)

### Services

- [NetSuite + HubSpot](https://www.crmwired.com/hubspot-netsuite-integration?hsLang=en)
- [ServiceTrade + HubSpot](https://www.crmwired.com/hubspot-servicetrade-integration?hsLang=en)
- [Shopify + HubSpot](https://www.crmwired.com/hubspot-shopify-integration?hsLang=en)
- [Zapier + HubSpot](https://www.crmwired.com/zapier-hubspot?hsLang=en)
- [AI agents and Help Desk](https://www.crmwired.com/hubspot-ai-agent?hsLang=en)
- [HubSpot audit and cleanup](https://www.crmwired.com/hubspot-audit?hsLang=en)

### Company

- [Case studies](https://www.crmwired.com/case-studies?hsLang=en)
- [Guides](https://www.crmwired.com/guides?hsLang=en)
- [Help centre](https://help.crmwired.com/)
- [About](https://www.crmwired.com/#about)
- [Pricing](https://www.crmwired.com/#pricing)
- [Book a call](https://www.crmwired.com/contact?hsLang=en)
- [Privacy policy](https://www.crmwired.com/privacy?hsLang=en)
- [Terms of service](https://www.crmwired.com/terms?hsLang=en)
- [Refund policy](https://www.crmwired.com/refund-policy?hsLang=en)

### Contact

- [abdur@crmwired.com](mailto:abdur@crmwired.com)
- [LinkedIn: CRM Wired](https://www.linkedin.com/company/crmwired)
- [LinkedIn: Abdur Rahim Mostafa](https://www.linkedin.com/in/abdur-rahim-mostafa-302157137/)

© 2026 CRM Wired LLCHubSpot is a registered trademark of HubSpot, Inc. CRM Wired is an independent consultancy.

[Book a free 30-minute call](https://www.crmwired.com/contact?hsLang=en)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://www.crmwired.com/",
    "name" : "Home",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://www.crmwired.com/guides",
    "name" : "Guides",
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : "https://www.crmwired.com/guides/shopify-draft-orders-hubspot-deals",
    "name" : "Shopify draft orders to HubSpot deals: how to track quotes to revenue",
    "position" : 3
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "Article",
  "author" : {
    "@type" : "Person",
    "jobTitle" : "HubSpot consultant",
    "name" : "Abdur Rahim Mostafa",
    "sameAs" : [ "https://www.linkedin.com/in/abdur-rahim-mostafa-302157137/" ],
    "url" : "https://www.crmwired.com/"
  },
  "dateModified" : "2026-10-25",
  "datePublished" : "2026-10-25",
  "description" : "HubSpot's Shopify app doesn't sync draft orders. How to turn Shopify quotes into HubSpot deals with Flow, Zapier or code, and close the right deal on payment.",
  "headline" : "Shopify draft orders to HubSpot deals: how to track quotes to revenue",
  "image" : "https://247714910.fs1.hubspotusercontent-na2.net/hubfs/247714910/crmwired-site/guide-shopify-draft-orders-hubspot-deals-og.jpeg",
  "inLanguage" : "en",
  "mainEntityOfPage" : {
    "@id" : "https://www.crmwired.com/guides/shopify-draft-orders-hubspot-deals",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://247714910.fs1.hubspotusercontent-na2.net/hubfs/247714910/crmwired-site/apple-touch-icon.png"
    },
    "name" : "CRM Wired",
    "url" : "https://www.crmwired.com/"
  },
  "url" : "https://www.crmwired.com/guides/shopify-draft-orders-hubspot-deals"
}
```