Power Automate Extract Text from PDF (2026 Guide)

Power Automate Extract Text from PDF

Need to extract text from a PDF in Power Automate? You’re not alone. It’s one of the most searched automation tasks, and for good reason. Whether you’re processing invoices, parsing resumes, or pulling data from contracts, getting text out of PDFs is the backbone of document automation.

In this guide, we’ll cover everything from the built-in Power Automate actions to handling the tricky cases (scanned PDFs, images, messy layouts) where native tools fall short. We’ll also show you how to plug in AI-powered extraction using ParserBee’s API to get clean, structured JSON data — all without writing a single line of code.

The Flow at a Glance

The complete working flow is four steps:

  1. Trigger — “When a file is created” (SharePoint) or “When a new email arrives” (Outlook)
  2. HTTP action — sends the PDF to ParserBee’s extraction API
  3. Parse JSON — turns the response into fields your flow can use
  4. Use the data — add an Excel row, post to Teams, create a Dataverse record

Jump straight to the step-by-step setup ↓ or start with the native options below if you only need raw text from digital PDFs.

We’ve also put together a complete guide to Zapier PDF data extraction if you use Zapier instead of Power Automate, or visit the ParserBee blog for other guides.

Power Automate offers different tools for each of these scenarios. The right approach depends on what kind of PDF you’re working with and what you want to do with the extracted data.

Method 1: Using the Built-in “Extract Text from PDF” Action

Power Automate Desktop includes a native “Extract text from PDF” action. Here’s how to use it:

Steps:

  1. Open Power Automate Desktop and create a new flow
  2. Add the “Extract text from PDF” action
  3. Set the PDF file path (from a local folder, SharePoint, OneDrive, etc.)
  4. Choose the page range (all pages or specific pages)
  5. Run the flow – the extracted text is stored in a variable
Power Automate Desktop Extract Text from PDF action showing parameters including PDF file path, page range from 3 to 6, and ExtractedPDFText variable output

What It Does Well:

  • ✅ Works great for digitally created PDFs (from Word, Excel, Google Docs, etc.)
  • ✅ Fast and free. No premium connectors needed
  • ✅ Simple to set up for basic text extraction

What It Doesn’t Do:

  • ❌ Cannot read scanned PDFs or image-based documents
  • ❌ Returns raw unstructured text. No field-level data extraction
  • ❌ No support for extracting data from images (PNG, JPEG, WebP)
  • ❌ Struggles with complex layouts, multi-column PDFs, and tables

Bottom line: If your PDFs are digitally generated and you just need the raw text, this built-in action works fine. But if you need structured data or have scanned documents, keep reading.


Method 2: Using AI Builder for Scanned PDFs and Images

For scanned PDFs and image-based documents, Power Automate offers AI Builder — Microsoft’s AI add-on that includes OCR (Optical Character Recognition).

Steps:

  1. In your cloud flow, add the “Recognize text in an image or PDF document” action (AI Builder)
  2. Provide the file content from your trigger (e.g., “When a file is created in SharePoint”)
  3. AI Builder uses OCR to read the text
  4. Access the extracted text in subsequent actions
Power Automate Cloud flow showing the AI Builder Recognize text in an image or PDF document action configured with file content input

What It Does Well:

  • ✅ Can read text from scanned PDFs and images
  • ✅ Integrates directly into cloud flows

What It Doesn’t Do:

  • ❌ Requires a premium license (AI Builder credits)
  • ❌ Returns raw OCR text. Still no structured data extraction
  • ❌ Accuracy varies significantly based on document quality
  • ❌ Slow processing. Large PDFs can take minutes or even hours
  • ❌ Has file size and page count limits
  • ❌ Cannot extract data from forms or extract specific fields

The catch with both native methods: they hand you a raw block of text, not usable data. To pull out an invoice number, a date, or a total, you’re left writing fragile regex patterns and string functions that break the moment a layout changes. Scanned documents either return nothing (native action) or inconsistent OCR text at premium cost (AI Builder). And neither offers template-based extraction for documents you process every day.

This is exactly the gap that ParserBee fills – and it works right inside your Power Automate flows.

Method 3: Using ParserBee API in Power Automate (Recommended)

ParserBee is an AI-powered document parsing platform that extracts structured data from any document – PDFs, scanned documents, images and phone photos (PNG, JPEG, WebP, HEIC), Word, PowerPoint, Excel, CSV, text, HTML and email files (.eml) – and returns clean JSON output.

