---
title: "Drive invoices parsed by LlamaParse and saved in Airtable"
kind: "Kit"
category: "Finance & accounting"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/623be1bd-7719-4b67-8d54-8a16f1ac82e1"
updated: "2026-11-13"
---

# Drive invoices parsed by LlamaParse and saved in Airtable

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that files invoices. It watches a Google Drive folder, has LlamaParse read each new file and an OpenAI model pick out the line items. Airtable gets one record for the invoice and one for each line item.

Drive invoices parsed by LlamaParse and saved in Airtable is an n8n workflow in the Finance \& accounting category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-13. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow files invoices for you. It watches a Google Drive folder, and each new file goes to LlamaParse, which reads the document. When LlamaParse is done, it calls a webhook of the workflow. An OpenAI model then picks out the line items, and Airtable gets one record for the invoice and one for each line item. Nine nodes do the work, beside nine sticky notes.

### Who it suits

Bookkeepers, small finance teams and freelancers who get invoices as PDFs and retype them into a base. It reads PDFs that hold text, but it switches the OCR step off, so scanned pages need a change. The invoice record is created empty, so you name it yourself. Check the totals before you rely on them.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Finance | Bookkeepers | Move invoice lines into a base instead of retyping them | A bookkeeper drops a supplier PDF into the folder and finds its lines in Airtable. |
| Operations | Office managers | Keep one table of what was bought | A manager filters the line items by description to see repeat purchases. |
| Freelance | Consultants | Collect cost lines for a client report | A consultant sums the amount column for one month of line items. |
| Software | Developers | Learn the pattern of a parse job that calls back | A developer reuses the webhook half for another kind of document. |

You need some n8n skill: import a file, add four accounts, publish the workflow and prepare two Airtable tables. Nothing in the file states a setup time.

### Where to use it

Any n8n that can reach Google Drive, LlamaParse, OpenAI and Airtable will run it, as long as LlamaParse can reach the webhook.

- n8n Cloud: its public address works as the webhook address
- Your own n8n server: it needs a public HTTPS address with a domain name
- Another source of PDFs: swap the Drive trigger and download for another node
- Another table: swap the two Airtable nodes for a database or sheet node

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Prepare the accounts and the two tables first.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud, or on a server with a public HTTPS address |
| Google | A Google account and a Drive folder for the invoices |
| LlamaCloud | An API key from your LlamaCloud account |
| OpenAI | An API key |
| Airtable | A base with an Invoices table and a Line Items table, and a personal access token |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Google Drive credential and select it in `Google Drive Trigger` and `Google Drive`. Choose your invoice folder in the trigger.
3. In `Webhook`, replace `<YOUR_RANDOM_WEBHOOK_PATH>` with a long random text. Use the same text in the address in `Upload File`, with your n8n host in place of `<YOUR_N8N_HOST>`.
4. In `Upload File`, replace `<YOUR_LLAMACLOUD_API_KEY>` in the `Authorization` header with your key.
5. Add an OpenAI credential and select it in `OpenAI Extract Line Items`.
6. Add an Airtable credential, then choose your base and your two tables in `Create Invoice` and `Create Line Item`.
7. Publish the workflow and drop an invoice PDF into the folder.

### How to use it

Publish the workflow and drop an invoice PDF into the folder. When LlamaParse has finished, the Line Items table gets one row for each line. Check the first runs against the PDFs.

What to change for a different result

