---
title: "How to automate invoices with QuickBooks Online and Zapier"
description: "With just one Zap—our term for Zapier's automated workflows—you can take orders from apps like Shopify and Stripe and automatically turn them into invoices in QuickBooks Online."
image: "https://images.ctfassets.net/lzny33ho1g45/5D0GVQi2pOmh7AoBS2T4N8/ffbb306f901f1af2f700b4162cd738da/Group_12403.jpg"
---

# How to automate invoices with QuickBooks Online and Zapier

With just one Zap—our term for Zapier's automated workflows—you can take orders from apps like Shopify and Stripe and automatically turn them into invoices in QuickBooks Online.

Businesses of all sizes use [QuickBooks Online](https://zapier.com/apps/quickbooks/integrations) to send invoices, accept payments on them, and reconcile financial records for easier accounting. But if you sell through eCommerce platforms like Shopify or Stripe, you need to account for those sales in QuickBooks, too.  

Even if you use templates, creating each invoice manually can be a huge drain on your time—and it's easy to fall behind on or forget to log some sales. Not only will your accounting records be incomplete, but if you rely on QuickBooks invoices to get paid for orders made through other apps, you risk not getting paid on time. Instead, you can streamline your invoicing process by adding automation to the mix. Here's how to set up a Zap—what we call our automated workflows—that turns orders from your online store into invoices in [QuickBooks Online](https://zapier.com/blog/quickbooks-online-vs-desktop).

**Here are the steps involved:**

1. Make sure QuickBooks Online is properly configured.
2. Connect the app that your sales come from and customize your trigger.
3. Connect your QuickBooks Online account and customize the "Find Customer" action.
4. Customize the "Create Invoice" action.
5. **Optional: **If you're creating an invoice with multiple items, add a "Find Product(s)" action to the Zap.
6. Test your Zap and turn it on.

## Before you start

Log in to QuickBooks Online and [confirm there's at least one "Product" or "Service" in the Sales tab](https://quickbooks.intuit.com/learn-support/getting-started-with-quickbooks/adding-products-and-services-customers-and-vendors-to-lists/ta-p/170836). To make things easier for you down the road, we recommend your products have the same names in all the apps you use, if possible.

We'll be using Shopify to get information about new orders, but the steps will work with most of the [eCommerce](https://zapier.com/apps/categories/ecommerce) or [payment processing](https://zapier.com/apps/categories/payment-processing) apps that integrate with Zapier. 

## Setting up the trigger

For this example, we've used the Shopify "New Order" trigger.

These steps will work for most of the apps that integrate with Zapier, so long as they provide information about your products. To make sure Zapier is getting that information, click **Sign in** to authorize your eCommerce app. Then, click **Continue **and **Test trigger**, and review the sample data it provides.

Before moving onto the next step, make sure that the sample data includes:

- The name of the product that was sold
- The customer's name
- The customer's email address

Once you've got those, you're ready to move on. 

## Customize the "Find Customer" action

In the next step in the Zap editor, add the QuickBooks Online **Find Customer** action.

You'll then be prompted to connect your QuickBooks Online account. Select **Continue** to move on to the customization step.

Because all invoices in QuickBooks Online must be tied to a Customer, we're going to use this action to either find an existing Customer in QuickBooks Online or create a new one.

First, select either **Name**,** Email**, or **ID **in the _Search Field_. This is the method we'll use to search for existing customers. You can pick any option, but I recommend using "Email" first, as it tends to be present in eCommerce transactions while being more unique than a name.

Then, map a corresponding value into the _Search Value_ field. For this example I've picked **Email**, so I'll use the customer's email address.

That way, it will search for a customer in QuickBooks that matches the email address we received from the trigger. 

If it's possible that QuickBooks Online won't be able to find a match (for example, if you're selling to brand new customers), you can check the **Create QuickBooks Online Customer if it doesn't exist yet **option, and fill in the fields that appear. That will allow the action to create a brand new Customer record for your brand new customer.

Once all of the required fields are filled in, select **Continue** and test the action. It should either find a customer in QuickBooks Online's records, or create a new one for you using the sample data. 

## Create an invoice with one item

It's finally time to create the invoice. Use the **+** button to add the QuickBooks Online "Create Invoice" action to the Zap, and select the QuickBooks account that you connected in the previous step. Select **Continue** and head to the _Configure _step.

The first thing you might notice is that there are a _lot_ of empty fields. Luckily, most of them are optional, and are used to make sure that the invoice has all of the information you want. For now, we're going to focus on the fields that are marked _Required_, and the fields in the section titled _Line items_. 

The first required field is **Customer**, where we'll use the **Custom **option to select the ID of the customer we found or created in the last step:

Select the customer ID to map it into the Customer field.

Using the **Custom** option lets that value update dynamically each time the Zap runs, so even though we're seeing just one customer's information right now, that will change each time the Zap is triggered. 

Next, let's scroll down to the section labeled _Line Items_, which is where we'll define the lines that will be added to the final invoice.

By default, this action is set up to add one line at a time, making it a great solution for single-item stores, online courses, or limited-time runs for specific products. If you're looking to create invoices that might have multiple lines, you'll need to add one more step (described later in this article).

To have the Zap add information about a single product, go to the _Product/Service _field, and select that product from the list that appears.

The other required field here is **Amount**, which we'll fill in with the price of the item. You can use a value provided by the trigger here, or you can manually type that number in if you only have one option.

Note that QuickBooks Online also gives you a Tax field just below, so the Amount should not include taxes. If you charge taxes, you can select the tax type from that dropdown menu. 

And that's it for required fields! We can select **Continue** now and test the action, and we'll get a pretty simple invoice as a result.

Once you've tested it once, I recommend going back through the optional fields and filling in anything that sounds like it might be something you want. This is different for everybody, so you may want to test it a few times before finding the right mix. 

## Create an invoice with multiple items

If you're expecting orders with multiple items, or if your store has many different items to choose from, the above example falls a little short.

To start dynamically telling QuickBooks Online which products (plural) to use in the invoice, we'll want to add a new action for QuickBooks called "Find Product(s)". We can use the **+** button between the two existing actions to add it there.

"Find Product(s)" lets us search for multiple products within QuickBooks Online's system. In return, it will tell us what information QuickBooks Online has on file for each of the products sold, including their unique ID numbers, which are the secret ingredient to creating invoices with multiple line items. 

When you add "Find Product(s)" to the Zap, you'll be prompted to select your QuickBooks Online account again, and then enter the **Product Name** that you want to search for. In that field, select the product names provided by your Zap's trigger.

The search will then find the corresponding product in QuickBooks Online for each of the items provided by the trigger. Because the action is searching specifically for the product name, we highly recommend making sure that your products have the same names across all of your apps. 

Once you have tested the "Find Product(s)" action, head back to "Create Invoice" and go to the "Product/Service" field. Instead of selecting just one item, now we're going to use the **Custom** option instead, and pick the **Products ID** provided by that new "Find Product(s)" action.

We use the ID number there, instead of the product's name, so that QuickBooks Online can accurately determine which product it needs to add to the invoice. Now that we have that set up, QuickBooks Online can add a new line for _each_ of the products found by "Find Product(s)". 

At this point, you can also fill in the rest of the _Line Items_ section with other information you have about what was sold, such as quantities, discounts, or descriptions. Here's what that section might look like in the end:

When we test the action again, the invoice will now have multiple lines, matching the details of the original order.

Now you have a Zap that automatically creates complex invoices, without you having to lift a finger! 

## Start automating your invoices

Ready to try it for yourself? Get a head start by using one of our Zap templates, which come with some fields pre-selected, then follow the steps above to customize it for your business.

_This article was originally published in January 2021. It was most recently updated in November 2024 by Nicole Replogle._