The best part? You can call ParserBee’s API directly from Power Automate using the HTTP connector. No coding required.

How It Works:

  1. Create a template on ParserBee – define the exact fields you want to extract (e.g., invoice_number, date, total_amount, line_items)
  2. Copy your API key (created automatically when you sign up) from Settings, API Keys
  3. Add an HTTP action in Power Automate to call ParserBee’s extraction API
  4. Get structured JSON back – ready to use in your flow

Not sure you need an automated flow at all? If your documents arrive in batches rather than one by one in real time, you can skip Power Automate entirely. ParserBee’s Data Lab lets you drag up to 100 documents into the dashboard, extracts them all with your template, and exports the results to Excel, CSV or Google Sheets. No flow, no HTTP action, and no Power Automate Premium licence needed.

What Makes ParserBee Different:

FeatureNative Power AutomateAI BuilderParserBee API
Digital PDFs
Scanned PDFs✅ (with limits)
Images (PNG, JPEG, WebP)✅ (with limits)
Word, Excel, CSV and email files
Structured JSON output
Custom extraction templatesLimited
Multi-record extraction
Nested/complex fields
Works in Power Automate✅ Native✅ Native✅ Via HTTP connector
No-code setup
PricingFreePremium (AI Builder credits)Free tier available

Get started with ParserBee for free →


Step-by-Step: Set Up ParserBee in Power Automate

Here’s exactly how to set up AI-powered document extraction in your Power Automate flow using ParserBee. No coding required.

Step 1: Create Your ParserBee Account and Template

You do not have to build the template from scratch. The Template Library in the dashboard sidebar includes more than 80 ready-made templates, including an Invoice template: open it, click Customize & Create, and the fields arrive pre-filled for you to review, adjust and save. The steps below show the manual route, and the field descriptions apply either way.

Ready-made Invoice template in the ParserBee Template Library with the Customize and Create button
Screenshot
  1. Go to app.parserbee.com and create a free account
  2. Navigate to Dashboard → Create Template
  3. Give your template a name (e.g., “Invoice Extraction”)
  4. Add the fields you want to extract. For an invoice, you might add:
    • invoice_number (string)
    • date (string)
    • vendor_name (string)
    • total_amount (number)
    • line_items: set the Field Type to List (Repeating Rows). An invoice usually contains several rows of products or services; a List field tells ParserBee to extract every row as its own entry, one per line item, instead of only the first one. Inside the List, add three fields: description (Text), quantity (Number), unit_price (Number).
  5. Click Create Template and note down the Template ID
ParserBee field type dropdown with List (Repeating Rows) selected for the line_items invoice field
Screenshot
ParserBee dashboard showing Quick Actions, Total Requests, Success Rate, and Templates stats alongside recent invoice processing activity
ParserBee Template Details page showing the Invoice Data Extraction template with 5 fields, created 25 March 2026, and its Template ID
ParserBee schema fields editor showing five invoice extraction fields: invoice_number, vendor_name, invoice_date, total_amount, and line_items all marked as Required

The most important part: write a clear description for every field

ParserBee’s AI decides what to extract by reading your field descriptions. A vague or empty description is the single most common reason for poor extraction results. Write each description as if you were explaining to a new assistant where to find the value on the document.

Here are ready-to-use descriptions for the invoice template above. Copy them into the Field Description box as you create each field:

FieldDescription to paste
invoice_numberThe unique invoice number printed near the top of the invoice, usually labelled Invoice No, Invoice # or Reference. Example: INV-2026-0342
dateThe date the invoice was issued, usually printed near the invoice number. Return it in YYYY-MM-DD format.
vendor_nameThe name of the company that issued the invoice, usually shown in the header or logo area at the top.
total_amountThe final total payable including tax, usually the last and largest amount at the bottom of the invoice. A number only, without currency symbols.
line_itemsThe table of products or services on the invoice. Each row of the table is one item.
line_items: descriptionThe name or description of the product or service in this row of the invoice table.
line_items: quantityThe quantity in this row of the invoice table. A number only.
line_items: unit_priceThe price per unit in this row of the invoice table. A number only, without currency symbols.

Adapt the wording to your own documents: mention the label the value appears under, where it sits on the page, and the format you want back. The clearer the description, the more accurate the extraction.

Test before you build the flow: open your saved template and use the built-in test panel to upload one sample invoice. You will see the extracted results in seconds. If a field comes back empty or wrong, improve its description and test again. Getting the template right here is far faster than debugging it inside a Power Automate flow later.

