Unlimited Line Items: Automatically create Invoices and Offers with GDocs, Notion and Make.com with unlimited line items
Learn how to automate the creation of invoices and offers using GDocs, Notion, and Make.com, allowing for unlimited line items without the hassle of traditional table formatting. This guide walks you through organizing your data, setting up templates, and creating a streamlined workflow to enhance your invoicing process.
If you found this article, chances are you are looking for a way to automate the creation of invoices (and also offers). And if you looked around a bit, you might have found a technique doing this with Make.com that creates a Google Doc from a template.
However, I found myself struggling to find a solution to create an unlimited amount of line items in the invoice templates. Often times, the proposed solution is to create a table inside the Google Doc and filling each cell with placeholders like this:
Item | Price per Item | Number of items | Total sum |
{{Name Item 1}} | {{Price per Item 1}} | {{Number of Items 1}} | {{Sum Item 1}} |
{{Name Item 2}} | {{Price per Item 2}} | {{Number of Items 2}} | {{Sum Item 2}} |
{{Name Item 3}} | {{Price per Item 3}} | {{Number of Items 3}} | {{Sum Item 3}} |
{{Name Item 4}} | {{Price per Item 4}} | {{Number of Items 4}} | {{Sum Item 4}} |
{{Name Item 5}} | {{Price per Item 5}} | {{Number of Items 5}} | {{Sum Item 5}} |
You can quickly see, where this technique gets frustrating:
- The maximum number of line items is limited to 5 and
- If you have less than 5 line items, the template will leave you with placeholders or empty cells in the table.
After scrambling a bit, I found the solution to this problem. Spoiler alert: There are no tables involved.
For the sake of this article I will first explain,
- how to organize your invoice data in Notion
- how to hand it over to Make.com
- how to use an Invoice template in Google Docs and
- The secret sauce that enables unlimited line items for your invoice.
If you want to follow along or take a shortcut, here are the templates and blueprints for you:
Also if you feel like watching instead of reading, I’ve created a YouTube video as well:

