Start form
Purchase requisition
Filled in by whoever starts the process
Finance package
Requesters submit a requisition; the purchasing policy sets approvals and quotes, and approved requests become a purchase order sent to the supplier.
About this package
Purchase requisition to PO takes a request from "I need this" to an issued purchase order. The requester fills in the start form: what they need, quantity, unit price, supplier, category, cost centre, the date they need it and a business justification.
The workflow totals the request, looks the supplier up in the Approved suppliers table (preferred status, payment terms, contract) and evaluates the Purchasing approval decision table, which sets the approver level and how many quotes procurement must collect. The manager approves or rejects with the cost centre and budget line. When quotes are needed, a buyer records up to three quotes and the selected supplier and amount.
The purchase order is then raised in your ERP with the supplier's terms and contract reference. The requester gets a confirmation and the supplier's orders address gets the PO. Edit the suppliers, the policy thresholds and the ERP request to match your purchasing rules.
Starts from a form: the requester fills in the requisition (Run dialog in the app, or your intranet posting to the start API).
Someone fills in a form to start it: the workflow inputs are the start form (Run dialog in the app, or your own portal posting to the API), and people complete User Task forms along the way.
The flow
Requisition submitted
The start form collects the item, quantity, unit price, supplier, category, cost centre, needed-by date and justification.
Check the supplier
The total is calculated and the Approved suppliers table says whether the supplier is preferred and which terms apply.
Apply the purchasing policy
The Purchasing approval decision table sets the approver level and the number of quotes required.
Manager approval
The manager approves or rejects, confirming the cost centre and budget line.
Collect quotes
When the policy needs quotes, a buyer records them and picks the supplier and amount for the PO.
Raise and send the PO
The PO is created in the ERP; the requester gets a confirmation and the supplier gets the order.
Forms
The workflow inputs are the start form: the Run dialog renders them, and your own portal can post the same fields. User Tasks show their fields and outcome buttons to the assignee.
Start form
Filled in by whoever starts the process
User Task
Approve {{requisition_ref}}: {{item_description}} ({{currency}} {{amount}})
User Task
Get {{quotes_required}} quotes: {{item_description}} ({{requisition_ref}})
From your code
Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.
REST
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
-H "Authorization: Bearer $USERTASKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id":"<workflow id>","variables":{"requester_email":"alex.morgan@example.com","item_description":"14-inch laptops for the new support team","quantity":10,"unit_price":1450,"currency":"NZD","supplier":"Contoso Computing","category":"it_hardware","cost_centre":"CC-310 Support","needed_by":"2026-11-20","justification":"Five new support hires start in November and five laptops are past their replacement date."}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input requester_email=alex.morgan@example.com --input item_description="14-inch laptops for the new support team" --input quantity=10 --input unit_price=1450 … --waitInbound webhook
usertasks webhooks create <workflow id> # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
-H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
-d '{"requester_email":"alex.morgan@example.com","item_description":"14-inch laptops for the new support team","quantity":10,"unit_price":1450,"currency":"NZD","supplier":"Contoso Computing","category":"it_hardware","cost_centre":"CC-310 Support","needed_by":"2026-11-20","justification":"Five new support hires start in November and five laptops are past their replacement date."}'What's included
| Type | Name | Details |
|---|---|---|
| Email template | Purchase order raised | Sent to the requester when the purchase order is issued. |
| Email template | Purchase order to supplier | Sent to the supplier orders address with the purchase order. |
| Email template | Requisition not approved | Sent to the requester when the manager rejects the requisition or procurement cancels it. |
| Data table | Approved suppliers | Suppliers procurement has approved, by category, with payment terms and the contract that covers them. Preferred suppliers need fewer quotes. |
| Integration | ERP | |
| API reference | Create purchase order | POST /purchase-orders — Raise an approved purchase order in the ERP and return its number, status and PDF link. |
| Decision table | Purchasing approval | 6 rules — Approval level and number of quotes for a requisition, by amount, category and whether the supplier is preferred. First matching rule wins. |
| Workflow | Purchase requisition | 23 steps — A requester submits a purchase requisition; the purchasing policy sets the approver level and quotes required, the manager approves, procurement collects quotes when needed, and the PO is raised in the ERP and sent to the supplier. |
Approved suppliers · 7 sample rows
SupplierERP supplier idCategoryPayment termsPreferredContract refOrders email
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Integration “ERP”Required
Workflow “Purchase requisition” assigneesRequired
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/purchase-requisition-to-po-1.0.0.utpkg
usertasks packages inspect purchase-requisition-to-po-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install purchase-requisition-to-po-1.0.0.utpkg --dry-run
usertasks packages install purchase-requisition-to-po-1.0.0.utpkg # prompts for each requirement
usertasks packages install purchase-requisition-to-po-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete purchase-requisition-to-po -f values.yamlVerify the download
shasum -a 256 purchase-requisition-to-po-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work
More packages
Finance
Employees submit a claim from a form; category limits and an approval policy route it, and approved claims are queued for reimbursement.
Needs:REST APIAssigneesEmail
Finance
Screen new vendors for sanctions, registry and adverse media, tier the risk, review and verify bank details, then create the vendor in the ERP.
Needs:REST APIAssigneesEmail
Finance
Match each incoming invoice to its purchase order and goods receipts, pay matches within tolerance and route exceptions to accounts payable.
Needs:REST APIAssigneesInbound webhook