How it works

Follow these 8 simple 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.

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.

Frequently asked questions

What happens if I edit a draft order after the estimate is created?
The workflow only runs when a draft order is first created. If you edit the draft order afterward, you'll need to manually update the QuickBooks estimate or run the workflow again. Consider adding a "Draft Order Updated" trigger if you need automatic estimate updates.
Can this workflow handle multiple currencies?
Yes, the workflow automatically passes the currency code from Shopify ({{shopify.currency}}) to the QuickBooks estimate. However, the currency must be enabled in your QuickBooks company settings for the estimate to be created successfully.
What if my draft order has more line items than QuickBooks can handle?
QuickBooks estimates have no practical limit on line items for most users. The workflow uses array mapping ({{shopify.line_items[]}}) to automatically create a separate line item for each product in the draft order, regardless of quantity.
What is a template?
Templates are pre-made workflows by our team of experts. Instead of building a workflow from scratch, these have all the steps needed to complete the task.
Can I personalize a template?
Yes! Every step can be customized to meet your exact requirements. Additionally, you can even add more steps and make it more sophisticated.
Are templates free?
Yes! Our entire library containing hundreds of templates are free to use and customize to your exact needs.

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

Join thousands who've automated their work and saved an average of 3.5 hours every week.

Start with this template — It's free
7-day free trial • 10 min setup • Cancel anytime