TriggerSharePoint — When an item is created (list: Purchase Requests)
ConnectorsSharePoint · Approvals · Word Online (Business) · OneDrive for Business · Office 365 Outlook
CategoryProcurement
The problem
Approval limits live in a policy document nobody reads; POs are typed manually.
The outcome
Delegation-of-authority limits enforced automatically, with a clear audit trail of who approved what.
Before you start
- An
Approval Matrixlist: min amount, max amount, approver email, level.
Build it step by step
- Find approvers — Get items from
Approval Matrixwhere the request amount falls in range.Expression / setting MinAmount le @{triggerBody()?['Amount']} and MaxAmount ge @{triggerBody()?['Amount']} - Approve in sequence — Loop through levels in order (Apply to each with concurrency 1) and Start and wait for an approval at each; stop on rejection.
- Number the PO — Generate a running PO number from a counter list or by date + ID.
Expression / setting concat('PO-', formatDateTime(utcNow(),'yyMM'), '-', padLeft(string(triggerBody()?['ID']), 4, '0')) - Create the PDF — Populate the PO Word template, convert to PDF, and save to the PO library.
- Send to supplier — Email the PO PDF to the supplier, or send via Acrobat Sign if supplier acknowledgement is required.
Connector action names are shown as they appear in Power Automate at the time of writing; Microsoft and Adobe occasionally rename actions or add new versions.
Error handling
padLeftisn't available in older environments — usesubstring(concat('0000', string(id)), length(string(id)), 4)instead.
Licensing
- Word template population is premium; everything else is standard.
Variations
- Replace Word with Adobe Document Generation for multi-line PO tables.
Common in: Manufacturing · Logistics · GLCs