Skip to main content

AI - Document Parser in Power Automate

What this action does

PDF4me AI - Document Parser runs a saved Analyzer from the PDF4me dashboard against any document and returns the extracted data as Parsed Document Data dynamic JSON inside a Power Automate flow. One action covers invoices, purchase orders, receipts, contracts, lab reports, ID cards, or any custom form, just point Customisation Note at the matching Analyzer Id (Parse for a single schema, Classify for many document variants). Fields land as individually mappable tokens you can drop into SharePoint, Excel, Dataverse, Outlook, or any downstream Microsoft 365 step.

Related Blog Posts(1)

Sample Invoice for Testing

Use this sample vendor invoice to confirm the action works end-to-end before pointing your flow at live data. Upload it to SharePoint, OneDrive, or Dropbox, map File Content from Get file content, set File Name to sample-vendor-invoice.pdf, and type default_invoice_extraction in Customisation Note. The action returns Parsed Document Data with fields such as invoiceNumber, vendorName, and billTo.

Authenticating Your API Request

To call PDF4me through Power Automate, the flow needs a valid PDF4me API key on the PDF4me Connect connector. Get or rotate your key from the developer dashboard.

Set up your Analyzer first

Dashboard URLs you will use in this guide:
Create your Analyzer first (required for every platform)
AI - Document Parser runs a saved Analyzer from the PDF4me developer dashboard. Pick Parse for one document schema, or Classify to route many variants (Client ABC, Client XYZ, generic invoice) in a single call. The same Analyzer Id works in Make, Zapier, Power Automate, n8n, and the REST API.

Important Facts You Should Not Miss

The Analyzer lives in the dashboard, the flow just references it
You define the schema (fields, types, descriptions) once on the Analyzer list and Analyzer detail pages. The Power Automate action reads Customisation Note to pick which Analyzer to run. Change the Analyzer schema later and every flow pointing at the same Id picks it up immediately, no flow rebuild.
Parsed Document Data is fully dynamic JSON
The output object has one property per field defined in your Analyzer schema. Power Automate exposes those properties directly in the dynamic content panel of every downstream action. No Parse JSON step required.
Parse vs Classify is decided by the Analyzer, not the action
Same action, two analyzer modes. A Parse Analyzer returns the fields from its single schema. A Classify Analyzer routes the document to the best-matching Schema and returns its Classification Name plus the matched Schema's extracted fields. Switch behaviour by switching the Analyzer Id in Customisation Note.
Power Automate PDF4me AI - Document Parser Parameters tab with File Content mapped from Dropbox File Content, File Name Test.pdf, Advanced parameters showing 1 of 1, and Customisation Note set to default_invoice_extraction

Parameters tab: map File Content from a prior Get file content step, set File Name (use sample-vendor-invoice.pdf with the recommended sample), expand Advanced parameters, then set Customisation Note to default_invoice_extraction or your custom Analyzer Id.

Parameters

Dashboard URLs you will use in this guide:

Required in the action: File Content (binary), File Name (string with extension), and Customisation Note (the Analyzer Id from the PDF4me dashboard, lives under Advanced parameters but is effectively required, the action has nothing to extract against without it).

ParameterRequiredWhat it doesExample
File ContentYesBinary content of the source document. Map from a previous Get file content step (SharePoint, OneDrive, Outlook attachment, Dropbox, or any cloud-storage connector that exposes raw bytes). Try the sample-vendor-invoice.pdf above for your first run.File Content
File NameYesSource document filename with extension. Used for format detection and for tracking the call in logs. Accepts .pdf, .png, .jpg, .jpeg. Match the name of the file you uploaded (for example sample-vendor-invoice.pdf).sample-vendor-invoice.pdf
Customisation NoteYes (Advanced)The Analyzer Id from the PDF4me dashboard. Create Analyzers at https://dev.pdf4me.com/dashboard/#/ai-document-parser/ (+ Add), then edit schemas on https://dev.pdf4me.com/ai-document-parser/?id=<analyzer-guid>. Use default_invoice_extraction for invoices, a Parse Analyzer Id for one schema, or a Classify Analyzer Id for several variants.default_invoice_extraction

