Use Case

Power Automate PDF Conversion

Extract structured data from PDFs in Microsoft Power Automate - no code required. Use the HTTP connector to convert PDFs from SharePoint, Outlook, and Teams into JSON, text, CSV, or Markdown.

Why use PDFPipe with Power Automate?

Power Automate is great at connecting Microsoft services and triggering workflows. But it has no built-in way to extract structured data from PDFs. The AI Builder PDF model requires a premium license and only works with predefined templates. Custom connectors for PDF parsing are complex to build and maintain.

PDFPipe works with Power Automate's HTTP action. When a PDF lands in SharePoint or a link to one arrives in your Outlook inbox, your flow calls PDFPipe and gets back the PDF's text, page by page, which you can route anywhere: Excel, Dataverse, SQL Server, or another API.

No AI Builder credits. No custom code. Just an HTTP action that turns a public PDF URL into text, JSON, Markdown, or CSV. Two things to know: the HTTP action needs a Premium or per-user licence, and the URL must be reachable without a login - PDFPipe fetches it from its own servers and does not send your Microsoft 365 cookies, so use an "Anyone with the link" sharing link. PDFPipe returns the text; it does not pull out fields like invoice totals - hand the text to AI Builder or Copilot for that.

How it works

Add an HTTP action to your flow. PDFPipe handles the PDF conversion.

1. Configure the HTTP action

HTTP action configuration
{
  "method": "POST",
  "uri": "https://api.pdfpipe.dev/v1/convert",
  "headers": {
    "Authorization": "Bearer pk_...",
    "Content-Type": "application/json"
  },
  "body": {
    "url": "@{body('Create_sharing_link')?['link/webUrl']}",
    "format": "json",
    "returnMethod": "inline"
  }
}

2. Get the response

JSON response
{
  "requestId": "req_a1b2c3...",
  "status": "complete",
  "format": "json",
  "pagesProcessed": 3,
  "creditsUsed": 1,
  "contentType": "application/json",
  "content": "{\"pages\":[{\"pageNumber\":1,\"text\":\"...\"}],...}"
}

Complete flow example

Here is a typical Power Automate flow that processes invoices uploaded to SharePoint. The flow triggers on new files, sends the PDF to PDFPipe, and routes the extracted data wherever you need it.

  • SharePoint, Outlook, and Teams triggers
  • Built-in HTTP action (Premium / per-user licence)
  • JSON, text, CSV, or Markdown output
  • Route page text to Excel, Dataverse, or SQL Server
  • Works with any public PDF URL, including auto-download links
Power Automate flow steps
Step 1: Trigger
  "When a file is created in a folder" (SharePoint)
  - Site: your-company.sharepoint.com
  - Library: Invoices
  - Folder: /Incoming

Step 2: Create sharing link for a file or folder
  - Link type: View
  - Link scope: Anyone with the link
  (PDFPipe fetches the URL from its own servers, so
   a tenant-only link would get a login page.)

Step 3: HTTP Action
  Method: POST
  URI: https://api.pdfpipe.dev/v1/convert
  Headers:
    Authorization: Bearer pk_...
    Content-Type: application/json
  Body: {
    "url": "@{body('Create_sharing_link')?['link/webUrl']}",
    "format": "json",
    "returnMethod": "inline"
  }

Step 4: Parse JSON
  Content: @{body('HTTP')}
  Schema: (use "Generate from sample" with the response)

Step 5: Parse inner JSON (content is a string)
  Content: @{json(body('Parse_JSON')?['content'])}
  Schema: { pages: [{ pageNumber, text }], metadata, totalPages, extractedAt }

Step 6: Use the data
  - Save to Excel, update a database, send via Teams
  (If you omit returnMethod or get returnMethodFallback, use a second HTTP GET to resultUrl instead.)
Outlook trigger (link in the email body)
Trigger: "When a new email arrives" (Outlook)
  - Subject filter: "Invoice"

Step 2: Compose
  - Inputs: first https:// link ending in .pdf from
    @{triggerOutputs()?['body/body']}
  (Attachments are not URLs. Either use a public link
   from the email body, or save the attachment to a
   SharePoint folder and create an "Anyone with the
   link" sharing link first.)

Step 3: HTTP Action
  Method: POST
  URI: https://api.pdfpipe.dev/v1/convert
  Headers:
    Authorization: Bearer pk_...
    Content-Type: application/json
  Body: {
    "url": "@{outputs('Compose')}",
    "format": "text",
    "returnMethod": "inline"
  }

Works with any trigger that gives you a URL

PDFPipe takes a URL, not file bytes. Any Power Automate trigger that produces a public PDF link works directly; for SharePoint, OneDrive, and Teams files, add a "Create sharing link" step set to "Anyone with the link" first. Email attachments need to be saved somewhere that can produce such a link.

SharePointOutlookTeamsOneDriveFormsDataverseExcel Online

Start converting PDFs in Power Automate today

Free tier includes 300 requests per month. No credit card required.