Power Automate Purchase Order Extraction: Extract PDF Data to Excel and SharePoint Lists

Power Automate can move a purchase order around, but it cannot read one out of the box. AI Builder ships prebuilt models for invoices and receipts, not for purchase orders, so most flows end at a PDF sitting in SharePoint with nobody able to get the line items out of it. PurchaseOrders reads the PDF, the scan, or the photo and returns the header fields and the full line grid as Excel, CSV, or JSON your flow can pick up. Upload a real purchase order below and see what comes back.

PDF, JPG, PNG, BMP, HEIC, TIFF

Submit your purchase orders

No model to train first
Reads scans and photos too
JSON, Excel, and CSV output
Every line item, not just the header

Why Power Automate Stalls on a Purchase Order PDF

Power Automate is genuinely good at moving work between systems. Reading a supplier document is the one step it was never designed for, and every available route has a catch that only shows up after you have built the flow.

AI Builder Has No Prebuilt Purchase Order Model

This is the wall most people hit. Microsoft publishes prebuilt document models for invoices and receipts. There is no prebuilt purchase order model. The prebuilt invoice model does return a field called PurchaseOrder, but that is only the PO reference number printed on an invoice, not an extraction of a purchase order document. Reading an actual supplier PO in AI Builder means training a custom model first.

A Custom Model Is a Project, Not an Action

Microsoft says you need five documents to get started with a custom document processing model, and you train and publish it before a flow can call it. That is fine for one supplier with one stable layout. With forty suppliers sending forty different order formats, you are maintaining a model library rather than running a flow.

The PDF Actions Cannot See a Scan

Power Automate Desktop has actions to extract text and tables from a PDF, and they work on digital PDFs where the text layer already exists. Point them at a scan or a phone photo of a mailed order and there is no text to extract. Half of the purchase orders in a typical receiving inbox fall into that half.

Table Extraction Breaks on Real Line Grids

Pulling a table out of a PDF assumes the table looks the same every time. Purchase order line grids do not. They wrap across page breaks, repeat headers, carry subtotal rows, and put the unit of measure in a different column depending on who sent it. A rule that works on one supplier quietly returns shifted columns on the next.

Everything Useful Here Is Premium

AI Builder is a premium capability that consumes credits per page, and the HTTP action you would use to call an outside service is a premium connector too. Whichever route you pick, PDF extraction in Power Automate is not something the seeded license covers, so it is worth knowing the cost shape before you build.

Throttles Show Up During Backlogs

Document processing calls are capped at 360 per environment per 60 seconds across the prebuilt models. A steady trickle of orders never notices. A migration or a month-end catch-up of several thousand documents does, and the flow starts failing in a way that looks like a bug rather than a limit.

Where PurchaseOrders Sits in a Power Automate Flow

PurchaseOrders is the reading step your flow is missing. It is not a certified connector and nothing installs in your tenant. You post a document to it and get back clean field-level data, then Power Automate does what it is good at with the result.

Reads the Document, Not Just the Text Layer

Digital PDFs from a supplier portal, scans of mailed orders, and photos taken at a receiving desk all go through the same extraction. There is no separate OCR step to wire in and no per-supplier template to train first.

Header Fields and the Whole Line Grid

PO number, vendor, order date, ship-to, requested by, terms, and the line table: item code, description, quantity, unit of measure, unit price, and extended amount, captured across page breaks.

JSON Over REST, Callable From an HTTP Action

Point an HTTP action at the API and the flow receives structured JSON it can parse with Parse JSON and write straight into a SharePoint list, a Dataverse table, or an Excel file.

Excel and CSV When You Would Rather Not Write a Flow

Export the batch to Excel or CSV, drop it in SharePoint or OneDrive, and let a simple flow pick it up. Plenty of teams never need the API at all.

Batches Without Watching a Throttle

Upload a stack of orders at once rather than metering them through a per-environment call limit during a cutover or a backlog.

Review Before the Flow Runs

Captured fields are shown on screen so you can fix an odd quantity or price before anything is exported. Correcting a value here takes seconds. Correcting it after a flow has written it into six places does not.

