New security awareness clients should be billed in Xero the moment they sign up, not at month-end when somebody remembers. This guide shows how to connect Cyber Aware enrolment events to Xero invoicing using Zapier, so a signed MSP client becomes a contact and an invoice automatically.
TL;DR
- The flow: a Cyber Aware new-portal or new-enrolment event triggers a Zap, which creates the client in Xero and raises the invoice.
- Zapier's Xero app supports Create Contact, Create Sales Invoice, Send Sales Invoice by Email and Apply Payment to Invoice - the full billing chain needs no custom code.
- Build it in two Zaps: one for contact + first invoice on signup, one for recurring monthly invoices.
- Test with a staging client before pointing it at your real Xero org, and log every Zap run so a silent failure never becomes a missed invoice.
Why this matters
Per-seat security awareness pricing is unforgiving about billing drift. Seat counts move monthly as clients hire and shed staff, and an MSP that re-prices by hand every month either under-bills quietly or spends admin hours reconciling. Automating the billing trigger removes the monthly spreadsheet pass and closes the gap between a client going live and an invoice existing.
There is a second benefit MSPs feel within weeks: cash flow. When the invoice is raised on the day the portal spins up rather than at the end of the following month, payment terms start counting immediately.
What you need before you start
- A Zapier account with access to multi-step Zaps for the contact-plus-invoice flow.
- A Xero account you can authorise, with permission to create contacts and invoices.
- Your Cyber Aware billing fields: the client name, agreed per-seat rate, seat count and any setup fee. Decide now whether seats are billed at signup count or a contracted minimum.
- A test client to run the whole flow against before it touches your real ledger.
Step 1 - Trigger the Zap from a new client going live
- In Zapier, create a new Zap and choose the Cyber Aware app as the trigger.
- Select the event that represents a new client portal or a new enrolment batch - whatever event your onboarding produces when a client signs.
- Connect your Cyber Aware partner account and test the trigger with an existing event so sample data flows through.
Expected result: the Zap fires with real sample fields - client name, email, seat count - visible in the Zap editor.
If your onboarding is handled in a PSA or CRM instead, trigger the Zap from that system's signed-deal or account-created event. Zapier's Xero integration supports many upstream triggers, and the Xero side is identical either way.
Step 2 - Create or update the contact in Xero
- Add a Xero action and choose Create Contact - Zapier's Xero app creates a new contact or updates one if it already exists.
- Map the client name, email and any reference fields from the trigger data.
- Use an external reference field to store the Cyber Aware account identifier, so future Zaps can find the same contact reliably.
Expected result: a test run creates the client in Xero once, and a second run updates rather than duplicates it.
Step 3 - Raise the first invoice
- Add a second Xero action: Create Sales Invoice (Accounts Receivable).
- Map the contact from step 2, set the invoice date to today, and set due terms to your standard MPS terms.
- Add a line item for the training seats: quantity from the trigger's seat count, unit amount from your agreed per-seat rate, and a description that names the service period.
- Add the optional Send Sales Invoice by Email action if the client should receive it the moment it exists.
Expected result: a draft (or sent) invoice in Xero with the correct seats, rate and terms, created within seconds of the trigger firing.
Step 4 - Handle recurring billing and seat changes
- Duplicate the Zap and change the trigger to a scheduled event - the first of each month works for most MSPs.
- Use a Xero search step to find the contact by the external reference stored in step 2.
- Raise the recurring invoice with the current seat count, or your contracted minimum, whichever the agreement says.
If your agreement bills on actual seats, decide where the seat count comes from: the Cyber Aware reporting, or a scheduled export that updates the invoice line. Keep one source of truth - a dispute over eleven seats versus thirteen seats is exactly what this automation exists to prevent.
Test before you trust it
- Run the full flow against a staging client with a $0.01 invoice value in a sandbox Xero org where possible.
- Confirm the contact, invoice, email and payment application each behave as mapped.
- Turn on Zap error notifications so a failed run emails you rather than failing silently.
- Review the first month of runs before relying on the automation unattended.
Troubleshooting
- Duplicate contacts. The Zap is matching on name spelling rather than the stored reference. Always match on the external reference field from step 2.
- Invoices raising with zero seats. The trigger sample had no seat count. Add a required-field check in the Zap, or fall back to the contracted minimum when the field is empty.
- Zap runs but no invoice appears. Check the Xero action's run history in Zapier - a validation error on the line item (missing account code, wrong tax rate) is the usual cause.
- Wrong currency or tax rate. Set these explicitly on the invoice line; Xero defaults come from the contact, and a new contact has none.
What to do next
Billing automation pairs with the delivery side: security awareness training runs the monthly cadence the seats are paying for, and human risk reporting is the deliverable that justifies the renewal. If you are still comparing platforms for the underlying programme, the comparison guide ranks the field across the dimensions that matter to an MSP.
FAQ
Can Xero invoice automatically without Zapier? Xero can set up repeating invoice templates, but it cannot watch an external event like a new client going live. A Zap bridges that gap: the Cyber Aware event starts the flow, Xero does the accounting.
What Zapier plan do I need for Cyber Aware to Xero? A multi-step Zap (contact plus invoice in one flow) needs a Zapier plan that supports multiple actions. Check current plan features on Zapier's pricing page before building.
How do I bill clients whose seat count changes every month? Trigger the invoice from a monthly schedule and pull the current seat count from your reporting or a scheduled export at invoice time. Bill the contracted minimum as a floor so the invoice is never zero.
Does this work for annual-upfront billing? Yes - the same flow raises a single invoice with a twelve-month service period line item. Keep the seat count and period in the line description so the client's approval matches the ledger.