# Extract invoice data from PDF with Claude: n8n workflow

> Started by another system calling it. It calls services over plain HTTP rather than through connectors.

Source: https://millionrounds.com/workflow/extract-invoice-data-from-pdf-with-claude (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Money admin](https://millionrounds.com/workflows?category=Money+admin#library)

# Extract invoice data from PDF with Claude

Started by another system calling it. It calls services over plain HTTP rather than through connectors. 24 steps, 2 branches: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fextract-invoice-data-from-pdf-with-claude)

**24 steps** Large: read it before trusting it with anything live

**2** Branches: places the flow splits

**0** Loops or waits

**0** Services by connector: it calls them over plain HTTP

## The flow

Starts it 4 Logic 13 Service 7

The steps in the order they run, from what starts it.

- 1 **Receive Invoice PDF** Webhook *Starts it*
- 2 **PDF to Base64** Extract From File *Service*
- 3 **Configuration** Set *Logic*
- 4 **Prepare Claude Request** Code *Logic*
- 5 **Claude AI Extract** Http Request *Service*
- 6 **Parse Extraction** Code *Logic*
- 7 **Error Response** Respond To Webhook *Starts it*
- 8 **Odoo Authenticate** Http Request *Service*
- 9 **Prepare Duplicate Check** Code *Logic*
- 10 **Search Duplicate Invoice** Http Request *Service*
- 11 **Duplicate Found?** If *Logic*
- 12 **Handle Duplicate** Code *Logic*
- 13 **Prepare Vendor Search** Code *Logic*
- 14 **Duplicate Response** Respond To Webhook *Starts it*
- 15 **Search Vendor** Http Request *Service*
- 16 **Vendor Exists?** If *Logic*
- 17 **Use Existing Vendor** Code *Logic*
- 18 **Prepare Create Vendor** Code *Logic*
- 19 **Prepare Invoice** Code *Logic*
- 20 **Create Vendor in Odoo** Http Request *Service*
- 21 **Create Invoice in Odoo** Http Request *Service*
- 22 **Get New Vendor ID** Code *Logic*
- 23 **Build Response** Code *Logic*
- 24 **Success Response** Respond To Webhook *Starts it*

## How it's built

- **Starts on:** Another system calling it
- **Steps:** 24, with 2 branches
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Nothing by connector; it calls services over plain HTTP
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account. You connect your own accounts after importing it; none are included.

What starts it?

It starts on another system calling it.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 24 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 24 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fextract-invoice-data-from-pdf-with-claude)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Workflows like it

Also money admin, with the same services where possible, closest in size first.

- [**Extract and log Outlook invoices to OneDrive Excel with OpenAI** 24 steps · calls a model · Excel, Outlook](https://millionrounds.com/workflow/extract-and-log-outlook-invoices-to-onedrive-excel-with-open)
- [**Log receipt expenses in Notion with Gmail and Telegram** 24 steps · calls a model · Airtable, Gmail](https://millionrounds.com/workflow/log-receipt-expenses-in-notion-with-gmail-and-telegram)
- [**Telegram Expense Tracker with Image and PDF** 24 steps · calls a model · Google Sheets, Telegram](https://millionrounds.com/workflow/telegram-expense-tracker-with-image-and-pdf)
- [**Track & query expenses with Telegram and OpenAI** 24 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/track-and-query-expenses-with-telegram-and-openai)
- [**Generate and track invoices with HubSpot and Gmail** 25 steps · Gmail, Google Sheets](https://millionrounds.com/workflow/generate-and-track-invoices-with-hubspot-and-gmail)
- [**Run bounded dunning for Lago payment failures** 25 steps · Email, n8n data table](https://millionrounds.com/workflow/run-bounded-dunning-for-lago-payment-failures)