Why Choose PurchaseOrders?

  • Handles every supplier layout without a model to train per layout
  • Reads scanned and photographed orders, which the PDF actions cannot
  • JSON over REST for an HTTP action, or Excel and CSV for a file trigger
  • Output at line grain, so a SharePoint lines list populates in one loop

Five Ways to Read a Purchase Order PDF in Power Automate

Each route works somewhere and fails somewhere. This is the comparison worth making before you build, not after.

Route Reads which documents Handles scans Setup per supplier Where it falls down
AI Builder prebuilt models Invoices and receipts only Yes, reads scans None No purchase order model exists
AI Builder custom model Any layout you train Yes, reads scans Five documents per layout, then publish New supplier layout means new training
Power Automate Desktop PDF actions Digital PDFs with a text layer No None Returns nothing useful from a scan or photo
Extract tables from PDF action Simple, repeating tables No None Line grids that wrap or nest shift columns
PurchaseOrders via HTTP action Purchase orders in any layout Yes, reads scans and photos None Not a certified connector, you call the API

AI Builder model availability, file limits and throughput caps reflect Microsoft's published documentation for AI Builder document processing and can change between releases, so confirm the current limits for your tenant. PurchaseOrders.io extracts purchase order data into Excel, CSV, JSON, or an API response. It is not a certified Power Platform connector, does not install in your tenant, and does not create, approve, route, or match purchase orders.

From PDF Purchase Order to Your Flow in 3 Steps

No AI Builder model to train, nothing to install in your tenant.

1

Upload the Purchase Orders

Drag in PDFs, scans, or photos, one at a time or a whole batch pulled from the purchasing mailbox.

Tip: Mixed suppliers and mixed file types in the same upload are fine.

2

AI Extracts Every Field

The AI reads each order and returns the header fields and the complete line grid in seconds, one row per line item.

Tip: No model to train first, and no five sample documents per supplier.

3

Hand It to the Flow

Take JSON through the API from an HTTP action, or export Excel or CSV to SharePoint and let a file-created trigger do the rest.

Why Power Platform Teams Use PurchaseOrders

JSON
Straight into Parse JSON
Any
Supplier format or layout
PDF
Scans and photos read too

Security & Privacy

  • Bank-grade TLS encryption in transit
  • Files auto-deleted after processing
  • Your PO data is never sold or shared
  • US-based cloud infrastructure

Power Automate Purchase Order Extraction: Common Questions

Yes, but not with the standard actions alone. You need AI Builder document processing, which reads scans and understands layout, or the Power Automate Desktop PDF actions, which only work when the PDF already has a text layer, or an outside extraction API called from an HTTP action. All three are premium capabilities in some form.

No. Microsoft publishes prebuilt document models for invoices and receipts, and there is no prebuilt purchase order model. The prebuilt invoice model returns a field called PurchaseOrder, but that is the PO reference number quoted on an invoice, not an extraction of a purchase order document.

Get the data into a structured object first, then write it. Either train a custom AI Builder model, or post the file to an extraction API from an HTTP action and use Parse JSON on the response. Then loop the line items with Apply to each into an Excel table, keeping one row per line item rather than one row per order.

Trigger the flow when the file is created in the library, extract the fields, then create items in the list. Use two lists rather than one: an orders list keyed on the PO number and a lines list with a lookup back to it. A single list forces you to drop the line detail, which is usually the data you wanted.

Power Automate Desktop has an action to extract tables from a PDF, and it works on clean digital PDFs with simple repeating tables. Purchase order line grids often defeat it, because they wrap across pages, repeat headers, and carry subtotal rows. AI Builder or a purpose-built extraction service handles those cases more reliably.

In practice yes. AI Builder is a premium capability that consumes credits per page, and the HTTP action used to call an outside service is a premium connector. The seeded Power Automate license that comes with Microsoft 365 does not cover reading a purchase order PDF by either route.

Microsoft's guidance is that you need five documents to get started, and you train and then publish the model before a flow can call it. Note that this is per layout, so a supplier base sending many different purchase order formats turns into a set of models to build and maintain.

No, and we would rather say so than imply otherwise. There is no certified connector and no AppSource app. You call the REST API from a standard HTTP action, or you export Excel or CSV and let a file-created trigger pick it up. The orchestration stays entirely in your flow.