Back to Odoo in Google Sheets
SheetXAI logo
Odoo logo
Odoo · Google Sheets Guide

Batch Parse Supplier Invoices Into a Google Sheet With Odoo OCR

2026-05-14
5 min read

The Scenario

It's the last working day of the month and you're the accounts payable coordinator. Forty supplier invoice PDFs have come in through email — different formats, different suppliers, different currencies. Your job is to get the structured data out of each one: total amount, due date, supplier name, VAT number, IBAN. Your sheet already has the PDF URLs in column A. Everything else is empty.

The bad version:

  • Open each PDF URL in a browser, upload it manually to Odoo's document module, wait for the OCR job to finish, then read the extracted fields off the screen and type them into columns C through F — one at a time, 40 times.
  • Lose track somewhere around row 18 when a tab crashes, start back at the top of your count, and discover you've entered row 22's data into row 21.
  • Finish at 6:30 PM, realize three invoices returned OCR errors you didn't notice, and have to go back through the full list to find which ones.

Month-end close doesn't wait, and re-entering 40 invoices is not the kind of work that fits in a to-do list alongside the actual accounting tasks. You're not being paid to click through an OCR queue.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads your sheet, understands the column structure, and through its built-in Odoo integration it can submit every invoice URL for extraction, poll for results, and write the structured fields back — without you touching each row individually.

For each invoice PDF URL in column A, submit to Odoo's Parse Invoice API and write the document_token into column B, then poll each token until complete and write extracted total, due date, supplier, and currency into columns C through F

What You Get

  • Column B fills with Odoo document tokens as each submission completes
  • Columns C through F populate with extracted total, due date, supplier name, and currency for each row
  • Rows where the OCR job returns an error surface a status note in column B rather than silently failing
  • The full batch runs without manual intervention — you can watch it land or come back when it's done

What If the Data Is Not Quite Ready

The invoice PDFs are mixed formats — some scanned, some digital

Odoo's OCR handles both, but extraction confidence varies. If you want to flag lower-confidence results:

For each PDF URL in column A, submit to Odoo Parse Invoice, write the token to column B, then poll results and write total, due date, and supplier to columns C through E — and in column F write 'LOW CONFIDENCE' for any row where no VAT number was extracted

Some rows already have results from a previous run

For each row in column A where column B is empty, submit to Odoo Parse Invoice, write the token to column B, then poll and write extracted fields to columns C through F — skip rows that already have a token

The currency field is sometimes missing and needs to default to EUR

Submit all invoice URLs in column A to Odoo Parse Invoice, poll for results, and write total, due date, supplier, and currency to columns C through F — where currency is missing or null, write 'EUR' as the default

Full cleanup + extraction + flagging in one shot

For each invoice URL in column A: submit to Odoo Parse Invoice, collect total, due date, supplier name, VAT number, and IBAN into columns C through G, write the document status to column B, and in column H mark 'REVIEW' for any row where total is empty, due date is before today, or IBAN is missing — then sort the sheet so REVIEW rows appear at the top

The pattern: ask for the extraction and the validation logic together. Running them separately means a second pass through data you've already paid to process.

Try It

Get the 7-day free trial of SheetXAI and open any Google Sheet with a column of supplier invoice PDF URLs, then ask it to run the batch through Odoo and land the structured fields in adjacent columns. For related tasks, see how to validate vendor invoices with anomaly flagging or query Odoo sales data directly into your sheet.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more