FS-DOC-03Operations
Process Runbook / SOP
Purchase Approval Workflow
[YourCompany.com] · Finance Department · Prepared by FullSpec · [Today's Date]
This runbook is the day-to-day operating guide for everyone involved in the Purchase Approval Workflow. It describes what the automation does at each step, where a human decision is required, how to handle things that go wrong, and who to call when you need help. FullSpec has built, tested, and handed over the workflow end to end. Your team's responsibility is to keep the rules table current, action the single human checkpoint, and escalate anything the system cannot resolve on its own.
01Process overview
The Purchase Approval Workflow handles every stage of an internal spend request from the moment a staff member submits a Jotform form to the point where a confirmed purchase order exists in Xero and the requester has been notified of the outcome. Three automated agents run in sequence: the Request Intake Agent captures and validates submissions, the Approval Routing Agent identifies the correct approver and follows up if they do not respond within 48 hours, and the PO Creation and Notification Agent raises the draft Xero purchase order and sends the outcome email. The one step that stays with a person is the finance manager reviewing and confirming the draft PO in Xero before it is released to the supplier. This is an intentional control point, not a gap. All other steps are fully automated, reducing finance active time per request from 45 minutes to under 3 minutes.
Process name
Purchase Approval Workflow
Trigger
A staff member submits a Jotform purchase request form
Final output
A confirmed Xero purchase order and an outcome notification email sent to the requester
Agents running
Request Intake Agent, Approval Routing Agent, PO Creation and Notification Agent
Tools involved
Jotform, Google Sheets, Slack, Gmail, Xero
Weekly volume
Approximately 15 requests per week (60 per month)
Human checkpoint
Finance Manager reviews and confirms the draft purchase order in Xero before it is sent to the supplier
Process owner
[Your name], Finance Manager
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations
02Step-by-step: what happens and who acts
What you actually need to do: There is one human step in this entire process. After the automation creates a draft purchase order in Xero, the Finance Manager receives an email notification and must open Xero, review the draft PO details against the original request, and click Confirm before the order is sent to the supplier. Everything else runs without any action from your team.
Step
What happens
Who acts
Type
1
A staff member completes and submits the Jotform purchase request form, providing their name, department, supplier, amount, and business justification in a consistent structured format.
Requester
Human
2
The Request Intake Agent receives the submission, checks that all required fields are present, assigns a unique sequential request ID, timestamps the entry, and writes the full record to the master purchase register in Google Sheets. If any required field is missing, the agent immediately sends the requester an automated Gmail prompt asking them to resubmit with the missing details.
Request Intake Agent
Automated
3
The Approval Routing Agent reads the submitted amount and department, looks up the correct approver from the spend-threshold rules table in Google Sheets, and sends that person a structured Slack message containing the request details along with inline Approve and Reject buttons.
Approval Routing Agent
Automated
4
If no Slack response is recorded within 48 hours, the Approval Routing Agent automatically sends an escalation email via Gmail to the approver and copies their line manager, referencing the original request and noting that a decision is still outstanding.
Approval Routing Agent
Automated
5
When the approver clicks Approve or Reject in Slack, the Approval Routing Agent instantly writes the decision, the approver's name, and the timestamp back to the purchase register in Google Sheets, closing the approval record.
Approval Routing Agent
Automated
6
On a confirmed approval, the PO Creation and Notification Agent creates a draft purchase order in Xero using the supplier name, approved amount, and line item description from the original form submission. The PO is set to Draft status and is not sent to the supplier at this point.
PO Creation and Notification Agent
Automated
7
The Finance Manager receives a notification that a draft PO is ready in Xero. They open Xero, review the draft against the original request details, and confirm or correct the PO. This is the single human checkpoint in the workflow and must be completed before the order reaches the supplier.
Finance Manager
Human
8
The PO Creation and Notification Agent sends the requester a Gmail outcome email. For approved requests, the email confirms approval and includes the Xero purchase order number. For rejected requests, the email states the decision and includes the reason recorded by the approver in Slack.
PO Creation and Notification Agent
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
Situation
What the system does
What you do
A required field is missing from the Jotform submission (e.g. supplier name or amount left blank)
The Request Intake Agent detects the gap during validation, does not log the incomplete request to the register, and immediately sends the requester a Gmail prompt listing the missing fields and asking them to resubmit.
No action needed unless the requester contacts you for help. If they cannot complete the form, assist them directly and confirm the resubmission arrives in the register before considering it live.
A duplicate request is submitted (same requester, same supplier, and same amount submitted twice within 24 hours)
The Request Intake Agent flags the second submission as a likely duplicate in the purchase register and does not create a new approval row. A Gmail notification is sent to the process owner noting the suspected duplicate and its request ID.
Review the flagged entry in Google Sheets. If it is a genuine duplicate, mark it as Void in the Status column. If it is a legitimate separate request, update the duplicate flag to Confirmed and the approval flow will resume automatically.
The approver does not respond within 48 hours and also ignores the escalation email
The Approval Routing Agent sends the escalation email at the 48-hour mark and records an Escalated status in the purchase register. The workflow then pauses and waits for a manual resolution.
Contact the approver's line manager directly and ask them to action the Slack message or advise finance of the decision. Once a decision is entered in the Google Sheets register manually, the PO creation step will proceed on the next scheduled check.
A request is approved in Slack but no matching supplier record exists in Xero
The PO Creation and Notification Agent attempts to create the purchase order, encounters a supplier-not-found error from the Xero API, and writes an Error status to the purchase register. A Gmail alert is sent to the process owner with the request ID and the supplier name as entered on the form.
Create the supplier in Xero manually. Once the supplier exists, open the purchase register, update the PO Status cell from Error to Retry, and the agent will attempt PO creation again on the next scheduled run (typically within 15 minutes).
A tool is temporarily unavailable (e.g. Slack is down or Xero is unreachable)
The automation platform retries the failed step up to three times with a 10-minute interval between attempts. If all three retries fail, the workflow halts at that step, marks the affected row with a Tool Unavailable status in the register, and sends a Gmail alert to the process owner.
Check the status page of the affected tool. If the outage is confirmed, no action is needed until service resumes. The agent will retry automatically once the tool is back online. If the outage lasts more than four hours and the request is time-sensitive, raise the PO in Xero manually and update the register row with a Manual Override note.
The Finance Manager does not confirm the draft PO in Xero within one business day
The workflow holds the PO in Draft status in Xero and does not notify the requester until the PO is confirmed. No automated escalation is triggered for this step by default, as it is an intentional human control point.
The process owner should monitor the Xero draft PO queue daily as part of the morning routine. Any draft PO older than one business day should be reviewed and either confirmed or flagged to the Finance Manager for same-day action. If the Finance Manager is unavailable, the designated backup approver should be contacted directly.
04Who to contact and when
Fill in the team rows below once your internal contacts are confirmed. Keep this table current whenever roles change so that exception handling does not stall because the wrong person is contacted. The FullSpec rows are fixed and do not need updating.
Role
Name
How to reach them
Process owner (Finance Manager)
[Your name]
[Your email address] / [Your phone or Slack handle]
Backup approver (cover for Finance Manager absences)
[Backup name]
[Backup email or Slack handle]
Spend-rules table administrator (keeps the Google Sheets rules table current)
[Admin name]
[Admin email or Slack handle]
IT or systems contact (for Jotform, Xero, or Slack access issues)
[IT contact name]
[IT contact email or phone]
FullSpec builder (workflow configuration, agent logic, and integration changes)
FullSpec
support@gofullspec.com
FullSpec support (general questions, error alerts, and maintenance requests)
FullSpec Support
support@gofullspec.com
Contact FullSpec at support@gofullspec.com for anything that requires a change to the workflow logic, the routing rules table structure, the Slack message format, Xero field mappings, or agent configuration. Do not attempt to edit the automation platform settings directly. For access issues with Jotform, Slack, Xero, or Google Sheets, contact your internal IT or systems administrator first.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
05Ongoing maintenance
The workflow runs reliably without frequent intervention, but a small number of routine checks and updates keep it accurate and prevent issues from building up over time. The table below sets out who is responsible for each maintenance task and how often it should happen.
Whenever a spend threshold or approver changes
Update the spend-threshold rules table in Google Sheets. The Approval Routing Agent reads this table live, so any change takes effect immediately on the next request that is processed. Confirm the updated row with the Finance Manager before saving.
Spend-rules table administrator
Whenever the Jotform template needs updating (new fields, changed field labels, or removed options)
Contact FullSpec at support@gofullspec.com before making any changes to the Jotform form structure. Field name changes can break the data mapping to Google Sheets and Xero. FullSpec will update the field mappings in the automation at the same time as the form is changed.
Process owner + FullSpec
Monthly (first working day of each month)
Open the purchase register in Google Sheets and run a spot-check on the previous month's entries. Confirm that every row has a Status (Approved, Rejected, or Voided), an Approver name, and a PO number where applicable. Flag any rows that are incomplete or stuck at Pending and resolve them before the monthly accounts close.
Finance Manager
Weekly (every Monday morning)
Review the Error and Tool Unavailable rows in the purchase register. Any row in these statuses that is more than two business days old should be investigated and resolved, either by triggering a Retry update in the register or by raising the PO manually. Send any unresolved agent errors to support@gofullspec.com.
Process owner
Whenever a team member joins, leaves, or changes role
Update the contact table in this runbook. If the departing person is an approver, update the rules table in Google Sheets immediately so that requests are not routed to someone who no longer holds that role. If the Finance Manager changes, notify FullSpec so that the Xero confirmation notification email address can be updated.
Process owner + FullSpec (for email updates)
Quarterly (every three months)
Review the total volume of requests processed against the assumed 60 per month. If volume has grown above 100 per month or the approval tier structure has expanded, contact FullSpec to assess whether the current workflow configuration and tooling plan remain appropriate for the load.
Finance Manager + FullSpec
The most common maintenance issue for this workflow is an outdated spend-threshold rules table in Google Sheets. If the approver hierarchy or dollar thresholds change and the rules table is not updated at the same time, the Approval Routing Agent will continue to send requests to the old approver. This causes delays, incorrect decisions, and potential compliance issues. Always update the rules table on the same day that any approval policy change is agreed, not retrospectively at month end.
Process Runbook / SOPPage 4 of 4