# Invoices from Your Inbox to Google Sheets, with Approval

> Read vendor invoice PDFs from Gmail with AI, log them in Google Sheets and send anything over $1,000 for approval. Free step-by-step n8n lesson.

Source: https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n · Updated 2026-10-10 · Free from Stepthrough (https://learn.ynteractive.com)

## Practice it step by step

[Start the free practice](https://learn.ynteractive.com/modules/invoice-inbox-approval)

You do every step yourself in a practice copy of n8n. It checks your work as you go, and “Do it for me” finishes any step you get stuck on. Free, about 14 minutes, and nothing touches your real accounts. [Open full screen](https://learn.ynteractive.com/modules/invoice-inbox-approval)

Free · Live now · [AI Automation for Finance](https://learn.ynteractive.com/content/industry/finance) · [n8n](https://learn.ynteractive.com/content/tool/n8n) · OpenAI · Gmail · Google Sheets · ~14 min · 40 steps · Advanced

Updated October 10, 2026. Built against the tool’s current screens and checked step by step. [How we check this lesson](https://learn.ynteractive.com/content/about#how-we-check)

[Vendor invoices](https://learn.ynteractive.com/content/glossary/accounts-payable) arrive as PDF attachments, and someone types the vendor, invoice number and total into a spreadsheet, then chases the owner for a yes on the big ones. In this free lesson you build an [n8n](https://learn.ynteractive.com/content/tool/n8n) workflow that does the typing and the chasing: AI reads each invoice, every invoice is logged in Google Sheets, and anything over $1,000 waits for the owner to click Approve in an email.

## At a glance

| Question | Answer |
| --- | --- |
| What you build | Build an n8n workflow that reads each vendor invoice PDF from Gmail with AI, logs the vendor, invoice number and total in Google Sheets, and emails the owner an Approve button for anything over $1,000. |
| Tools | n8n |
| Time | About 14 minutes, 40 steps in 5 parts |
| Level | Advanced, no coding needed |
| Cost | Free |
| Ways to learn it | [Practice it step by step](https://learn.ynteractive.com/modules/invoice-inbox-approval), watch the video, read the guide with screenshots |

### The 5 parts, in short

1. Read the invoice: Add the next step, Search for extractor, Information Extractor, Say what to pull out, and 7 more steps.
2. Log it: Add the log, Search for sheets, Google Sheets, Append row in sheet, and 8 more steps.
3. Over $1,000?: Add a check, Search for if, If, Check the total, and 4 more steps.
4. Ask for approval: Add to the true branch, Search for gmail, Gmail, Send message and wait for response, and 4 more steps.
5. Test it: Test it.

**Start here first:** [Build an AI Agent That Categorizes Business Expenses](https://learn.ynteractive.com/content/n8n-ai-agent-categorize-business-expenses-google-sheets) (module 1 of AI Automation for Finance)

## Invoices from Your Inbox to Google Sheets, with Approval: step-by-step guide with screenshots

**About the screenshots.** They come from Stepthrough’s simulated practice environment (a practice copy of n8n), not the live tool, so no real account appears. The buttons and labels match the real screens the lesson was built against. Practice it yourself free at learn.ynteractive.com.

- Tools: n8n
- Time: about 14 minutes, 40 steps in 5 parts
- Level: beginner, no coding needed

### Part 1: Read the invoice

#### Step 1: Add the next step

You keep the books at Cobalt Street Architects, and vendor invoices arrive by email as PDFs. This workflow already catches them: the [Gmail Trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger) downloads the attachment, and Extract from File turns the PDF into text. A test invoice is pinned to both.

![The n8n workflow canvas in Stepthrough’s practice copy, step 1 of 40 (Add the next step): the cursor is on “Gmail Trigger”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-01.webp)

**Step 1 of 40.** The **Gmail Trigger** already catches invoice emails with their PDF, and **Extract from File** turns the PDF into text. Both have a test invoice pinned. Click the **+** after **Extract from File**.

#### Step 2: Search for extractor

![The n8n node list in Stepthrough’s practice copy, step 2 of 40 (Search for extractor): the extractor is filled in (“extractor”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-02.webp)

**Step 2 of 40.** Type **extractor**.

#### Step 3: Information Extractor

It turns that wall of text into neat fields.

![The n8n node list in Stepthrough’s practice copy, step 3 of 40 (Information Extractor): the cursor is on “Information Extractor”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-03.webp)

**Step 3 of 40.** Click **Information Extractor**.

#### Step 4: Say what to pull out

The invoice text is on the left. It lists the five fields you want and one firm rule: copy what's printed, never calculate or guess. Leave a field empty rather than invent it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 4 of 40 (Say what to pull out): the instructions is filled in (“Pull these fields from this vendor invoice.…”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-04.webp)

**Step 4 of 40.** The invoice text is on the left, in **text**. Paste the instructions into **Text**.

```text
Pull these fields from this vendor invoice. Copy what is printed. Don't calculate or guess: if a field isn't on the invoice, leave it empty.
- vendor: the company that sent the invoice
- invoice_number
- invoice_date and due_date, as YYYY-MM-DD
- total: the final amount due, as a number with no $ sign

Invoice:
{{ $json.text }}
```

#### Step 5: Schema Type

![An n8n node’s settings window in Stepthrough’s practice copy, step 5 of 40 (Schema Type): the cursor is on “Schema Type”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-05.webp)

**Step 5 of 40.** Open **Schema Type**.

#### Step 6: Generate From JSON Example

Generate From [JSON](https://learn.ynteractive.com/content/glossary/json) Example.

![A dropdown menu in n8n in Stepthrough’s practice copy, step 6 of 40 (Generate From JSON Example): the cursor is on “Generate From JSON Example”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-06.webp)

**Step 6 of 40.** Choose **Generate From JSON Example**.

#### Step 7: Show the shape

Replace the sample with this. The values are made up. What matters is the shape: dates written year first, and the total as a plain number, so the next steps can compare it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 7 of 40 (Show the shape): the json example is filled in (“{ "vendor": "Acme Supply", "invoice_number":…”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-07.webp)

**Step 7 of 40.** Replace the sample with this example: vendor, invoice number, the two dates and the total as a number.

#### Step 8: Close the node

Close it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 8 of 40 (Close the node): the cursor is on “Close the node”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-08.webp)

**Step 8 of 40.** Close the node.

#### Step 9: Add a chat model

Now give it a model.

![The n8n workflow canvas in Stepthrough’s practice copy, step 9 of 40 (Add a chat model): the cursor is on “+”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-09.webp)

**Step 9 of 40.** Click the **+** under **Model**.

#### Step 10: OpenAI Chat Model

OpenAI Chat Model.

![The n8n node list in Stepthrough’s practice copy, step 10 of 40 (OpenAI Chat Model): the cursor is on “OpenAI Chat Model”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-10.webp)

**Step 10 of 40.** Click **OpenAI Chat Model**.

#### Step 11: Close the node

Your saved OpenAI key is already picked. Close it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 11 of 40 (Close the node): the cursor is on “OpenAI account”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-11.webp)

**Step 11 of 40.** Your saved **OpenAI account** is picked. Close the node.

### Part 2: Log it

#### Step 12: Add the log

Every invoice gets logged.

![The n8n workflow canvas in Stepthrough’s practice copy, step 12 of 40 (Add the log): the cursor is on “+”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-12.webp)

**Step 12 of 40.** Click the **+** after **Information Extractor**.

#### Step 13: Search for sheets

![The n8n node list in Stepthrough’s practice copy, step 13 of 40 (Search for sheets): the sheets is filled in (“sheets”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-13.webp)

**Step 13 of 40.** Type **sheets**.

#### Step 14: Google Sheets

Google Sheets.

![The n8n node list in Stepthrough’s practice copy, step 14 of 40 (Google Sheets): the cursor is on “Google Sheets”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-14.webp)

**Step 14 of 40.** Click **Google Sheets**.

#### Step 15: Append row in sheet

Append row in sheet.

![The n8n node list in Stepthrough’s practice copy, step 15 of 40 (Append row in sheet): the cursor is on “Append row in sheet”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-15.webp)

**Step 15 of 40.** Click **Append row in sheet**.

#### Step 16: Pick the spreadsheet

Your Google account is already connected.

![An n8n node’s settings window in Stepthrough’s practice copy, step 16 of 40 (Pick the spreadsheet): the cursor is on “Google Sheets account”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-16.webp)

**Step 16 of 40.** Your **Google Sheets account** is connected. Open the **Document** list.

#### Step 17: Invoices 2026

Pick the Invoices 2026 spreadsheet.

![A dropdown menu in n8n in Stepthrough’s practice copy, step 17 of 40 (Invoices 2026): the cursor is on “Invoices 2026”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-17.webp)

**Step 17 of 40.** Pick **Invoices 2026**.

#### Step 18: Pick the tab

![An n8n node’s settings window in Stepthrough’s practice copy, step 18 of 40 (Pick the tab): the cursor is on “Sheet”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-18.webp)

**Step 18 of 40.** Open the **Sheet** list.

#### Step 19: Sheet1

Sheet1. Its columns appear under Values to Send.

![A dropdown menu in n8n in Stepthrough’s practice copy, step 19 of 40 (Sheet1): the cursor is on “Sheet1”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-19.webp)

**Step 19 of 40.** Choose **Sheet1**.

#### Step 20: Fill Vendor

Now fill each column from the extractor's output. After a test run you can drag fields in from the left instead.

![An n8n node’s settings window in Stepthrough’s practice copy, step 20 of 40 (Fill Vendor): the expression is filled in (“{{ $json.output.vendor }}”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-20.webp)

**Step 20 of 40.** Under **Values to Send**, paste the vendor expression into **Vendor**.

#### Step 21: Fill Invoice #

The invoice number goes in Invoice number.

![An n8n node’s settings window in Stepthrough’s practice copy, step 21 of 40 (Fill Invoice #): the expression is filled in (“{{ $json.output.invoice_number }}”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-21.webp)

**Step 21 of 40.** Paste the invoice number expression into **Invoice #**.

#### Step 22: Fill Total

And the total goes in Total.

![An n8n node’s settings window in Stepthrough’s practice copy, step 22 of 40 (Fill Total): the expression is filled in (“{{ $json.output.total }}”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-22.webp)

**Step 22 of 40.** Paste the total expression into **Total**.

#### Step 23: Close the node

Close it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 23 of 40 (Close the node): the cursor is on “Close the node”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-23.webp)

**Step 23 of 40.** Close the node.

### Part 3: Over $1,000?

#### Step 24: Add a check

Small invoices just get logged. Big ones need a yes from the owner.

![The n8n workflow canvas in Stepthrough’s practice copy, step 24 of 40 (Add a check): the cursor is on “+”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-24.webp)

**Step 24 of 40.** Click the **+** after **Append row in sheet**.

#### Step 25: Search for if

![The n8n node list in Stepthrough’s practice copy, step 25 of 40 (Search for if): the if is filled in (“if”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-25.webp)

**Step 25 of 40.** Type **if**.

#### Step 26: If

![The n8n node list in Stepthrough’s practice copy, step 26 of 40 (If): the cursor is on “If”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-26.webp)

**Step 26 of 40.** Click **If**.

#### Step 27: Check the total

In the first box, paste the total. The sheet step's output is the row it wrote, so the expression names the extractor directly.

![An n8n node’s settings window in Stepthrough’s practice copy, step 27 of 40 (Check the total): the expression is filled in (“{{ $('Information…”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-27.webp)

**Step 27 of 40.** In **value1**, paste the total from the **Information Extractor**.

#### Step 28: Pick the comparison

![An n8n node’s settings window in Stepthrough’s practice copy, step 28 of 40 (Pick the comparison): the cursor is on “is equal to”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-28.webp)

**Step 28 of 40.** Open the comparison. It says **is equal to**.

#### Step 29: is greater than

![A dropdown menu in n8n in Stepthrough’s practice copy, step 29 of 40 (is greater than): the cursor is on “Number”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-29.webp)

**Step 29 of 40.** Under **Number**, choose **is greater than**.

#### Step 30: Over $1,000

No dollar sign, no comma.

![An n8n node’s settings window in Stepthrough’s practice copy, step 30 of 40 (Over $1,000): the value2 is filled in (“1000”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-30.webp)

**Step 30 of 40.** In **value2**, type **1000**.

#### Step 31: Close the node

Close it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 31 of 40 (Close the node): the cursor is on “Close the node”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-31.webp)

**Step 31 of 40.** Close the node.

### Part 4: Ask for approval

#### Step 32: Add to the true branch

![The n8n workflow canvas in Stepthrough’s practice copy, step 32 of 40 (Add to the true branch): the cursor is on “+”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-32.webp)

**Step 32 of 40.** Click the **+** on the **true** output.

#### Step 33: Search for gmail

![The n8n node list in Stepthrough’s practice copy, step 33 of 40 (Search for gmail): the gmail is filled in (“gmail”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-33.webp)

**Step 33 of 40.** Type **gmail**.

#### Step 34: Gmail

Gmail.

![The n8n node list in Stepthrough’s practice copy, step 34 of 40 (Gmail): the cursor is on “Gmail”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-34.webp)

**Step 34 of 40.** Click **Gmail**.

#### Step 35: Send message and wait for response

The workflow pauses until the owner answers.

![The n8n node list in Stepthrough’s practice copy, step 35 of 40 (Send message and wait for response): the cursor is on “Send message and wait for response”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-35.webp)

**Step 35 of 40.** Click **Send message and wait for response**.

#### Step 36: Send it to the owner

In the To field, put the owner's email. Here that's Lena.

![An n8n node’s settings window in Stepthrough’s practice copy, step 36 of 40 (Send it to the owner): the email is filled in (“lena@cobaltstreet.example”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-36.webp)

**Step 36 of 40.** In **To**, type **lena@cobaltstreet.example**.

#### Step 37: Subject

It names the invoice and the vendor.

![An n8n node’s settings window in Stepthrough’s practice copy, step 37 of 40 (Subject): the subject is filled in (“Approve invoice {{ $('Information…”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-37.webp)

**Step 37 of 40.** Paste the **Subject**.

```text
Approve invoice {{ $('Information Extractor').item.json.output.invoice_number }} from {{ $('Information Extractor').item.json.output.vendor }}?
```

#### Step 38: Message

Response Type is already Approval, so the email gets an Approve button.

![An n8n node’s settings window in Stepthrough’s practice copy, step 38 of 40 (Message): the message is filled in (“New invoice over $1,000: Vendor: {{…”).](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-38.webp)

**Step 38 of 40.** **Response Type** is already **Approval**. Paste the **Message**.

```text
New invoice over $1,000:
Vendor: {{ $('Information Extractor').item.json.output.vendor }}
Invoice: {{ $('Information Extractor').item.json.output.invoice_number }}
Total: ${{ $('Information Extractor').item.json.output.total }}
Due: {{ $('Information Extractor').item.json.output.due_date }}
It's already logged in Invoices 2026. Approve it to schedule payment.
```

#### Step 39: Close the node

Close it.

![An n8n node’s settings window in Stepthrough’s practice copy, step 39 of 40 (Close the node): the cursor is on “Close the node”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-39.webp)

**Step 39 of 40.** Close the node.

### Part 5: Test it

#### Step 40: Test it

The extractor reads twelve eighty-four fifty, the row goes into the sheet, and because it's over a thousand, Lena gets an approval email while the workflow waits for her answer. Check the sheet and her inbox, then publish it.

![The n8n workflow editor in Stepthrough’s practice copy, step 40 of 40 (Test it): the cursor is on “Execute workflow”, highlighted.](https://learn.ynteractive.com/content/guide/invoice-inbox-approval/step-40.webp)

**Step 40 of 40.** Click **Execute workflow**. It runs on the pinned invoice.

### Now do it yourself, free

Reading the steps is a start. Doing them is how it sticks. The interactive lesson puts you in a practice copy of n8n: you do every step yourself, it checks your work, and “Do it for me” finishes any step you get stuck on. Nothing touches your real accounts.

[Practice “Invoices from Your Inbox to Google Sheets, with Approval” step by step](https://learn.ynteractive.com/modules/invoice-inbox-approval?after=guide)

## Invoices from Your Inbox to Google Sheets, with Approval: video walkthrough

The whole lesson in 2:31, narrated step by step.

**Simulated practice environment.** Recorded in Stepthrough’s simulated practice environment, not the live tool. Practice it yourself free at learn.ynteractive.com.

2:31 · 5 chapters · 40 steps · narrated with the lesson’s own voice-over

### Chapters

Click a chapter to jump the video there.

1. [0:00 Read the invoice](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=0#watch)
2. [0:54 Log it](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=54#watch)
3. [1:25 Over $1,000?](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=85#watch)
4. [1:47 Ask for approval](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=107#watch)
5. [2:12 Test it](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=132#watch)

### Now do it yourself, free

Watching is the warm-up. The interactive lesson puts you in a practice copy of n8n: you do every step yourself, it checks your work, and “Do it for me” finishes any step you get stuck on. Nothing touches your real accounts.

[Practice “Invoices from Your Inbox to Google Sheets, with Approval” step by step](https://learn.ynteractive.com/modules/invoice-inbox-approval?after=video)

### Full transcript

#### Read the invoice

[0:00](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=0#watch) You keep the books at Cobalt Street Architects, and vendor invoices arrive by email as PDFs. This workflow already catches them: the Gmail Trigger downloads the attachment, and Extract from File turns the PDF into text. A test invoice is pinned to both. Click the plus after Extract from File.

[0:15](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=15#watch) Type extractor.

[0:17](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=17#watch) Click Information Extractor. It turns that wall of text into neat fields.

[0:21](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=21#watch) The invoice text is on the left. Paste this into Text. It lists the five fields you want and one firm rule: copy what's printed, never calculate or guess. Leave a field empty rather than invent it.

[0:32](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=32#watch) Open Schema Type.

[0:34](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=34#watch) Generate From JSON Example.

[0:36](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=36#watch) Replace the sample with this. The values are made up. What matters is the shape: dates written year first, and the total as a plain number, so the next steps can compare it.

[0:45](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=45#watch) Close it.

[0:46](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=46#watch) Now give it a model. Click the plus under Model.

[0:49](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=49#watch) OpenAI Chat Model.

[0:50](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=50#watch) Your saved OpenAI key is already picked. Close it.

#### Log it

[0:54](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=54#watch) Every invoice gets logged. Click the plus after the extractor.

[0:57](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=57#watch) Type sheets.

[0:58](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=58#watch) Google Sheets.

[1:00](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=60#watch) Append row in sheet.

[1:01](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=61#watch) Your Google account is already connected. Open the Document list.

[1:05](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=65#watch) Pick the Invoices 2026 spreadsheet.

[1:07](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=67#watch) Open the Sheet list.

[1:09](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=69#watch) Sheet1. Its columns appear under Values to Send.

[1:12](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=72#watch) Now fill each column from the extractor's output. Paste this into Vendor. After a test run you can drag fields in from the left instead.

[1:19](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=79#watch) The invoice number goes in Invoice number.

[1:21](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=81#watch) And the total goes in Total.

[1:23](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=83#watch) Close it.

#### Over $1,000?

[1:24](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=84#watch) Small invoices just get logged. Big ones need a yes from the owner. Click the plus after the sheet step.

[1:30](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=90#watch) Type if.

[1:31](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=91#watch) Click If.

[1:32](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=92#watch) In the first box, paste the total. The sheet step's output is the row it wrote, so the expression names the extractor directly.

[1:39](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=99#watch) Open the comparison.

[1:40](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=100#watch) Under Number, choose is greater than.

[1:43](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=103#watch) Type one thousand. No dollar sign, no comma.

[1:45](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=105#watch) Close it.

#### Ask for approval

[1:46](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=106#watch) Click the plus on the true side.

[1:48](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=108#watch) Type gmail.

[1:50](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=110#watch) Gmail.

[1:51](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=111#watch) Click Send message and wait for response. The workflow pauses until the owner answers.

[1:55](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=115#watch) In the To field, put the owner's email. Here that's Lena.

[1:59](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=119#watch) Paste the subject. It names the invoice and the vendor.

[2:02](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=122#watch) Response Type is already Approval, so the email gets an Approve button. Paste the message: vendor, invoice, total and due date.

[2:10](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=130#watch) Close it.

#### Test it

[2:11](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=131#watch) Click Execute workflow. The extractor reads twelve eighty-four fifty, the row goes into the sheet, and because it's over a thousand, Lena gets an approval email while the workflow waits for her answer. Check the sheet and her inbox, then publish it.

[2:24](https://learn.ynteractive.com/content/invoice-inbox-to-google-sheets-approval-n8n?t=144#watch) Simple as that. We show you and you do it. Sign up below to learn AI automation for free.

## What you will build

You keep the books at Cobalt Street Architects, a made-up firm. The workflow already has two steps: a [Gmail](https://learn.ynteractive.com/content/tool/gmail) Trigger that catches invoice emails and downloads the PDF, and Extract from File, which turns the PDF into plain text. A test invoice from Tidewater Office Supply is pinned to both: invoice TW-20418, dated September 29, 2026, due October 29, total $1,284.50.

You add an Information Extractor with an OpenAI Chat Model that returns the vendor, invoice number, invoice date, due date and total in a fixed shape. Then Append row in sheet logs the vendor, invoice number and total in a sheet called Invoices 2026. An If node checks whether the total is greater than 1000, and on the true branch Gmail's Send message and wait for response emails the owner, Lena, with an Approve button. The workflow pauses until she answers.

## How the two ready-made steps are set up

The Gmail Trigger polls the inbox. To get the PDF, turn Simplify off and add the Download Attachments option; the first attachment arrives as binary data called attachment_0. Extract from File with the Extract From PDF operation reads that field and outputs the text. Scanned invoices that are only images have no text to extract, so check that your vendors send real PDFs, or add an OCR step first.

## Gotchas worth knowing

- Ask for numbers as numbers. The JSON example shows total as 250.75, not "$250.75", so the If node can compare it to 1000.
- Dates written year first (2026-10-29) sort correctly in Sheets.
- The Information Extractor puts its fields under output, so the Sheets expressions read $json.output.vendor.
- After the Sheets step, the incoming data is the row that was written. The If node reads the total from the Information Extractor by name instead.
- Send message and wait for response defaults to Approve Only. Add Approval Options and choose Approve and Disapprove if you want a No button too.
- Test runs wait for the answer just like live runs, so check your inbox after you click Execute workflow.

## What you need

- An n8n account: n8n Cloud from about €20 a month with a free trial, or the free self-hosted Community Edition.
- An OpenAI API key with a little credit. Reading one invoice with a small model costs a fraction of a cent.
- Gmail and Google Sheets connected in n8n, and a sheet with Vendor, Invoice # and Total columns.

## Keep a person in the loop

AI can misread a blurry PDF or a strange layout, which is why the instructions forbid guessing and why big invoices need a click before anyone pays. Spot-check the first week of rows against the PDFs, and keep the approval step even when the numbers look right. This is bookkeeping help, not accounting or tax advice.

## Try it yourself, free

Reading the steps is a start. Doing them is how it sticks. The interactive module walks you through every click in a practice copy of n8n, checks each step, and never touches your real accounts.

[Start “Invoices from Your Inbox to Google Sheets, with Approval”](https://learn.ynteractive.com/modules/invoice-inbox-approval)

[All free Stepthrough videos](https://learn.ynteractive.com/content/videos)

## Frequently asked questions

**How does the interactive lesson work?**

Each step is shown to you first on the left (Watch). Then you do it yourself in a practice copy on the right (Your turn), and every click is checked. If you get stuck, press Do it for me. It is a practice copy, so no real accounts are touched.

**Is this free?**

Stepthrough is completely free. Running the workflow for real needs your own n8n account, an OpenAI API key with some credit, and Gmail and Google Sheets.

**Does it pay invoices?**

No. It reads each invoice, logs it and, for anything over $1,000, asks the owner to approve it. Paying stays a separate, human step.

**Can I change the $1,000 limit?**

Yes. Change the number in the If node's second box.

**Can I use Slack instead of email for approvals?**

Yes. The Slack node has the same Send message and wait for response action. This lesson uses Gmail because the invoices already come through it.

[Start this module free](https://learn.ynteractive.com/modules/invoice-inbox-approval)

- Previous in AI Automation for Finance: [Build an Expense Reimbursement Form With AI Policy Checks](https://learn.ynteractive.com/content/expense-reimbursement-form-ai-approval-lovable-n8n)

## More in AI Automation for Finance

- [Build an AI Agent That Categorizes Business Expenses](https://learn.ynteractive.com/content/n8n-ai-agent-categorize-business-expenses-google-sheets): Build an AI agent for Maple Street Bookkeeping that sorts business expenses into categories, writes a short note for each and saves them to Google Sheets — chat…

[All 3 modules in AI Automation for Finance](https://learn.ynteractive.com/content/industry/finance)

## More n8n tutorials

- [n8n AI Agent Tutorial: Save Social Media Ideas to Google Sheets](https://learn.ynteractive.com/content/n8n-ai-agent-tutorial-google-sheets): Build an AI agent for BrightPath Marketing that generates social media post ideas and saves them to Google Sheets — chat trigger, AI Agent, system prompt, model…
- [Lovable + n8n: Build a Web App with an AI Backend](https://learn.ynteractive.com/content/lovable-n8n-web-app-ai-backend): Build a contact form in Lovable and connect it to an n8n workflow — webhook trigger, AI Agent, Google Sheets, Gmail, and a Respond node that ties it all together.
- [AI Receipt Extractor: Receipts to Google Sheets with n8n](https://learn.ynteractive.com/content/ai-receipt-extractor-n8n-google-sheets): Drop a photo of a receipt into an n8n chat. An AI agent reads it, pulls out the date, vendor and amount, picks a category, and adds a row to Google Sheets.
- [AI Email Responder: Draft Gmail Replies Automatically with n8n](https://learn.ynteractive.com/content/ai-email-responder-gmail-drafts-n8n): Build an n8n agent that watches your Gmail, reads each new customer email, and writes a reply as a draft in the same thread, ready for you to check and send.
- [Daily Job Alerts: Email Each Tech Their Jobs from Google Sheets with n8n](https://learn.ynteractive.com/content/n8n-daily-job-alerts-google-sheets-gmail): Every morning at 7, n8n reads a plumbing company's jobs sheet, skips anything not assigned yet, and emails each job to the tech it's assigned to — customer, address…
- [Gmail AI Triage: Auto-Label Every Email and Draft Replies](https://learn.ynteractive.com/content/gmail-ai-triage-labels-drafts-n8n): Build an n8n workflow that reads each new email, sorts it as a lead, a client or an invoice with a Text Classifier, adds the matching Gmail label, and drafts a reply to…

## Terms in this lesson

Plain-English definitions, each with an example from a free lesson.

[Accounts payable](https://learn.ynteractive.com/content/glossary/accounts-payable) · [Workflow](https://learn.ynteractive.com/content/glossary/workflow) · [Gmail Trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger) · [Chat model](https://learn.ynteractive.com/content/glossary/chat-model) · [OpenAI](https://learn.ynteractive.com/content/glossary/openai) · [Append row](https://learn.ynteractive.com/content/glossary/append-row)

[The full AI glossary](https://learn.ynteractive.com/content/glossary)

## Browse related tutorials

[AI for Finance (3)](https://learn.ynteractive.com/content/industry/finance) · [n8n tutorials (28)](https://learn.ynteractive.com/content/tool/n8n)