Customisation Note: how Analyzer Ids map to behaviour

Parse Analyzer IdOne schema, extracts the fields you defined
Best when every document you process shares the same layout family (e.g. only your own invoices). Output JSON contains exactly the properties you described in fields on the Analyzer.
Classify Analyzer IdMany schemas, routes and extracts in one call
Best when one flow must handle several variants (Client ABC, Client XYZ, generic invoice). The AI matches the incoming PDF to the most fitting Schema by its Classification Prompt, then returns the matched Classification Name plus that Schema's extracted fields.
default_invoice_extractionBuilt-in invoice Analyzer
Ready-to-use for typical vendor invoices. Returns invoiceNumber, vendorName, billTo, dates, and related header fields without building a custom schema first.

Output

The action returns Parsed Document Data as dynamic JSON. Every property defined in your Analyzer schema appears as an individually mappable token in the dynamic content panel of every downstream action. Response headers also carry standard Power Automate routing metadata.

Power Automate AI - Document Parser run output with statusCode 200 and body JSON containing invoiceNumber INV-3337, invoiceDate January 25 2016, vendorName DEMO - Sliced Invoices, vendorAddress, vendorEmail admin@slicedinvoices.com, billTo Test Business, billToAddress, and billToEmail test@test.com from default_invoice_extraction on the sample vendor invoice

Successful run on the sample vendor invoice with default_invoice_extraction. statusCode 200; Parsed Document Data exposes one property per Analyzer field for downstream mapping.

Field (sample run)Example value
invoiceNumberINV-3337
invoiceDateJanuary 25, 2016
vendorNameDEMO - Sliced Invoices
vendorEmail[email protected]
billToTest Business
billToEmail[email protected]
paymentDeadlineJanuary 31, 2016
OutputTypeWhat it contains
statusCodeInteger200 on success, 400 for a malformed request body, 500 on a server-side error.
headersObjectStandard Power Automate / Microsoft routing headers, including Content-Type application/json.
Parsed Document DataDynamic JSONThe body object. One property per field defined in your Analyzer schema (string, number, date, or nested table). For Classify Analyzers, the Classification Name of the matched Schema is also present.

Quick Setup

  1. Build your Analyzer first. Open the Analyzer list, click + Add, type a clear Analyzer Id, pick Parse or Classify, save the row, then add a Document Schema on the Analyzer detail page. See the Parse setup guide or Classify setup guide for the full walkthrough.
  2. In your Power Automate flow click + New step, search PDF4me, pick AI - Document Parser.
  3. Sign in to PDF4me Connect with your API key.
  4. File Content. Map from a previous Get file content step (SharePoint, OneDrive, Outlook attachment, Dropbox, or any cloud-storage connector).
  5. File Name. Map the source filename with extension (sample-vendor-invoice.pdf, invoice.png, etc).
  6. Advanced parametersCustomisation Note. Type the Analyzer Id from step 1 (for example default_invoice_extraction, client_invoices, or purchase order parser).
  7. Save the flow and test. The action returns Parsed Document Data with one property per field in your schema. Map fields into the next step using the dynamic content panel.

Workflow Examples

Workflow ExamplesOpen by default. Four common AI - Document Parser patterns in a 2x2 grid.
Vendor invoices to SharePoint list
  1. Trigger on new file in a SharePoint Incoming Invoices library.
  2. Get file content for the new PDF.
  3. Run AI - Document Parser with Customisation Note set to your Parse Analyzer Id invoice_parser.
  4. SharePoint Create item in the AP list with InvoiceNumber, VendorName, TotalAmount, DueDate mapped from the dynamic JSON.

Impact: Manual data entry replaced by zero-touch AP intake.

