Mindket

Drive invoices parsed by LlamaParse and saved in Airtable

Newversion 1 · updated

Overview

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 . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • 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

Platform

Connects 4 apps

How it works

Trigger

New file in Google Drive

It starts when a file appears in the Drive folder you watch, with:

  • The invoice file, downloaded as binary data

Actions

  1. The file is downloaded and sent to LlamaParse with the address of the workflow’s webhook
  2. LlamaParse reads the document and posts the Markdown to the webhook when it is done
  3. A prompt and a JSON schema are added to the text
  4. An OpenAI model returns the line items as JSON
  5. One empty invoice record is created in Airtable
  6. The JSON is split into one item for each line
  7. Each line becomes a row in the Line Items table, linked to the invoice

Result

An invoice record and one linked row for each line item in Airtable

Integrations

What you need before you start.

Google Drive

Invoice folder

Detects each new invoice in the folder and downloads it.

NeedsA Google account and a Drive folder

LlamaParse

Document reader

Reads the PDF and calls the webhook with its text when finished.

NeedsA LlamaCloud API key and a public HTTPS webhook address

OpenAI

Language model

Returns the line items of the invoice text as JSON.

NeedsAn OpenAI API key

Airtable

Database

Stores one record for the invoice and one for each line item.

NeedsA base with an Invoices and a Line Items table, and an access token

Workflow check

Checked by Mindket on 13 Nov 2026

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

Read from the workflow’s file, not from a run.

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
IndustryWho uses itHow they use itExample
FinanceBookkeepersMove invoice lines into a base instead of retyping themA bookkeeper drops a supplier PDF into the folder and finds its lines in Airtable.
OperationsOffice managersKeep one table of what was boughtA manager filters the line items by description to see repeat purchases.
FreelanceConsultantsCollect cost lines for a client reportA consultant sums the amount column for one month of line items.
SoftwareDevelopersLearn the pattern of a parse job that calls backA 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

Setup

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
NeedDetail
n8nOn n8n Cloud, or on a server with a public HTTPS address
GoogleA Google account and a Drive folder for the invoices
LlamaCloudAn API key from your LlamaCloud account
OpenAIAn API key
AirtableA 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 changeWhere
The folder that is watchedGoogle Drive Trigger
What LlamaParse is asked to doThe parsing_instruction field in Upload File
Reading scanned pagesRemove the disable_ocr field in Upload File
What the model returnsThe prompt and the schema in Set Fields
The columns that are filledThe 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
NodeWhat it doesWhat to know
Upload FileAn HTTP Request node 4.2 that posts a multipart form to LlamaParse’s first-version upload addresswebhook_url and parsing_instruction go in the form, and the key goes in the header
WebhookA POST webhookLlamaParse sends md, txt and json, and the workflow reads body.md
OpenAI Extract Line ItemsAn HTTP Request to the chat completions address with a strict JSON schemaThe model is gpt-6-luna, and the schema names description, qty, unit_price and amount
Process Line ItemsA Code node that turns the model’s JSON into one item for each lineA parse error is logged and no item comes out
Create Line ItemAn Airtable node 2.1 that creates a row and links it to the invoiceIt 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 and files

README

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.
Files
NOTICE.md  636 B
README.md  5 KB
workflow.json  17 KB

3 files, 23 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-13

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Nanosaur2-670M

well9472 · Kit

Makes illustrations from text prompts with a small 670M-parameter diffusion model, run through ComfyUI. Built as a low-budget research model for people who wan…

New

Reads handwritten Arabic text from images and returns it as text. A fine-tuned PaddleOCR-VL model for people digitizing Arabic handwriting.

New

Makes video clips from a text prompt or an image plus text, at up to 720P and 24 frames per second, in the Diffusers format for a single consumer GPU.

New

Similar in Finance & accounting

See all in Finance & accounting

Kronos-mini

NeoQuasar · Kit

Forecasts financial candlestick series with a 4.1M-parameter foundation model trained on data from over 45 exchanges. For quant researchers and developers who…

New

Kronos-Tokenizer-base

NeoQuasar · Kit

Converts candlestick price data into discrete tokens that the Kronos forecasting models read. It suits people who forecast financial markets in Python.

New