FS-DOC-03Operations
Process Runbook / SOP
Invoice Generation and Delivery
[YourCompany.com] · Finance Department · Prepared by FullSpec · [Today's Date]
This runbook is the operating guide for your finance team once the Invoice Generation and Delivery automation is live. It explains what the system does automatically, what your team still needs to do, how to handle exceptions, who to call when something goes wrong, and how to keep the automation running accurately over time. FullSpec builds and maintains the automation. Your team's responsibility is limited to reviewing draft invoices in Xero before they go out, and keeping this document updated as your business changes.
01Process overview
When a deal or job is moved to the Closed-Won or Complete stage in HubSpot, two automated agents take over. The Invoice Builder Agent reads the deal record, pulls the correct line items, tax codes, and payment terms, and creates a draft invoice in Xero within minutes. The finance lead then opens that draft, spends around eight minutes reviewing it, and approves it directly in Xero. The moment it is approved, the Delivery and CRM Sync Agent sends the invoice to the client via Gmail, updates the HubSpot deal stage, appends a row to the Google Sheets tracking log, and posts a Slack confirmation to the finance channel. The entire cycle, from job complete to invoice delivered, takes under thirty minutes compared to the one-to-three days it currently takes manually.
Process name
Invoice Generation and Delivery
Trigger
A HubSpot deal is moved to the Closed-Won or Complete stage
Final output
Invoice sent to client via Gmail, HubSpot deal updated to Invoiced stage, tracking row logged in Google Sheets, and Slack confirmation posted
Agents running
Invoice Builder Agent; Delivery and CRM Sync Agent
Tools involved
HubSpot, Xero, Gmail, Google Sheets, Slack
Weekly volume
~22 invoices/week (approximately 90 per month)
Human checkpoint
Finance lead reviews and approves the draft invoice in Xero before it is sent (approximately 8 minutes per invoice)
Process owner
Finance Lead (see Section 04 for contact details)
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. When the automation creates a draft invoice in Xero, the finance lead will receive a Slack notification with a direct link. Open the draft in Xero, check the line items, amount, client contact, and payment terms, then click Approve. That single action triggers the rest of the process automatically. Everything else in the table below is handled by the system.
Step
What happens
Who acts
Type
1
A HubSpot deal is moved to the Closed-Won or Complete stage. This stage change acts as the trigger and immediately starts the automated workflow.
System (HubSpot)
Automated
2
The Invoice Builder Agent reads the full deal record from HubSpot, retrieving the client name, billing contact, line items, amounts, currency, payment terms, and tax classification linked to that company record.
Invoice Builder Agent
Automated
3
The agent creates a correctly formatted draft invoice in Xero, applying the right tax code and payment terms based on the client type as defined in the agreed payment terms mapping table.
Invoice Builder Agent
Automated
4
The finance lead receives a Slack notification with a direct link to the draft invoice in Xero. They open the draft, review the line items, client details, and totals, and either approve the invoice or flag it for correction. This step takes approximately 8 minutes.
Finance Lead
Human
5
Once the invoice status in Xero changes from Draft to Approved, the Delivery and CRM Sync Agent detects the change and sends the invoice to the client's billing contact via Gmail using a branded email template that includes the invoice PDF and a payment link.
Delivery and CRM Sync Agent
Automated
6
The agent automatically moves the HubSpot deal to the Invoiced stage and writes the Xero invoice reference number back into the deal record so there is a permanent link between the CRM entry and the invoice.
Delivery and CRM Sync Agent
Automated
7
A new row is appended to the master invoice tracking sheet in Google Sheets, recording the invoice number, client name, amount, send date, and due date for ongoing accounts receivable visibility.
Delivery and CRM Sync Agent
Automated
8
A Slack message is posted to the finance channel confirming that the invoice has been sent, including the client name, invoice amount, and a direct link to the invoice in Xero.
Delivery and CRM Sync Agent
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
The automation is designed to handle the standard invoice flow without intervention. The situations below cover the most realistic failure points. In each case the system takes a first action to protect accuracy, and your team has a clear fallback if manual involvement is needed.
Situation
What the system does
What you do
Missing or incomplete deal data in HubSpot (for example, no billing contact, missing line items, or a blank currency field)
The Invoice Builder Agent cannot create a valid draft invoice. It stops the run, logs the specific missing fields, and posts an alert to the finance Slack channel naming the deal and the fields that need to be filled in.
Open the HubSpot deal record, complete the missing fields, and then manually re-trigger the workflow by moving the deal out of and back into the Closed-Won stage. Contact FullSpec support if the re-trigger does not work.
A Xero contact matching the HubSpot company does not exist (new client not yet set up in Xero)
The agent cannot create the invoice without a matching Xero contact. It halts the invoice creation step and posts an alert to Slack identifying the deal and the missing Xero contact.
Create the new contact in Xero manually, ensuring the company name or domain matches the HubSpot record exactly. Once saved in Xero, re-trigger the workflow from HubSpot as above.
A duplicate invoice appears to have already been created for the same deal (the deal was moved to Closed-Won more than once due to a CRM error)
The system checks for an existing Xero draft or approved invoice linked to that deal ID before creating a new one. If a match is found, it skips creation and posts a warning to Slack rather than creating a second invoice.
Review the existing invoice in Xero and the HubSpot deal to confirm whether the original was correct. If the duplicate was created before the duplicate-check logic could run, void the incorrect copy in Xero and update the deal record accordingly.
The finance lead does not review or approve the draft invoice within 24 hours
The system sends a reminder notification to the finance lead via Slack at the 24-hour mark. If there is still no action after 48 hours, a second reminder is sent and the operations manager is also notified.
If you are unable to review within 48 hours due to absence, ask a colleague with Xero access to cover the approval. If no one is available, contact FullSpec support to pause the workflow so invoices do not stack up unapproved.
The Gmail send step fails and the invoice email does not reach the client (for example, an invalid email address or a temporary Gmail service disruption)
The automation retries the Gmail send step up to three times with a five-minute gap between each attempt. If all three attempts fail, it logs the error, posts a Slack alert to the finance channel with the client name and invoice reference, and stops the run without updating HubSpot or Google Sheets.
Verify the client's billing email address in HubSpot and correct it if it is wrong. For a temporary Gmail outage, wait for the service to recover and then manually resend the approved invoice directly from Xero. Update the Google Sheets tracking log manually and notify FullSpec support so the error run can be reviewed.
Xero is unavailable or returns an API error (scheduled maintenance or an outage)
The automation detects the failed API response and retries the Xero connection up to five times over a fifteen-minute window. If Xero remains unavailable, the workflow pauses and posts a Slack alert to the finance channel. No partial data is written.
Check the Xero status page for any announced maintenance. Once Xero is back online the pending workflow runs will resume automatically. If a run does not recover within two hours of Xero coming back online, contact FullSpec support with the affected deal name and timestamp.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
04Who to contact and when
Fill in the rows below once your team is confirmed. Keep this table updated whenever roles change. The FullSpec rows are fixed and do not need to be edited.
Role
Name
How to reach them
Finance Lead (invoice approval, exception sign-off)
[Your name]
[Rep email]
Bookkeeper (day-to-day CRM and Xero data quality)
[Your name]
[Rep email]
Operations Manager (escalation if finance lead is unavailable)
[Your name]
[Rep email]
HubSpot Administrator (deal stage configuration, field changes)
[Your name]
[Rep email]
FullSpec builder (automation changes, new logic, integrations)
FullSpec team
support@gofullspec.com
FullSpec support (errors, outages, failed runs, general questions)
FullSpec support
support@gofullspec.com
For any live error that is blocking invoice delivery, email support@gofullspec.com with the subject line: URGENT: Invoice automation error, the affected deal name, and the Slack alert message text. The FullSpec team will respond within one business day for standard queries and as quickly as possible for urgent delivery failures.
05Ongoing maintenance
The automation runs without daily oversight once live. The actions below keep it accurate as your business grows and your data changes.
Whenever a new client type, tax code, or payment term is added
Update the payment terms and tax code mapping table in Google Sheets (or the coded logic, depending on how it was built). Notify FullSpec support so the agent logic can be reviewed and updated if the new combination falls outside the current rules.
Finance Lead + FullSpec team
Whenever the branded Gmail invoice template needs to change (wording, logo, payment link, or bank details)
Send the updated template content to FullSpec support. Do not edit the Gmail template directly without FullSpec involvement, as formatting changes can break the automated send step.
Finance Lead, actioned by FullSpec team
Monthly spot-check (first week of each month)
Pick three to five invoices sent in the previous month and verify that the HubSpot deal stage, the Xero invoice record, the Google Sheets tracking row, and the Gmail send all match. Flag any discrepancy to FullSpec support.
Bookkeeper
Weekly error-log review (every Monday)
Check the finance Slack channel for any automation alert messages from the previous week. If any failed or paused runs are listed, investigate the cause and contact FullSpec support if the issue was not self-resolved.
Finance Lead or Bookkeeper
Whenever a team member joins or leaves (finance lead, bookkeeper, or operations manager)
Update the contact table in Section 04 of this document. Revoke Xero and HubSpot access for the departing team member and provision access for the new one. Notify FullSpec support if the Slack notification channel or approval recipient needs to change.
Operations Manager
Quarterly volume review (every three months)
Check whether invoice volume has grown significantly above the 90-per-month baseline. Higher volumes may require a plan upgrade on the workflow automation tool or a review of API rate limit headroom across Xero and HubSpot. Share current volume figures with FullSpec support for a quick assessment.
Finance Lead + FullSpec team
The single most common maintenance issue for this process is a mismatch between the company identifier in HubSpot and the contact name in Xero. If a client record is created slightly differently in each tool, such as 'Acme Ltd' in HubSpot versus 'Acme Limited' in Xero, the Invoice Builder Agent cannot match them and will stop the run. Whenever a new client is onboarded, confirm that the company name or domain is identical in both systems before their first job is marked complete.
Process Runbook / SOPPage 4 of 4