ParserBee template test panel showing extracted invoice data from a sample PDF before building the Power Automate flow
Screenshot

Step 2: Build Your Power Automate Flow

Microsoft Power Automate Create page showing options to start a flow from blank including Automated cloud flow, Instant cloud flow, Desktop flow, and flow templates

Here’s the flow structure:

2a. Set Up Your Trigger

Choose a trigger based on your use case:

  • “When a file is created (SharePoint)” – for documents uploaded to SharePoint
  • “When a new email arrives (Outlook)” – for email attachments
  • “Manually trigger a flow” – for testing
Power Automate Build an automated cloud flow dialog with flow name set to Invoice Data Extraction and SharePoint When a file is created trigger selected

2b. Add the HTTP Action to Call ParserBee

Power Automate Add an action panel with HTTP connector search results showing HTTP, HTTP Webhook, HTTP plus Swagger and HTTP With Microsoft Entra ID options
  1. Add a new action → Search for “HTTP” → Select “HTTP” (premium connector)
  2. Configure it as follows:

Method: POST

URI: https://app.parserbee.com/api/v1/extract

Your API key was created automatically when you signed up. Find it in the ParserBee dashboard under Settings, API Keys, and use the copy button next to the key.

ParserBee Settings page showing the API Keys tab with the API Credentials section and a masked API key for use with Power Automate

Headers:

KeyValue
x-api-keyyour-parserbee-api-key

Body (using file_url):

If your file is accessible via a URL (e.g., SharePoint link):

{
  "template_id": "your-template-id",
  "file_url": "@{triggerOutputs()?['body/MediaUrl']}"
}
Power Automate HTTP action configured with ParserBee API endpoint, POST method, x-api-key header, and JSON body containing template_id and file_url fields

Body (using file upload):

If you want to upload the file directly, change the content type to multipart/form-data and include:

  • template_id: Your template ID
  • file: The file content from your trigger

2c. Parse the JSON Response

  1. Add a “Parse JSON” action after the HTTP step
  2. Use this schema:
{
  "type": "object",
  "properties": {
    "success": { "type": "boolean" },
    "request_id": { "type": "string" },
    "data": { "type": "object" },
    "credits_remaining": { "type": "integer" },
    "processing_time_ms": { "type": "integer" },
    "usage": {
      "type": "object",
      "properties": {
        "pages_processed": { "type": "integer" },
        "doc_size_bytes": { "type": "integer" }
      }
    }
  }
}

2d. Use the Extracted Data

Now you can use the extracted fields anywhere in your flow:

  • Save to Excel or SharePoint – Map each field to a column
  • Send an email notification – Include the extracted data in the email body
  • Create a record in Dynamics 365 or Dataverse – Populate fields automatically
  • Post to Microsoft Teams – Notify your team with the extracted information
  • Update a database – Write data to SQL Server or any connected system

Get started with ParserBee for free →


Use Case Examples

The same four-step flow handles most business documents. Change the template and the trigger, and everything else stays identical:

Use caseTriggerTemplate fieldsNext step in flow
Invoice processingNew PDF in SharePointinvoice_number, vendor_name, invoice_date, total_amount, line_items (List)Add row to Excel, send approval email
Resume/CV parsingCandidate upload via Microsoft Formsname, email, phone, work_experience (List), skills (List)Create record in ATS or SharePoint list
Receipt extractionEmployee forwards receipt via emailmerchant_name, date, total, payment_methodAdd row to expense sheet
Contract parsingNew contract in SharePoint folderparties (List), effective_date, expiration_date, contract_valueCreate tracker record, set renewal reminder

Receipts work even from phone photos (JPEG, PNG, HEIC) and scanned PDFs. Ready-made templates for all four document types are available in the Template Library.

What a response looks like – here is the JSON ParserBee returns for the invoice example:

{
  "success": true,
  "data": {
    "invoice_number": "INV-2026-0342",
    "vendor_name": "CloudTech Solutions",
    "invoice_date": "2026-03-10",
    "total_amount": 4950.00,
    "line_items": [
      {
        "description": "Cloud Hosting (March 2026)",
        "quantity": 1,
        "unit_price": 3000.00
      },
      {
        "description": "Technical Support Package",
        "quantity": 1,
        "unit_price": 1500.00
      }
    ]
  },
  "credits_remaining": 487,
  "processing_time_ms": 2340
}

