UK therapy practice · Invoicing automation
A solo therapist’s weekly admin — reconciling bookings, looking up rates, drafting invoices, chasing receipts — collapsed into a single form click. Three workflows run quietly behind the scenes for the rest of the cycle.
Every week the practitioner moved between three systems — Acuity Scheduling (bookings), a Google Sheet (per-client rates and payment preferences), and Xero (invoices) — to bill the sessions she’d delivered. About an hour of repetitive lookup-and-paste each Sunday, with three recurring failure modes:
A single form the practitioner opens in her browser. She picks a date range, ticks the sessions she wants to invoice, and clicks Submit. The rest is automatic: the system pulls each booking, looks up the client’s rate and payment preference, deduplicates against anything already raised in Xero, creates correctly-themed draft invoices, and tags every appointment so it can’t be billed twice.
Two background workflows then complete the cycle: one watches Xero for invoices that have been sent, one watches for invoices that have been paid — emailing the client a branded receipt with the PDF attached, reconciling the booking system, and sending the practitioner a short digest of what happened.
Sunday afternoon, five minutes, three steps:
flowchart LR
classDef extern fill:#fdfcfb,stroke:#c4873b,stroke-width:1.5px,color:#0a0f0f
classDef hub fill:#0a0f0f,stroke:#c4873b,stroke-width:1.5px,color:#fdfcfb
classDef mail fill:#f3f2f1,stroke:#9a9a96,color:#0a0f0f
A["Acuity
Scheduling"]:::extern
S["Google
Sheets"]:::extern
X["Xero"]:::extern
N["n8n
(3 workflows)"]:::hub
EC["Client receipt
emails + PDFs"]:::mail
EP["Practitioner
digest emails"]:::mail
A <--> N
S <--> N
X <--> N
N --> EC
N --> EP
Three systems read & written through n8n; two outbound email streams keep the client and practitioner in the loop.
Receipts, reconciliation, and the weekly digest land automatically through the week. Sensitive session content never leaves Acuity — the first node in every workflow strips fields that aren’t needed downstream, so they cannot propagate by accident. Booking-system labels act as the spine of the whole system, which means every workflow is fully idempotent: any run can be safely repeated without duplicating anything.
Want a write-up like this for your own business? The first automation is free — if it saves you time, we move onto a monthly plan. If it doesn’t, we shake hands and part ways. Start a conversation →