| To change | Where |
| --- | --- |
| The folder that is watched | \`Google Drive Trigger\` |
| What LlamaParse is asked to do | The \`parsing\_instruction\` field in \`Upload File\` |
| Reading scanned pages | Remove the \`disable\_ocr\` field in \`Upload File\` |
| What the model returns | The prompt and the schema in \`Set Fields\` |
| The columns that are filled | The two Airtable nodes |

### Example

A supplier sends a PDF with three lines, and you save it in the folder.

First `Google Drive Trigger` sees the file and `Google Drive` downloads it. Then `Upload File` sends it to LlamaParse together with the address of `Webhook`. When parsing ends, LlamaParse posts the text to `Webhook`, and `OpenAI Extract Line Items` returns the three lines as JSON. `Create Invoice` adds one record, `Process Line Items` splits the JSON into three items and `Create Line Item` adds a row for each, linked to the invoice.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This workflow has two halves that do not touch. The first half sends a file away. The second half waits at a webhook, an address that LlamaParse calls when its work is done.

**For experts.** The two halves meet only through the callback, so the second half can be tested alone.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Upload File\` | An HTTP Request node 4.2 that posts a multipart form to LlamaParse’s first-version upload address | \`webhook\_url\` and \`parsing\_instruction\` go in the form, and the key goes in the header |
| \`Webhook\` | A POST webhook | LlamaParse sends \`md\`, \`txt\` and \`json\`, and the workflow reads \`body.md\` |
| \`OpenAI Extract Line Items\` | An HTTP Request to the chat completions address with a strict JSON schema | The model is \`gpt-6-luna\`, and the schema names \`description\`, \`qty\`, \`unit\_price\` and \`amount\` |
| \`Process Line Items\` | A Code node that turns the model’s JSON into one item for each line | A parse error is logged and no item comes out |
| \`Create Line Item\` | An Airtable node 2.1 that creates a row and links it to the invoice | It turns the price strings into numbers |

### Good to know

It sends invoice text to three services, and it is not tested.

- LlamaParse version: its documentation, read on 12 November 2026, calls the first API version deprecated but available, and says new features come to the second version only. This copy stays on the first one, whose webhook is documented to send the result. The second version changes the webhook, so test it before you move
- A public address: LlamaParse takes only an HTTPS webhook address with a domain name, under 200 characters. A local n8n needs a tunnel
- An open webhook: anyone who learns the path can post text to it, and that text goes to OpenAI and into Airtable. Use a long random path
- Scans: \`disable\_ocr\` is true, so text inside images is not read and a scanned invoice may come back empty
- An empty invoice record: \`Create Invoice\` fills no column, so name the record in Airtable or map a field
- Numbers: prices with a thousands comma now parse correctly, but a European format such as 1.234,50 does not
- Privacy: the invoice text goes to LlamaParse, OpenAI and Airtable, so check that you may send it
- Repairs: the original sent the instruction as a header and read a \`json\` field the webhook sample does not list. Mindket’s copy sends it in the form and reads \`md\`. The model \`gpt-4o-mini\`, which OpenAI’s deprecations page says is shut down on 14 January 2027, is now \`gpt-6-luna\`
- Mindket did not run it. It read LlamaParse’s and OpenAI’s documentation and n8n’s source instead

## README

```markdown
# Drive invoices parsed by LlamaParse and saved in Airtable

An n8n workflow that files invoices. It watches a Google Drive folder, sends each new file to LlamaParse, and receives the parsed text on a webhook. An OpenAI model then returns the line items as JSON, and Airtable gets one record for the invoice and one for each line item.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 9 nodes beside 9 sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The original file had stray text after its JSON. Mindket’s copy drops it.
- The upload went to `https://api.cloud.llamaindex.ai/api/parsing/upload`. LlamaParse’s documentation, read on 12 November 2026, shows `/api/v1/parsing/upload`, and Mindket’s copy uses that.
- The `parsing_instruction` was sent as a header. The documentation lists it as a form field, so it is now in the form.
- The OpenAI step read `body.json[0].items` from the webhook. The documented webhook body has `txt`, `md`, `json` and `images`, and the `json` sample has no `items`. Mindket’s copy sends `body.md`, the text as Markdown, and the prompt now says what to return.
- The model `gpt-4o-mini` is shut down on 14 January 2027, says OpenAI’s deprecations page, with `gpt-6-luna` as its replacement. Mindket’s copy uses `gpt-6-luna`. It has no tools here, so the note about tools on that model does not apply.
- Amounts such as `$1,250.00` lost their thousands part, because `parseFloat` stops at the comma. The two price expressions now remove the dollar sign, commas and spaces first.
- The webhook path, the webhook address, the Drive folder, the Airtable base and tables, and the empty key in the header are placeholders. The original held its author’s own ids.
- The OpenAI node had a spaced hyphen in its name. It is now `OpenAI Extract Line Items`, and the Code node that reads it follows.
- The sticky notes are reworded. The banner note described a different workflow, a meeting agent, and is replaced.
- No credential is inside.