1 Organizing your invoice data in Notion
To keep it simple, for the sake of this tutorial I’ll use only two databases:
- An Invoices Database, that stores data like the invoice number, customer, address and contact person.
- A line items database that is related to the invoices database, and that holds information about the item name, price per item, number of items purchased and a formula that calculates the total sum of the line item.
In a more elaborate setup, you would probably keep separate linked databases for your customers, contact persons and maybe a product list, like shown in the Database Structure below.
With this in mind, I created the following databases for invoices and line items and linked them That should serve the purpose of this tutorial.
I also created this neat little template for invoices, that links to the line items database and makes it easier to enter line items and view them afterwards.
Now with this set up explained, let’s jump into Google Docs to configure the invoice template.
2 Setting up the Invoice Template in Google Docs
Many of you will already know that you can configure a Google Doc to work as a template with Make.com and presumably other automation tools. For those who don’t: in order for the Google Doc to function as a template, you can define variables by putting text in double curly brackets like this:
{{contact person}}
Any variable marked with this convention will show up in Make’s module as an input field. Here is a screenshot of the invoice template I set up.
Now, if you have been struggling with tables to create line items for the reasons above, here is the main differentiator in my technique. Instead using a table, set up a single variable for line items. I marked it like this:
{{line items}}
The line items will be simple text instead of a table. For each line item, we’ll use
- the item name
- the price per item
- the cuantity of items and
- the total amount.
Each of these will be delimited by a tap (which we’ll set up in Make below). For now, what you should know is, that you can order the fields of the line items by using tabstops. For the item name, I used a left tabstop, for the other fields right tabstops as can be seen in the image below.
I also formatted the line with {{line items}} with a light border at the bottom, so the final invoice will appear more like a table.
With the template ready, we can now move to Make to configure our scenario.
3 Make.com workflow to automatically create invoices from Notion Data with unlimited line items
The scenario we are creating is pretty straight forward and will only use a couple of modules
It will start with a custom webhook module in Make, that we are triggering from Notion. To do that, I added a button to the Invoice database. Moreover, we are going to need a URL property to store the link to the Goggle Doc. I’ve also created a URL property to store a link to export the Invoice as a PDF.
Copy the address of the custom webhook module from Make and start configuring the button. The only action we need to add is “Send webhook”. Paste the URL and make sure to select all existing properties to be send to the webhook as content.
Let Make.com determine the data structure of the webhook by triggering it with your first data set from Notion.
After the data structure is determined, run the module alone one more time, so Make.com can pick up a sample set of data. That will make setting up later modules much easier.
Now, in order to run through all line items linked to the invoice, we need an Iterator module. Configure it so that it picks up on the line items relation.
Next use the Notion module “Get a Database Item”, to grab all the information we need from the individual line items. The iterator module is providing us with the Database Item ID.
To order and format the data from the line items, I’m using a “Set multiple variables” module. Here you can transform number and date formats to your liking in a central place.
Next we are formatting those variables into a single line of text using a text aggregator. Select the previous module as a source module. Using tab-keywords from Make, we are able to transform the text in a format, that is compatible with our Google Doc template.
The result is multiple instances of single lines of text, with data from the line items separated with tabs. We ‘ll have to use another aggregator, to create a single block of text out of all line items. For this, use a Table Aggregator. Select the Iterator as a source module, and pick the text from the previous module as Aggregated fields. Use “New row” as row seperator and leave the column separator blank.
To create the Google Doc, use the “Create a Document from a Template” module, connect your Google account and locate the template you configured. After some loading, the module will present you with all the variables defined by the curly brackets.
In our example flow, most data is provided by the webhook directly. For the “line items” variable use the text created from the table aggregator.
Finally, we want to link back the freshly created Google Doc back to Notion. Select the Web View Link from the G Doc module. This way you can check and modify your invoice, before sending it out. Additionally, the Google Doc module also outputs a link, that will directly convert the Google Doc into a PDF. Store this link in a seperate Notion property, if you are so inclined.
4 Test, refine and extend
If everything runs smoothly, your workflow for creating invoices should look something like this:
The result is an invoice document with as many or as little line items as you want. Here is the finished document of Invoice 1.
The purpose of this tutorial was mainly to show off the line item hack. Of course, you can refine and extend the invoice creation process way beyond the scope of this tutorial. You could for example:
- use the same process to create offers and trigger the invoice creation from accepted offers
- link Company and Contact persons databases
- create a product list and feed your line items directly from there
- let customers order online and automatically send out an invoice
- include payment conditions
and many more things.
As usual, if this tutorial was helpful for you, please subscribe on Substack and Youtube. If you wanna work directly with me, get in touch.
Thank you for reading! If you found this guide helpful in streamlining your invoice workflow, I'd love to hear from you. You can find more automation tutorials and tips by subscribing to my Substack newsletter or checking out my YouTube channel. For personalized consulting or workflow optimization, feel free to reach out directly.
Happy automating!
Ready to step up your Notion game and automate your workflows?
If you want to push your business forward without burying yourself in repetitive tasks, let’s talk. I’ll help you create custom Notion environments and powerful automations—so you can focus on what matters most.
Ready to step up your Notion game and automate your workflows?
If you want to push your business forward without burying yourself in repetitive tasks, let’s talk. I’ll help you create custom Notion environments and powerful automations—so you can focus on what matters most.
Ready to step up your Notion game and automate your workflows?
If you want to push your business forward without burying yourself in repetitive tasks, let’s talk. I’ll help you create custom Notion environments and powerful automations—so you can focus on what matters most.
Ready to step up your Notion game and automate your workflows?
If you want to push your business forward without burying yourself in repetitive tasks, let’s talk. I’ll help you create custom Notion environments and powerful automations—so you can focus on what matters most.