> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/automation/worked-examples/worked-example-purchase-approval-workflow.md).

# Worked Example: Purchase Approval Workflow

## Worked Example: Purchase Approval Workflow

Build a procurement approval app where an employee creates a purchase request, submits it, a reviewer decides from a Decision screen, and the requester sees the final status.

![Purchase requests list.](https://content.gitbook.com/content/5ZqDXcVVffWUqEIZVhmn/blobs/TPnKnb1KBF1SpUpl5Mmn/assets/approval-management/procurement-approval-desk/07-purchase-requests-list.jpg)

*Purchase Requests is the source data page.*

### Data model

Use these fields: Request title, Requester, Department, Vendor, Amount, Reason, Needed by, Reviewer, Status, Decision notes.

Use these statuses: Draft, Submitted, Waiting for review, Approved, Rejected, Needs changes, Canceled.

### Workflow setup

1. Open Automation.
2. Choose Approval workflow.
3. Set When this happens to the Purchase Requests Submit action.
4. Set submitted status to the exact value the button writes.
5. Choose Reviewer field or Supervisor role.
6. Choose Decision as the reviewer screen.
7. Add Workflow Status for requester visibility.
8. Add Notification Center for reviewer and requester messages.
9. Map Approve to Approved.
10. Map Reject to Rejected.
11. Map Request changes to Needs changes.
12. Add exceptions for missing reviewer, missing reason, missing amount, failed message, and permission issue.
13. Save and validate.

![Purchase approval workflow setup.](https://content.gitbook.com/content/5ZqDXcVVffWUqEIZVhmn/blobs/kPhC9GrOLlzI30v2hkd5/assets/approval-management/maker-builder/03-procurement-approval-desk-approval-workflow-setup.jpg)

*Purchase approval workflow setup.*

### End-to-end test

1. Preview as requester.
2. Create Laptop replacement for field team.
3. Set Amount to 500.
4. Add Reason: Existing field laptop is failing and blocks customer visits.
5. Click Submit.
6. Confirm status is Submitted or Waiting for review.
7. Preview as reviewer.
8. Open Decision.
9. Confirm the request appears.
10. Open it and review amount, reason, requester, vendor, and due date.
11. Approve it.
12. Preview as requester.
13. Confirm the status is Approved.
14. Check Exception Resolution.

![Submitted request state.](https://content.gitbook.com/content/5ZqDXcVVffWUqEIZVhmn/blobs/9kTTAksELrXcFcxvTwCj/assets/approval-management/procurement-approval-desk/10-purchase-requests-submitted-state.jpg)

*Submitted request state.*

![Reviewer detail state.](https://content.gitbook.com/content/5ZqDXcVVffWUqEIZVhmn/blobs/XliweGY8zGVBlyfbNYId/assets/approval-management/procurement-approval-desk/12-approval-inbox-request-detail.jpg)

*Reviewer detail state.*

### Troubleshooting

| Symptom                         | Fix                                                                        |
| ------------------------------- | -------------------------------------------------------------------------- |
| Submit saves but nothing routes | Reconnect When this happens to the real Submit action.                     |
| Reviewer cannot see it          | Check reviewer rule, Decision screen visibility, and source record access. |
| Decision button does nothing    | Map decision actions to source statuses.                                   |
| Requester cannot see result     | Add source status update or Workflow Status.                               |
