Generate QuickBooks Estimate from Shopify Draft Order

10 min setup
No coding required
Runs automatically

Keep your sales and accounting in sync with ease. With this workflow template, every time a draft order is created in Shopify, a matching estimate is automatically created in QuickBooks using the order details. No more copying information by hand or worrying about mistakes—your team gets a clear, accurate estimate immediately. This saves time, keeps everyone on the same page, and helps you move smoothly from order to invoice.

Shopify logo icon
Draft Order Created
Retrieve Customer
Query Customer
Path 1 Rule - Has Existing Customer
Create or Update Estimate
Path 2 Rule - No Existing Customer
Create Customer
quickbooks logo icon
Create or Update Estimate

You're in good company

"MESA has been a game changer for us. And, if you ever get stuck, their support team is always super helpful."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
PetFriendly

"It's like Zapier but exactly designed for Shopify. I have been able to complete all the workflows that I've needed."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Zailys

"The MESA team has been amazing at helping us set up our automations. We would highly recommend this app!"

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Rothy's

How it works

8 steps to get automatic QuickBooks estimates from your Shopify draft orders

Shopify logo icon

Draft Order Created

App connector: Shopify • Time to complete: 0 minutes (Auto-configured)
Why this matters: This trigger captures every draft order the moment it's created in Shopify, ensuring no potential sale goes untracked in your accounting system.

When a draft order is created in Shopify, this trigger activates the workflow and captures the complete draft order object including {{shopify.customer.id}}, {{shopify.email}}, {{shopify.line_items}}, {{shopify.currency}}, and {{shopify.total_tax}}. The workflow runs for every draft order created in your store.

Retrieve Customer

App connector: Shopify • Time to complete: 0 minutes (Auto-configured)
Why this matters: Pulls the customer profile from Shopify to ensure you have all customer details (including notes and full contact information) needed for QuickBooks records, not just the limited data included in the draft order.

This step retrieves the full customer record from Shopify using {{shopify.customer.id}} from the trigger. It fetches additional customer details like {{shopify_1.note}} that aren't included in the draft order but are useful for creating comprehensive customer records in QuickBooks.

Query Customer

App connector: QuickBooks • Time to complete: 0 minutes (Auto-configured)
Why this matters: Prevents duplicate customer records in QuickBooks by checking if the customer already exists before attempting to create a new one.

This step searches your QuickBooks company for an existing customer record using the email address from the draft order ({{shopify.email}}). It executes the SQL-like query "SELECT * FROM Customer WHERE PrimaryEmailAddr = '{{shopify.email}}'" and returns the customer's QuickBooks ID as {{quickbooks.0.Id}} if a match is found, or returns empty if no match exists. This query result determines which path the workflow follows next.

Path 1 Rule - Has Existing Customer

App connector: Paths • Time to complete: 0 minutes (Auto-configured)
Why this matters: When a customer already exists in QuickBooks, this path creates the estimate immediately using their existing record, saving time and maintaining data consistency.

This conditional path executes when {{quickbooks.0.Id}} is not empty, meaning a matching customer was found in QuickBooks. The workflow evaluates this condition and proceeds to create an estimate using the existing customer ID without creating a duplicate customer record. If this condition is true, the workflow jumps directly to creating the estimate.

Create or Update Estimate

App connector: QuickBooks • Time to complete: 2 minutes
Why this matters: Generates the QuickBooks estimate using the existing customer record, ensuring the estimate links properly to their account history and customer profile.

This step creates an estimate in QuickBooks when a customer already exists. It uses {{quickbooks.0.Id}} for the CustomerRef value and maps each item from {{shopify.line_items[]}} into QuickBooks Line items with {{shopify.line_items[].price}} as Amount and UnitPrice, {{shopify.line_items[].quantity}} as Qty and LineNum, and {{shopify.line_items[].name}} as Description. The estimate also includes {{shopify.currency}} for CurrencyRef and {{shopify.total_tax}} for TotalTax, creating a complete estimate that matches the draft order exactly.

Path 2 Rule - No Existing Customer

App connector: Paths • Time to complete: 0 minutes (Auto-configured)
Why this matters: When no matching customer exists in QuickBooks, this path ensures a customer profile is created first before generating the estimate, maintaining proper accounting relationships.

This conditional path executes when {{quickbooks.0.Id}} is empty, meaning no matching customer was found in the QuickBooks query. The workflow evaluates this condition and proceeds to create both a new customer record and then an estimate for that customer. If this condition is true, the workflow creates the customer before generating the estimate.

Create Customer

App connector: QuickBooks • Time to complete: 2 minutes
Why this matters: Establishes a complete customer profile in QuickBooks with all relevant contact and billing information before creating the estimate, ensuring proper record-keeping and future invoice generation.

This step creates a new customer in QuickBooks using data from Shopify. It sets DisplayName to "{{shopify.customer.first_name}} {{shopify.customer.last_name}}", PrimaryEmailAddr to {{shopify.email}}, Notes to {{shopify_1.note}}, and PrimaryPhone to {{shopify.customer.phone}}. The BillAddr includes {{shopify.billing_address.address1}}, {{shopify.billing_address.city}}, {{shopify.billing_address.country}}, {{shopify.billing_address.country_code}}, and {{shopify.billing_address.zip}}. The newly created customer ID is returned as {{quickbooks_2.Customer.Id}} for use in the next step.

quickbooks logo icon

Create or Update Estimate

App connector: QuickBooks • Time to complete: 1 minute
Why this matters: Generates the QuickBooks estimate linked to the newly created customer record, completing the full automation cycle from draft order to estimate for first-time customers.

This step creates an estimate in QuickBooks for the newly created customer. It uses {{quickbooks_2.Customer.Id}} for the CustomerRef value and maps each item from {{shopify.line_items[]}} into QuickBooks Line items with {{shopify.line_items[].price}} as Amount and UnitPrice, {{shopify.line_items[].quantity}} as Qty and LineNum, and {{shopify.line_items[].name}} as Description. The estimate includes {{shopify.currency}} for CurrencyRef and {{shopify.total_tax}} for TotalTax, creating a complete estimate that matches the draft order.

Ready to set this up? It only takes 10 minutes.

Our support team will even help you personalize this workflow for free.

Get started →

Make it your own!

Customize this workflow even further:

Add estimate notes or custom fields
Include order notes, draft order tags, or custom fields from Shopify in the estimate memo field to provide additional context for your sales team.
Send notification emails when estimates are created
Connect an email step after estimate creation to notify your sales team or automatically send the estimate to the customer for review.
Apply discounts or shipping costs
Add additional line items to the estimate for shipping charges from the draft order or apply discount codes that were used, ensuring the estimate reflects the complete pricing structure.
Tag customers in QuickBooks by order value
Use conditional logic to apply customer tags or categories in QuickBooks based on the draft order total, helping segment high-value prospects from standard quotes.

Common questions

What happens if I edit a draft order after the estimate is created?

Can this workflow handle multiple currencies?

What if my draft order has more line items than QuickBooks can handle?

Ready to get automatic QuickBooks estimates from your Shopify draft orders?

7-day free trial • 10 min setup • Cancel anytime

Need help? Our automation experts will help you personalize this workflow for free. Contact support