How to automate invoices with QuickBooks Online and Zapier

Business tutorials and tips.

This article was provided by Zapier.

There seems to be an unfair connection between success and paperwork—the more sales you make, the more invoices you have to fill out!

While QuickBooks Online and apps like it help take some of the pain out of the process, manually filling out and processing each invoice is unavoidably time-consuming. By adding some automation to the mix, we can give that time back to you.

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.

You’ll need a Zapier account to use the workflows in this piece. If you don’t have an account yet, it’s free to get started.

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.

Zapier is a tool that helps you automate tasks between web apps. Our automatic workflows—which we call Zaps—send information from one app to another so you can stop worrying about copying and pasting and focus on more meaningful work. Check out this Zapier demo to learn more about how it works.

Before you start

Log into QuickBooks Online and confirm there’s at least one “Product” or “Service” in the Sales tab. 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.

For our example, we’ll be using Shopify to get information about new orders, but the steps will work with most of the thousands of eCommerce or payment processing apps that integrate with Zapier.

You’ll need to set up a Zapier account if you haven’t already. Because QuickBooks Online is a Premium app, you’ll also want to upgrade to a paid Zapier plan to use these Zaps long-term. Want to try it out before upgrading? New accounts get a free 14-day trial!

Setting up the trigger

For this example I’ve gone with the Shopify “New Order” trigger, because that’s where I’m selling the products that I want to create invoices for.

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 we’re getting that information, remember to select Test trigger, and review the sample data it provides.

New Trigger set-up page: 1. New Paid Order (Beta) in Shopify

Before moving onto the for you in future 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

Using the + button in the Zap editor, add the QuickBooks Online action called “Find Customer”.

Action set-up: 2. Find or Create Customer in QuickBooks Online

Select Continue, and you’ll be prompted to connect your QuickBooks Online account. Following the prompts, log into QuickBooks Online, and select Continue again to move on to the customization step.

Because QuickBooks Online requires that all invoices are 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 or Email in the Search Field. This is the method we’ll use to search for existing customers. You can pick either one, but I recommend using “Email” first, as it tends to be more unique.

Set up action: Search field: Name or Email

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.

Action set-up: Find Customer in QuickBooks Online: Search value: Email

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.

Set up action: (checked checkbox) Create Quickbooks Online Customer if it doesn't exist yet?

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 Set Up Action step.

Action set-up: 3. Create Invoice in QuickBooks Online

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:

Customer: Custom: ID

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.

Set up: Line items

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.

Product/Service: Choose value: Pizza - Large

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, but because we’re only selling one product for now, we can manually type that number in.

Amount: 30. Tax: Choose value...

Note that QuickBooks Online also gives you a Tax field just below in the feedback section, 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.

Invoice output for Pizza-Large with $30.00 balance due

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.

(+) button between set-up steps 2 and 3.

“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.

Line items: Product name: Line items name

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.

Product/Service: Custom: Product ID

The “Custom” option lets you dynamically map values where you’d otherwise have to select just one. Learn more about how to use it effectively.

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:

Completed list item set-up section

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

Invoice output with two items for black shoes. $0.00 balance due. "PAID" stamp.

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.

I hope that you found the above useful or interesting. You can find similar content on our blog:

Please let me have your re-action below in the feedback section in the feedback section.

Let us know what topics we should cover for you in future.