## Before you start

- An n8n instance with a public HTTPS address and a domain name, on n8n Cloud or your own server.
- A Google account and a Drive folder for the invoices.
- A LlamaCloud API key.
- An OpenAI API key.
- An Airtable base with two tables: Invoices, with a Name column and a Line Items link, and Line Items, with Description, Qty, Unit price, Amount and an Invoices link. Add an Airtable personal access token.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Google Drive credential and select it in `Google Drive Trigger` and `Google Drive`. Choose your invoice folder in the trigger.
3. In `Webhook`, replace `<YOUR_RANDOM_WEBHOOK_PATH>` with a long random text. Use the same text in the address in `Upload File`, with your n8n host in place of `<YOUR_N8N_HOST>`.
4. In `Upload File`, replace `<YOUR_LLAMACLOUD_API_KEY>` in the `Authorization` header with your key.
5. Add an OpenAI credential and select it in `OpenAI Extract Line Items`.
6. Add an Airtable credential, then choose your base and your two tables in `Create Invoice` and `Create Line Item`.
7. Publish the workflow and drop an invoice PDF into the folder.

## How a run goes

1. `Google Drive Trigger` checks the folder every minute and starts a run for each new file. `Google Drive` downloads it.
2. `Upload File` posts the file to LlamaParse with the webhook address and an instruction to find the line items.
3. When LlamaParse is done, it posts the result to `Webhook`. `Set Fields` adds the prompt and the JSON schema.
4. `OpenAI Extract Line Items` asks the model for the lines, in the shape of the schema.
5. `Create Invoice` adds an empty record to the Invoices table.
6. `Process Line Items` turns the model’s JSON into one item for each line. `Create Line Item` adds each line to the Line Items table, linked to the invoice.

## Change the look

- The folder that is watched: `Google Drive Trigger`.
- What LlamaParse is asked to do: the `parsing_instruction` field in `Upload File`.
- Reading scanned pages: remove the `disable_ocr` field in `Upload File`.
- What the model returns: the prompt and the schema in `Set Fields`.
- The columns that are filled: the two Airtable nodes.

## Good to know

- LlamaParse’s documentation, read on 12 November 2026, calls its first API version deprecated but still available, and says new features come to the second version only. This copy stays on the first one, whose webhook is documented to send the result. The second version changes the webhook, so test it before you move.
- LlamaParse takes only an HTTPS webhook address with a domain name, under 200 characters. A local n8n needs a tunnel.
- Anyone who learns the webhook path can post text to it, and that text goes to OpenAI and into Airtable. Use a long random path.
- `disable_ocr` is true, so text inside images is not read. A scanned invoice may come back empty.
- `Create Invoice` fills no column. Name the record in Airtable, or map a field.
- A European price such as 1.234,50 is not read correctly by the two price expressions.
- The invoice text goes to LlamaParse, OpenAI and Airtable, so check that you may send it.
- Mindket did not run this workflow. It read LlamaParse’s and OpenAI’s documentation and n8n’s source instead.
- The JSON holds no credential.
```

## What is in it

3 files, 23 KB, downloaded as a zip.

```text
NOTICE.md  636 B
README.md  5 KB
workflow.json  17 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 9 steps, starting when its webhook is called or on a Google Drive event
- AI: No step calls an AI model
- Sign-ins: Signs in to: OpenAI, Airtable, Google Drive, Google service account and api.cloud.llamaindex.ai
- API keys: No API key is left in the file; 1 blank in it for your own key
- Step types: Mindket’s checker reads all 7 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/623be1bd-7719-4b67-8d54-8a16f1ac82e1)
- [Its page on Mindket](https://mindket.com/p/623be1bd-7719-4b67-8d54-8a16f1ac82e1)
