PDF invoice to a Google Sheets row with AI
Receive a PDF invoice, AI extracts supplier, tax ID, number, date, net, VAT, total and lines, validates the amounts and adds a row to your sheet.
Everything is created inactive in a new folder of your account. Nothing runs until you activate it, and you can undo it for 24 hours.

What it does
Send the invoice (PDF as base64) to a webhook. The workflow reads the PDF text, passes it to OpenAI to turn it into JSON with supplier, tax ID, number, date, net amount, VAT, total and lines, and a Normalizar factura node cleans it: numeric amounts, ISO date (YYYY-MM-DD), a check that net + VAT = total and a REVISAR flag when a field is missing. The result is appended as a row to Google Sheets.
What you need: an OpenAI API key, a connected Google account and a sheet with the header Fecha, Nº factura, Proveedor, NIF, Base, % IVA, IVA, Total, Moneda, Estado, Observaciones.
Limitation: it only reads PDFs that contain text (scanned PDFs or photos have none; use the ticket/photo template with vision for those).
How to set it up
- 1
Connect the openai credential
This template uses openai in: Extraer datos con IA. Create or pick the credential and assign it in those nodes.
- 2
Connect the google credential
This template uses google in: Añadir fila a la hoja. Create or pick the credential and assign it in those nodes.
- 3
Copy the webhook URL (Recibir factura)
A new URL is generated on install. Paste it into the external system that must call this workflow.
- 4
Prepare the sheet and connect accounts
Create a sheet with the header
Fecha, Nº factura, Proveedor, NIF, Base, % IVA, IVA, Total, Moneda, Estado, Observaciones. In Añadir fila a la hoja choose the sheet and tab; connect OpenAI in Extraer datos con IA. - 5
Send an invoice
Send a
POSTto the webhook URL with{"pdf_base64":"<base64 encoded PDF>"}(thedata:application/pdf;base64,prefix is also accepted). Maximum body size: 20 MB. - 6
Resulting JSON format
The Normalizar factura node produces, besides the sheet row, a JSON like this one that you can reuse in other nodes (ERP, Excel, Data Store):
{"proveedor":"Suministros Norte S.L.","nif":"B12345678","numero_factura":"F-2026-0412","fecha":"2026-09-30","moneda":"EUR","base_imponible":200,"iva_porcentaje":21,"iva_importe":42,"total":242,"lineas":[{"descripcion":"Papel A4 (caja)","cantidad":4,"precio_unitario":50,"importe":200}],"estado":"OK"}. If a required field is missing or the amounts do not add up,estadoisREVISARandmotivoexplains why. Required fields and the confidence threshold are set at the top of the script. - 7
Activate the workflow
Workflows are installed inactive. Once everything is set, activate it.
Related templates
Other templates that use similar nodes or integrations.

PDF invoice to Excel, sent by email
Turn each PDF invoice into an Excel file with its lines, net, VAT and total, and email the download link to accounting.

AI invoice extraction with human review when in doubt
AI extracts the invoice data; reliable ones go straight to the sheet, and if confidence is low or fields are missing they are set aside and you get a Telegram alert to review them.

Supplier PDF invoice to a Holded purchase with validation
AI reads the PDF invoice, validates amounts and required fields, finds or creates the supplier in Holded and records the purchase; if anything fails it alerts you on Telegram.
Try it in under 5 minutes
Create the template in your account, connect your credentials and activate it when you are ready.
Use this template