Mixed-vendor inbox with Classify
  1. Outlook When a new email arrives with attachment trigger.
  2. Get attachment content as binary.
  3. Run AI - Document Parser with Customisation Note set to a Classify Analyzer Id (client_invoices) holding one Schema per vendor.
  4. Switch on the returned Classification Name and route Client ABC fields to one Dataverse table, Client XYZ to another.

Impact: One Power Automate flow handles every vendor without manual sorting.

Purchase orders to Excel for review
  1. Trigger on new PDF in a Dropbox PO inbox.
  2. Get file content.
  3. Run AI - Document Parser with Customisation Note set to purchase order parser.
  4. Excel Add a row to a table with SalesOrderNumber, AgentName, OrderDate, TotalAmount mapped from the response.

Impact: Operations team sees every PO without opening a single PDF.

Customer onboarding form to Dynamics 365
  1. Power Automate When a HTTP request is received trigger from your portal.
  2. Decode the uploaded PDF.
  3. Run AI - Document Parser with Customisation Note set to a Parse Analyzer Id you built for your custom onboarding form.
  4. Dataverse Add a new row for a Contact, mapping CompanyName, ContactPerson, Email, TaxId, BillingAddress directly.

Impact: Customer self-service onboarding without manual CRM entry.

Frequently Asked Questions

What is the difference between AI - Document Parser and AI-Invoice Parser?+
AI-Invoice Parser uses a fixed schema tuned for invoices (vendor, line items, totals, dates). AI - Document Parser is schema-driven: it runs whatever Analyzer you reference by Customisation Note, built once in the PDF4me dashboard. The same action handles purchase orders, receipts, contracts, custom forms, lab results, ID cards, or anything else you describe in a schema. Pick AI - Document Parser whenever you need flexibility or a non-invoice document type.
Where do I build the Analyzer?+
At https://dev.pdf4me.com/dashboard/#/ai-document-parser/ (Analyzer list, + Add) and https://dev.pdf4me.com/ai-document-parser/?id=<analyzer-guid> (Analyzer detail for schemas). Two analyzer types: Parse (one schema) and Classify (many variants). Reference the Analyzer Id in the Customisation Note field.
What does Customisation Note actually do?+
Customisation Note tells the action which saved Analyzer to apply to your document. Type the Analyzer Id you created in the dashboard (for example default_invoice_extraction, client_invoices, or purchase order parser). The Analyzer schema controls every extracted field; changing this single value lets one Power Automate flow handle multiple document types.
What format is the output and how do I map fields downstream?+
Parsed Document Data is dynamic JSON with one property per field defined in your schema. In SharePoint Create item, Excel Add a row, Dataverse Add a new row, or any downstream action, pick the matching property from the dynamic content panel and drop it into the target column. No Parse JSON step needed.
Which file types does the action accept?+
PDF, PNG, JPG, and JPEG. The Get file content action of any cloud-storage connector that exposes binary file bytes can feed AI - Document Parser. Scanned PDFs work because the AI engine handles OCR internally.
Can one flow process several document variants in one run?+
Yes, with a Classify Analyzer. Build one Classify Analyzer with one Schema per variant (Client ABC, Client XYZ, generic invoice). The AI picks the best-matching Schema at runtime and the action returns its fields plus the Classification Name. Switch on the Classification Name in a Power Automate switch step to route each result to the right downstream destination.
What happens on failure?+
Status code 400 means the request body was malformed (missing File Content, invalid filename, or an Analyzer Id that does not exist in your account). Status code 500 means a transient server-side error, your flow should retry. Use a Try / Catch / Finally scope around the action for production-grade error handling.
Will the same Analyzer work from Make, Zapier, n8n, or the REST API?+
Yes. The Analyzer Id is shared across every platform. Once you save an Analyzer in the dashboard you can call it from Power Automate, Make, Zapier, n8n, or the REST API by passing the same Id. Schema changes propagate to every platform without rewiring.

Same Task on Other Platforms

Get Help