FS-DOC-03Operations
Process Runbook / SOP
Timesheet Collection & Approval
[YourCompany.com] · HR Department · Prepared by FullSpec · [Today's Date]
This runbook is your day-to-day operating guide for the Timesheet Collection and Approval automation. It tells you exactly what the system does on its own, where your team steps in, how to handle anything that goes wrong, and who to call when you need help. FullSpec has built, tested, and handed over the automation end to end. Your role is to keep the employee list current, review any flagged anomalies each pay cycle, and escalate to FullSpec support if a technical issue arises that you cannot resolve with this guide.
01Process overview
Every pay period, the automation wakes up the moment the scheduled close date is reached and runs the full timesheet cycle without anyone pressing a button. The Collection Agent checks who has not submitted, sends personalised reminders via Gmail and Slack, pulls in Google Form responses, validates them, and writes clean data into the master Google Sheet. The Approval Agent then routes each line manager a pre-formatted email with a one-click approve link and escalates automatically if they do not respond in time. Once all approvals are recorded, the Payroll Sync Agent pushes the finalised hours directly into Xero via the API and sends a Slack confirmation to the payroll owner. The only moment a human is required is when the Collection Agent flags an anomaly that falls outside the agreed validation thresholds. In a clean cycle with no anomalies, the entire process runs without HR touching it.
Process name
Timesheet Collection & Approval
Trigger
Pay period end date is reached on the agreed schedule. The automation starts automatically with no manual action required.
Final output
Approved employee hours loaded into Xero via API, with a Slack confirmation sent to the payroll owner showing total employees and hours processed.
Agents running
Collection Agent, Approval Agent, Payroll Sync Agent
Tools involved
Google Forms, Google Sheets, Gmail, Slack, Xero
Weekly volume
40 to 80 timesheet submissions per pay cycle (weekly or fortnightly)
Human checkpoint
HR Administrator reviews flagged anomalies in the master Google Sheet before the data is passed to the Approval Agent. Estimated 15 minutes per cycle when anomalies are present.
Process owner
[Your name] — HR Administrator
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations
02Step-by-step: what happens and who acts
What you actually need to do: Your only required action in a normal pay cycle is to open the master Google Sheet when you receive the anomaly-flag notification, review any highlighted rows, make a judgment call on whether to accept, correct, or follow up with the employee, and then mark the anomaly as resolved. The automation waits for this clearance before routing approvals. Every other step in the table below runs without you.
Step
What happens
Who acts
Type
1
The pay period close date is reached. The automation platform detects the scheduled trigger and starts the collection workflow. No one needs to log in or press anything.
Automation
Automated
2
The Collection Agent reads the master Google Sheet and compiles a list of every employee who has not yet submitted a timesheet for the current pay period.
Collection Agent
Automated
3
Personalised reminder messages are sent automatically to each non-submitter via Gmail and Slack. Each message includes the employee's name, the deadline, and a direct link to the Google Form submission page.
Collection Agent
Automated
4
As employees submit via Google Forms, the Collection Agent pulls each response in real time, checks that all required fields are present, and validates that hour totals fall within the agreed thresholds.
Collection Agent
Automated
5
Validated submissions are written into the master Google Sheet automatically, with each employee row updated. Any entry with an anomaly (missing fields, hours outside threshold) is highlighted in the sheet and a notification is sent to the HR Administrator.
Collection Agent
Automated
6
The HR Administrator opens the master Google Sheet, reviews highlighted anomaly rows, and decides whether to accept the entry, correct it, or follow up with the employee. Once resolved, the HR Administrator marks the flag as cleared.
HR Administrator
Human
7
The Approval Agent sends each line manager a pre-formatted email listing their team's hours, with a one-click approve or query link. The master sheet is updated as each manager responds.
Approval Agent
Automated
8
If a manager has not responded within the set escalation window, the Approval Agent sends a follow-up message automatically via Gmail and Slack. The escalation repeats until a response is received.
Approval Agent
Automated
9
When a manager approves, their sign-off timestamp is logged against each employee row in the master Google Sheet, building the audit trail automatically.
Approval Agent
Automated
10
Once all approvals are recorded, the Payroll Sync Agent transfers the finalised hours from the master Google Sheet into Xero via the payroll API, mapping each row to the correct employee pay item.
Payroll Sync Agent
Automated
11
A Slack message is sent to the payroll owner confirming that all hours are loaded in Xero, with a summary of total employees processed and total hours submitted. Payroll can now be run.
Payroll Sync Agent
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
Situation
What the system does
What you do
An employee's Google Form submission is missing required fields (for example, a project code or shift date is blank)
The Collection Agent marks the submission as incomplete, highlights the employee's row in the master Google Sheet in amber, and sends the employee an automated follow-up message with a link to resubmit. The row is held out of the consolidated dataset until a complete submission is received.
If the employee has not resubmitted by the anomaly review window, contact them directly via Slack or phone. Once they resubmit, the system picks it up automatically. If they cannot resubmit in time, you can manually enter the correct values in the master sheet and clear the flag yourself.
An employee submits their timesheet more than once for the same pay period
The Collection Agent detects duplicate entries for the same employee ID and pay period. It retains the most recent valid submission, flags the duplicate in the master sheet, and sends a notification to the HR Administrator.
Open the master sheet and confirm the correct submission is the one retained. If the earlier submission was actually correct, overwrite the retained entry with the right values and clear the duplicate flag. No resubmission is needed from the employee.
An employee's name or ID in the Google Form does not match any record in the master Google Sheet
The Collection Agent cannot place the submission and flags it as unmatched. It is held in a pending section of the master sheet and the HR Administrator is notified with the employee's submitted name and the form response details.
Check whether the employee record is missing from the master sheet (for example, a new starter not yet added) or whether the employee mistyped their details. Add the missing record to the sheet or correct the entry, then manually move the submission to the correct row and clear the flag.
A manager does not respond to the approval request or the escalation follow-up before the payroll deadline
The Approval Agent sends the initial approval email and, after the set escalation window, sends a follow-up via Gmail and Slack. If there is still no response after the second escalation, the Approval Agent flags the outstanding approval in the master sheet and sends an alert to the HR Administrator and the payroll owner.
Contact the manager directly by phone or escalate to their cover or deputy. If approval cannot be obtained before the payroll deadline, consult the payroll owner on whether to hold that team's hours or process the rest of the payroll and handle the outstanding team separately. Do not manually enter an approval in the sheet without authorisation.
The Xero payroll API is unavailable or returns an error during the sync attempt
The Payroll Sync Agent retries the upload automatically up to three times with a short delay between each attempt. If all three attempts fail, it stops, logs the error with the full API response, and sends an alert to the HR Administrator and the payroll owner via Slack.
Check the Xero status page to confirm whether the issue is a platform outage. If it is, wait for Xero to recover and then re-trigger the sync from the master sheet using the manual re-run option FullSpec has configured. If the error is not a platform outage, contact FullSpec support at support@gofullspec.com with the error log from the master sheet.
Slack is unavailable and automated reminder or confirmation messages cannot be delivered
The automation platform detects the Slack delivery failure and logs it. Gmail messages (reminders, approval requests, and escalations) continue to send as normal via Gmail, which is the primary delivery channel. The Slack confirmation at the end of the cycle is re-attempted once Slack comes back online.
No action is required during the outage. Check that Gmail reminders and approval emails went out successfully by reviewing the master sheet send log. Once Slack is restored, confirm the payroll-ready Slack message was delivered. If it was not sent automatically after recovery, notify the payroll owner by email.
04Who to contact and when
Fill in the rows below once your team is confirmed. Keep this table up to date whenever roles or contact details change. The FullSpec rows are fixed and do not change.
Role
Name
How to reach them
Process owner (HR Administrator)
[Your name]
[Your email / Slack handle]
Payroll Manager
[Rep email]
[Payroll Manager email / Slack handle]
Operations Lead
[Your name]
[Operations Lead email / Slack handle]
Xero account administrator
[Your name]
[Xero admin email]
FullSpec builder (technical questions about the automation build, configuration changes, or agent logic)
FullSpec team
support@gofullspec.com
FullSpec support (errors, outages, sync failures, or anything in this runbook you cannot resolve)
FullSpec support
support@gofullspec.com
For any API errors, repeated sync failures, or behaviour that does not match this runbook, contact FullSpec support at support@gofullspec.com before making changes to the master Google Sheet schema, the Google Form structure, or Xero pay item settings. Changes to these data sources without coordinating with FullSpec can break the automation mid-cycle.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
05Ongoing maintenance
The automation runs without ongoing technical maintenance from your team. The tasks below are the small but important housekeeping steps that keep it accurate and reliable over time.
Whenever a new employee joins or an employee leaves
Add or remove the employee record in the master Google Sheet and confirm their entry in Xero matches exactly (name, employee ID, and pay item). If the Xero record does not match, the Payroll Sync Agent will fail to map their hours. Notify FullSpec support if you are unsure how to add a new record safely.
HR Administrator
Whenever reminder or approval email templates need updating (wording, deadline, tone)
Send the updated template text to FullSpec support at support@gofullspec.com. Do not edit the templates directly in the automation platform, as formatting changes can break the personalisation tokens that insert employee names and form links.
HR Administrator + FullSpec
Monthly spot-check (first pay cycle of each month)
Open the master Google Sheet after the cycle closes and confirm that all rows are populated, all approvals are logged with timestamps, and the Xero sync confirmation was received in Slack. If anything looks off, check the error log tab in the master sheet and contact FullSpec if you cannot identify the cause.
HR Administrator
Monthly error-log review
Review the error log tab in the master Google Sheet for any flagged events from the past month, including unmatched submissions, retry events, escalations, and API warnings. Note any patterns (for example, the same employee flagged repeatedly) and address the root cause rather than just clearing the flag each time.
HR Administrator
Whenever a team member in the contact table changes role or leaves
Update the contact table in this runbook and notify FullSpec so that any automation alerts and Slack confirmation messages are redirected to the new responsible person. Manager approval routing also needs to be updated in the Approval Agent configuration if a line manager changes.
HR Administrator + FullSpec
Quarterly volume review (every three months)
Check whether the number of employees on the timesheet list has grown significantly (above 80 or below 10). If volume has changed substantially, contact FullSpec to confirm that escalation timers, validation thresholds, and Xero API rate limits are still appropriate for the new team size.
HR Administrator + FullSpec
The single most common maintenance issue for this process is an employee record mismatch between the master Google Sheet and Xero. This typically happens when a new starter is added to the Google Sheet but their Xero pay item is set up under a slightly different name or ID. The Payroll Sync Agent will reject the row rather than guess. Always verify the exact employee name and ID in Xero before adding a new row to the master sheet, and run a manual test sync with FullSpec support before the new employee's first live pay cycle.
Process Runbook / SOPPage 4 of 4