ParserBee vs Native Power Automate PDF Extraction

Here’s a side-by-side comparison to help you decide:

When to Use the Native “Extract Text from PDF” Action:

  • ✅ Your PDFs are always digitally generated (never scanned)
  • ✅ You only need the raw text as a block of unformatted content
  • ✅ You have a simple, consistent document layout
  • ✅ You are comfortable writing regex or string operations to parse the output

When to Use ParserBee API:

  • ✅ You need structured JSON data – not raw text
  • ✅ You process scanned PDFs or image-based documents
  • ✅ You want to extract data from images (PNG, JPEG, WebP)
  • ✅ You need to handle complex layouts, tables, or multi-page documents
  • ✅ You want a template-based approach – define fields once, extract automatically
  • ✅ You need nested data structures (e.g., line items on an invoice)
  • ✅ You want to process the same document type repeatedly with consistent results
  • ✅ You want a no-code solution that doesn’t require regex or string manipulation

Supported File Types

ParserBee supports all the common document formats you’ll encounter:

FormatExtensionUse Case
PDF.pdfInvoices, contracts, reports, resumes
PNG.pngScreenshots, scanned documents, captured images
JPEG.jpg.jpegPhotos of receipts, ID cards, documents
WebP.webpWeb-optimized document images
HEIC.heicPhotos taken on iPhone and modern smartphones
Word.doc.docxLetters, reports, contracts, agreements
PowerPoint.ppt.pptxSlide decks and presentations
Excel.xls.xlsxSpreadsheets, financial data, tabular reports
CSV.csvExported data, tables, bulk records
Text.txtPlain text documents and notes
HTML.html.htmWeb pages and saved online documents
Email.emlEmail messages and their attachments

Maximum file size: 50 MB


Frequently Asked Questions

Can I use Power Automate to extract text from a scanned PDF?

Yes, but not with the built-in “Extract text from PDF” action – that only works for digitally created PDFs with selectable text. For scanned PDFs, you have two options:

  • AI Builder – Microsoft’s OCR add-on (requires premium license, returns raw text only)
  • ParserBee API – AI-powered extraction via the HTTP connector (returns structured JSON data, free tier available)

Can Power Automate extract text from images?

The built-in PDF actions don’t support images. You can use AI Builder’s “Recognize text in an image” action (premium), or call the ParserBee API which supports PNG, JPEG, and WebP images natively.

How do I extract specific fields (like invoice number or date) from a PDF in Power Automate?

The native actions only return raw text – you’d need to write string functions or regex to parse individual fields. With ParserBee, you define the exact fields you want in a template, and the API returns them as a structured JSON object. No string parsing needed.

What happens if the PDF has tables?

ParserBee handles tables natively. You can define array-type fields in your template (e.g., line_items as a LIST which works as an array of objects), and ParserBee will extract each row as a structured object with the fields you specified.

Is the HTTP connector in Power Automate a premium connector?

Yes, the HTTP connector requires a Power Automate Premium license. However, if you’re processing PDFs at any meaningful scale, you likely already have a premium plan. Power Automate Desktop users can call the same API with the “Invoke web service” action instead. And if you do not have a Premium licence at all, ParserBee’s Data Lab covers batch processing entirely in the browser, with no connector needed.

Is ParserBee free to use?

ParserBee offers a free tier with credits to get started. You can create templates, generate an API key, and start extracting data immediately. Paid plans are available for higher volume usage.

Conclusion

Extracting text from PDFs in Power Automate doesn’t have to be painful. Here’s the simple decision tree:

  1. Digital PDFs + raw text only? → Use the built-in “Extract text from PDF” action
  2. Scanned PDFs or images? → You need OCR – either AI Builder (premium, raw text) or ParserBee (structured data)
  3. Need structured data (specific fields)? → Use ParserBee API via the HTTP connector – it’s the only option that gives you clean JSON without writing regex
  4. Have a batch of files and no real-time trigger? → Upload them to ParserBee’s Data Lab and export straight to Excel. No flow needed.

ParserBee works inside your existing Power Automate flows. There’s nothing to migrate, no workflows to rebuild. Just add one HTTP action, point it at ParserBee’s API, and you’ll go from raw blobs of text to structured, usable data in seconds.

Get started with ParserBee for free →


Have questions about using ParserBee with Power Automate? Reach out to us at [email protected] – we’re happy to help you set up your first flow.

Table of Contents