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

Parse Bank Statement PDFs Into a Google Sheet With Odoo

2026-05-14
5 min read

The Scenario

You're a bookkeeper and three clients sent you bank statements to reconcile this week — PDFs from two different banks, covering accounts in different currencies. The URLs are sitting in a tab called "Statement Queue" in your Google Sheet. What finance needs is opening balance, closing balance, statement date, and each individual transaction line expanded into its own row in the "Reconciliation" tab. You've done this before by downloading each PDF, reading through it, and manually entering the data. That approach worked when you had two statements a month. Now you have ten.

The bad version:

  • Download each statement PDF, open it, locate the balance fields and transaction table, then type each row into the reconciliation sheet by hand.
  • Miss a transaction on statement 4 because the PDF had a page break that split a table across two pages, and discover the discrepancy three days later during the client call.
  • Spend the last hour before the client sync re-entering 23 transaction lines that belonged to statement 6 but got attributed to statement 5 because you lost your place.

Reconciliation is already the most cognitively demanding part of the job. Manual data entry on top of it is the part that shouldn't exist.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads your sheet tabs, understands the structure, and through its built-in Odoo integration it can submit each bank statement URL for extraction, poll for results, and write balance fields and individual transaction lines into the right tab — without you transcribing a single row.

For each bank statement PDF URL in column A of the 'Statement Queue' tab, submit to Odoo Parse Bank Statement and write the token into column B, then fetch results and write balance_start, balance_end, statement date, and each transaction line as its own row in the 'Reconciliation' tab

What You Get

  • The Reconciliation tab fills with one row per transaction, with balance_start and balance_end at the top of each statement's block
  • Statement date lands in a dedicated column so you can filter or sort by period
  • Transaction lines from multi-page statements are fully captured — no page-break truncation
  • Rows where a statement fails to parse return a status note in the Queue tab rather than a silent gap in the Reconciliation tab

What If the Data Is Not Quite Ready

Some statement PDFs are scanned images rather than digital PDFs

For each statement URL in column A of the Queue tab, submit to Odoo Parse Bank Statement, write the token to column B, and poll for results — if extraction returns no transaction lines for a row, write 'SCAN — MANUAL REVIEW' in column C instead of leaving it blank

Statements from multiple accounts need to be tagged with the account name

Process all statement URLs in column A of the Queue tab through Odoo Parse Bank Statement — expand transaction lines into the Reconciliation tab and in each transaction row include the account name from column D of the Queue tab as a reference column

Some statements have already been processed in a previous run

For each row in the Queue tab where column B is empty, submit to Odoo Parse Bank Statement, write the token to column B, then expand the transaction lines into the Reconciliation tab — skip rows where column B already has a token

Full reconciliation prep in one pass

For each statement URL in column A of the Queue tab: submit to Odoo Parse Bank Statement, write balance_start, balance_end, and statement date to columns C through E of the Queue tab, expand all transaction lines into the Reconciliation tab tagged with the account name from column D, and in column F of the Queue tab write 'DISCREPANCY' for any statement where balance_end minus balance_start does not match the sum of extracted transaction amounts

One prompt surfaces the balance discrepancies before the client call, not during it.

Try It

Get the 7-day free trial of SheetXAI and open your bank statement queue sheet, then ask it to run each URL through Odoo and land the transaction lines in your reconciliation tab. For related workflows, see vendor invoice batch extraction and expense receipt processing.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more