Send Paige documents to SharePoint with Power Automate
Build the Power Automate flow that watches Paige's SFTP export folder, reads each document's field values, creates the PDF in a SharePoint library with a meaningful name, and fills the library's metadata columns — vendor, invoice number, date, amount — from what Paige extracted.
Before you begin
- A SharePoint Online document library with the columns you want filled already created (text, date, number, or choice columns)
- A Power Automate license that includes premium connectors (the SFTP - SSH connector is premium; SharePoint is standard)
- An SFTP server Paige can reach, with a folder for this scan job
- A Paige scan job with document types and fields set up
At the end of this guide, every document Paige finishes appears in your SharePoint library within a few minutes, named from its own contents (INV-20441 – Acme Office Supply.pdf instead of a scanner's serial number), with the library's columns filled from Paige's field values — ready for views, filters, and search.
The flow is six steps: SFTP trigger → keep only the data file → Parse JSON → get the PDF → SharePoint Create file → Update file properties. Paige uploads the PDF before the data file, so the PDF is always there when the flow fires.
Step 1 — Point Paige at your SFTP server
In Paige, open Settings (the gear at the bottom of the left menu — administrators only), pick the scan job, and choose Export.
Click the FTP card. Enter the FTP Address, Port
22, Username, Password, and in FTP Folder Path a folder for this scan job, such as/paige/invoices.Click Test Connection. What you should see:
FTP connection successful!Connect —Connected to FTP Server!and a green Connected label on the card.Turn on Enable Auto Export. Under Auto Export Settings, switch on Only documents having a document type, set Auto Field Entry Complete to Yes, and set Human Reviewed to Reviewed if a person checks documents in Paige before they go out. Click Save.
Open port 22 on your firewall to Paige's address ranges — Outbound IP ranges for firewall allow-lists.
Step 2 — Prepare the library
In the SharePoint library, add a column for each Paige field you want to keep: Settings (gear) > Library settings > Create column, or + Add column in the library view. Match types sensibly — Single line of text for names and numbers-as-text, Date and time for dates, Currency or Number for amounts. Note each column's exact name; the flow refers to them.
Paige exports every value as text exactly as it appears on the page. A Date and time or Currency column will reject 08/28/2026 or 1,284.50 as-is, so the flow converts those with expressions (below). If you'd rather keep it simple, make every column Single line of text — search and filtering still work.
Step 3 — Build the flow
In Power Automate, create an Automated cloud flow.
Trigger — SFTP - SSH: When a file is added or modified. Create the connection with Host server address, User name, Password, and Port number
22. In Folder, pick the scan job's folder. Leave Include file content on.
Condition: File name ends with
.json. Put steps 3–6 in the If yes branch. Without this the flow runs four times per document.
Parse JSON. Content: the trigger's File content. Schema: Use sample payload to generate schema and paste a real
.jsonfrom the folder. Each Paige field becomes a token underfields.
SFTP - SSH: Get file content using path. File path: the folder plus the parsed
pdf_file, for example/paige/invoices/@{body('Parse_JSON')?['metadata']?['pdf_file']}.
SharePoint: Create file.
Site Address: the site (for a Teams channel, the team's site).
Folder Path: the library, and a subfolder if you want one (for example
/Shared Documents/Invoices).File Name: build it from Paige fields, ending in
.pdf. A good default is invoice number and vendor:@{body('Parse_JSON')?['fields']?['Invoice Number']} - @{body('Parse_JSON')?['fields']?['Vendor Name']}.pdfSharePoint rejects
" * : < > ? / \ |in names; wrap the expression inreplace()calls for any character your data might contain. Two documents with the same name would collide — add the export timestamp frommetadata.export_timestampif that's possible.File Content: the output of step 4.
SharePoint: Update file properties.
Site Address: the same site. Library Name: the library.
Id: the ItemId output of the Create file step.
Then one input per column, mapped from the Parse JSON tokens. For typed columns, convert:
Column type Expression Single line of text the token as-is Date and time formatDateTime(body('Parse_JSON')?['fields']?['Invoice Date'], 'yyyy-MM-dd')— works when Paige's date is in a formformatDateTimerecognizes; otherwise use a Single line of text columnCurrency or Number float(replace(replace(body('Parse_JSON')?['fields']?['Total'], ',', ''), '$', ''))Choice the token as-is, when Paige's value matches a choice exactly (a Document Type column filled from metadata.document_typeis the classic use)
Save. What you should see: the flow checker reports no errors.
Step 4 — Test it
Process one document through the scan job in Paige (review it if you required review) and wait for the export.
Open the flow's 28-day run history. What you should see: one successful run, triggered by the
.jsonfile, within a few minutes of the export.Open the library. What you should see: the PDF with the name you built, and the columns filled. Open the file — the text is selectable, which is Paige's searchable layer.
When it doesn't work
| Symptom | Where to look |
|---|---|
| The flow never runs | Wrong folder in the trigger, or files landed in a subfolder (the trigger ignores subfolders). Files over 50 MB are skipped by this trigger — use the (properties only) trigger plus Get file content for very long documents. |
| Runs four times per document | The .json condition is missing or misplaced. |
| Create file fails with an invalid-name error | A field value contained a character SharePoint forbids. Add replace() calls to the File Name expression. |
| Update file properties fails on a column | The value doesn't fit the column type (text into a date or number column). Convert it, or change the column to text. |
| Columns stay empty but the file arrives | The Parse JSON schema was generated from a sample missing those fields. Regenerate it from a .json of the right document type, then re-map. |
| Nothing arrives from Paige | The auto-export criteria aren't met, or the document was processed before you enabled auto export. Export it once from the Documents page with the Export button and tick FTP. |
If the Paige side is the problem, contact Ademero support with the scan job name and the message from Test Connection.
