Back to Bank Reconciliation

Process Runbook / SOP

How the automation works day-to-day: what is automatic, what needs a human, how exceptions are handled, and who to contact.

4 pagesPDF · Operations
FS-DOC-03Operations

Process Runbook / SOP

Bank Reconciliation

[YourCompany.com] · Finance Department · Prepared by FullSpec · [Today's Date]

This runbook is the day-to-day operating guide for the bookkeeper and finance lead responsible for the bank reconciliation process. It covers how the automation runs, what your team needs to do, how to handle anything that goes wrong, and who to call when you need help. FullSpec builds, monitors, and maintains the automation end to end. Your team's role is limited to reviewing flagged exceptions in Google Sheets and confirming sign-off before the period is closed.

01Process overview

The bank reconciliation automation runs on a daily schedule and at month-end. It connects to your bank via Plaid, pulls all new transactions, fetches unreconciled ledger entries from Xero, and matches them using amount, date, and reference rules. Confirmed matches are posted back to Xero automatically. Anything the system cannot match with confidence is written to a Google Sheets exceptions tab with context pre-filled. The bookkeeper reviews only those flagged items, marks them as resolved, and the automation closes the period by posting the final reconciliation record to Xero and sending a Slack summary to the finance lead. The entire matched portion of the run requires no human involvement. A full reconciliation cycle that previously took over three hours now completes in under twenty minutes of human time.

Process name
Bank Reconciliation
Trigger
Scheduled daily run, or manually triggered for an out-of-cycle reconciliation
Final output
Reconciled period record posted to Xero, exceptions resolved, Slack summary sent to finance lead, and Gmail confirmation delivered
Agents running
Bank Feed Sync Agent, Matching and Exceptions Agent, Notifications and Close Agent
Tools involved
Plaid, Xero, Google Sheets, Slack, Gmail
Weekly volume
Approximately 400 transactions per month across all connected accounts
Human checkpoint
Bookkeeper reviews and resolves flagged exceptions in Google Sheets (approximately 20 minutes per cycle)
Process owner
[Your name] — update this field once confirmed

02Step-by-step: what happens and who acts

What you actually need to do: There is one human step in this entire process. Open the Google Sheets exceptions tab when you receive the Slack alert, review each flagged item, add a note or correcting entry in Xero if needed, and mark the row as resolved. Once all exceptions are cleared, the automation closes the period automatically. Everything else in the table below is handled without any action from your team.
Step
What happens
Who acts
Type
1
The automation platform fires on its daily or month-end schedule and calls the Plaid API to retrieve all new bank transactions since the last successful run. The data is pulled for every connected account and currency.
Automation
Automated
2
The Bank Feed Sync Agent queries Xero to fetch all unreconciled ledger entries for the same date range. Both the bank data and the ledger data are normalised into a consistent format so they can be compared field by field.
Automation
Automated
3
The Matching and Exceptions Agent applies rule-based and fuzzy matching logic, pairing bank transactions to ledger entries by amount, date, and reference number. Each pair is tagged as matched, probable match, or unmatched.
Automation
Automated
4
All confirmed matched pairs are posted back to Xero via the API. Those transactions are marked as reconciled and the running balance in Xero is updated immediately. No spreadsheet is involved at this point.
Automation
Automated
5
Any transaction that could not be matched confidently, including probable matches and genuine unknowns, is written to the dedicated exceptions tab in Google Sheets. The bank reference, amount, date, and a suggested category are pre-filled for every row.
Automation
Automated
6
The bookkeeper opens the Google Sheets exceptions tab (linked in the Slack alert), reviews each flagged item, posts any necessary correcting entries or coding adjustments in Xero, and marks each row as resolved. This is the only step that requires human action.
Bookkeeper
Human
7
Once all exceptions are marked resolved, the Notifications and Close Agent fires. It sends a Slack message to the finance channel listing matched item count, closing balance, and exception outcome. A confirmation email is sent via Gmail to the finance lead.
Automation
Automated
8
The automation posts the final reconciliation record and period close note to Xero, completing the audit trail for the cycle. The period is marked closed in Xero without any manual filing or archiving step.
Automation
Automated
Process Runbook / SOPPage 1 of 3
FS-DOC-03Operations

03Handling exceptions

Situation
What the system does
What you do
A bank transaction has a missing or incomplete reference, so the matching agent cannot find a ledger counterpart
The transaction is written to the Google Sheets exceptions tab with the amount, date, and account pre-filled. The suggested category column is left blank or populated with the closest guess based on the merchant name.
Open the exceptions sheet, identify the transaction, add the correct Xero account code or a short description in the notes column, then mark the row resolved. The automation will pick up your input and apply it on the next close step.
A transaction appears in the bank feed that already exists in the exceptions sheet from a previous cycle (duplicate entry)
The system detects the duplicate by comparing bank reference and amount against the prior run log. The duplicate is flagged in the exceptions sheet with a 'possible duplicate' label rather than being posted to Xero a second time.
Check whether the transaction genuinely recurred or was carried over in error. If it is a genuine new transaction, remove the duplicate label and resolve normally. If it is a carry-over error, delete the row and note it in the exceptions log.
A ledger entry exists in Xero but no corresponding bank transaction has arrived in the feed
The unmatched ledger item is written to the exceptions sheet with a 'bank side missing' label and the Xero transaction ID. The system does not delete or void the ledger entry.
Confirm whether the bank transaction has simply not cleared yet (timing difference) or whether there is a genuine discrepancy. If it is a timing difference, leave the row open and it will auto-resolve in the next run when the bank item arrives. If it is a genuine error, raise a correcting entry in Xero and mark the row resolved.
The bookkeeper does not review and resolve exceptions within 48 hours of the Slack alert
The Notifications and Close Agent sends a follow-up Slack reminder to the finance channel and a second Gmail reminder to the finance lead. The period remains open in Xero and no close record is posted until exceptions are cleared.
Review and resolve the outstanding exceptions in Google Sheets as soon as possible. If you need more time or cannot identify a transaction, add a note in the exceptions row and contact the finance manager to escalate. Do not leave rows unresolved at month-end.
Plaid cannot connect to the bank feed (bank API outage or credential issue)
The Bank Feed Sync Agent retries the connection three times over a 30-minute window. If all retries fail, the run is paused, an error alert is sent to the finance Slack channel and to support@gofullspec.com, and no partial data is written to Xero.
Check the Slack error alert for the specific failure reason. If it is a temporary bank outage, wait for the bank to restore service and trigger a manual re-run using the out-of-cycle trigger. If it is a credential issue, contact FullSpec support at support@gofullspec.com so the Plaid connection can be re-authorised.
Xero is unavailable or returns an API error during the matching or posting step
The automation catches the API error, logs it with the full error code and timestamp, pauses the run without writing any partial data, and sends an alert to the finance Slack channel and to support@gofullspec.com. The system retries automatically after 15 minutes up to three times.
Do not attempt to manually post reconciliation entries in Xero while the automation is paused, as this can create duplicates. Wait for the retry cycle to complete or for FullSpec to confirm the issue is resolved. If the outage extends beyond two hours during a critical month-end run, contact support@gofullspec.com directly for a manual fallback procedure.

04Who to contact and when

Fill in the rows marked with placeholders once your team is confirmed. Keep this table updated whenever a team member changes role or leaves. The FullSpec rows are fixed and do not need to be edited.

Role
Name
How to reach them
Process owner (overall accountability for reconciliation)
[Your name]
[Your email or phone]
Bookkeeper (daily exceptions review and sign-off)
[Rep name]
[Rep email]
Finance Manager (escalation and period close approval)
[Rep name]
[Rep email]
FullSpec builder (automation configuration and technical changes)
FullSpec team
support@gofullspec.com
FullSpec support (errors, outages, re-authorisation requests)
FullSpec support
support@gofullspec.com
For anything affecting a live reconciliation run, such as an API error, a Plaid connection failure, or a Xero posting issue, email support@gofullspec.com immediately and include the Slack error message or screenshot. FullSpec monitors the automation and will often be aware of the issue before you contact us, but a direct message ensures the fastest response.
Process Runbook / SOPPage 2 of 3
FS-DOC-03Operations

05Ongoing maintenance

When
What to do
Who
Whenever a new bank account is added or an existing account is closed
Notify FullSpec support so the Plaid connection can be updated to include or remove the account. Do not assume a new account will be picked up automatically. Confirm the change has been applied before the next reconciliation run.
Process owner, then FullSpec
Whenever a chart of accounts category is changed in Xero, or a new expense category is added
Send the updated category list to FullSpec so the matching rules and suggested-category logic in the exceptions sheet can be updated. Outdated categories will cause the agent to suggest incorrect codes, increasing manual correction time.
Bookkeeper, then FullSpec
Monthly spot-check (first week of each month)
Open the previous month's closed reconciliation record in Xero and verify the closing balance matches the bank statement balance. Confirm the exceptions sheet for the prior period has no unresolved rows. Log the result in the exceptions sheet's audit tab.
Bookkeeper
Weekly error-log review (every Monday)
Check the finance Slack channel for any error alerts or retry notifications from the past seven days. If any alerts were sent and you did not act on them, investigate whether the affected run completed successfully. Contact FullSpec if any run shows a partial completion or unresolved error.
Finance Manager
Whenever a team member in the reconciliation workflow changes (bookkeeper, finance lead, or process owner)
Update the contact table in section 04 of this runbook. Notify FullSpec so Slack alert routing and Gmail confirmation recipients can be updated in the automation configuration. Remove access to the Google Sheets exceptions workbook for the departing team member.
Process owner, then FullSpec
Quarterly volume review (every three months)
Compare the current monthly transaction volume against the 400-transaction baseline used to calibrate the matching rules. If volume has grown by more than 30 percent, contact FullSpec to review whether the fuzzy match thresholds and Plaid API tier need adjustment. Review the Plaid and automation platform subscription costs against the volume tier.
Finance Manager, then FullSpec
The single most common maintenance issue for this process is stale Xero account codes in the matching rules. When a category is renamed or retired in Xero without notifying FullSpec, the exceptions agent begins suggesting the old code, which the bookkeeper then has to manually correct on every affected row. Keep FullSpec informed of any chart-of-accounts changes as soon as they are made in Xero.
Process Runbook / SOPPage 3 of 3

More documents for this process

Every document generated for Bank Reconciliation.

Launch Plan
Operations · Owner
View
ROI and Business Case
Finance · Owner
View
Developer Handover Pack
Technical · Developer
View
Integration and API Spec
Technical · Developer
View
Test and QA Plan
Quality · Developer
View