Create a Xero contact when a new client signs on
Every new client who completes your intake form arrives in Xero as a contact, with company, email and phone already filled in.
New submission on your client onboarding form
Create or update a contact in Xero carrying the client's name, email address, phone number and company, ready for invoicing
One-directional. A submission triggers the action — nothing is written back into your form.
A consultancy signs a client on a Tuesday and invoices them on the Friday. The details typed into the intake form get retyped into the ledger somewhere in between, usually by whoever is free, usually from a forwarded email.
This flow removes that second typing. The intake form is where a client's name, company and contact details are recorded once, and Xero holds a matching contact before the engagement letter is out. Small practices and independent consultants who bill from Xero reach for it first.
Setting it up
- 1
Publish the consulting intake form and put one realistic enquiry through it, so the sample Zapier reads carries a company name rather than test text.
- 2
In Zapier, point the "New Submission" trigger at that intake form, add Xero, and choose the Create/Update Contact action against the organisation you invoice from.
- 3
Settle what fills Xero's contact Name field before mapping anything else. Xero keeps that name unique per organisation, so use Company Name and fall back to Client Name through a Formatter default for sole traders.
- 4
Split Client Name on the space with a Formatter step and map the halves to the contact's first and last name, so Xero's person fields are not left holding one long string.
- 5
Map Email Address to the primary email and Phone Number to the default phone, which is all Xero needs before it can email an invoice.
- 6
Set the contact's sales default account code from Industry using a Zapier Lookup Table, so advisory work and implementation work land in separate revenue accounts without anyone choosing a code by hand.
- 7
This template asks for no postal address. Either leave Xero's address block empty and complete it when you first invoice, or add an address question to your copy of the form before you connect the Zap.
- 8
Submit one enquiry end to end, find the contact under Contacts then All contacts, and turn the Zap on.
What maps where
Using the Consulting Client Intake Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Xero |
|---|---|
| Company Name | Contact Name in Xero — the unique name the record is filed under and the name printed on invoices |
| Client Name | First and last name of the primary contact person on the record |
| Email Address | Primary contact email, where Xero sends invoices, statements and reminders |
| Phone Number | Default phone number on the Xero contact |
| Industry | Sales default account code, set through a Zapier lookup so each sector bills to the right revenue account |
Variations worth knowing
Add an address question to your copy of the intake form, then split the answer with a Formatter step. Xero takes address line one, city, region and postcode as separate inputs, so a single free-text block mapped to line one leaves the postcode invisible on the invoice PDF.
Company Size is already on the form. Run Zapier paths on it and set the contact's sales payment terms differently in each path — shorter terms for small clients, thirty days for larger ones. Invoices raised later inherit the due date instead of defaulting to due on receipt.
If something isn't arriving
Xero will not hold two contacts under one name. Put a Find Contact step in front of the create step, search on Email Address, and pass the contact ID through when a match comes back so a repeat enquiry updates rather than fails.
Xero stores first and last name separately, and the form asks for one Client Name. Add a Formatter Split Text step on the space, map segment one to first name and the last segment to surname, and accept that double-barrelled names need a manual tidy.
Frequently asked questions
If I correct a client's details in Xero, does the form update too?
No. The connection runs one direction only: a submission creates or updates the Xero contact, and nothing is read back out. Corrections made in Xero stay in Xero, and the stored response in formformform keeps whatever the client originally typed.
Does the client get an email from Xero when the contact is created?
No. Creating a contact is silent. Xero only emails someone when you send them an invoice, a quote or a statement, so a new client hears nothing until you raise the first bill for the engagement.
Can I keep the longer intake answers out of Xero?
Yes. Only the fields you map travel to Xero, so Current Business Challenge and Desired Outcomes can stay unmapped. Those answers remain in the form's responses, where they are searchable, without cluttering a contact record that finance staff use daily.
Related automations
- Draft a Xero sales invoice from every wholesale order
Each trade order becomes a draft sales invoice in Xero, with the buyer's contact, line items and purchase order number already in place.
- Invoice workshop places as registrations arrive
Every workshop registration raises a Xero sales invoice for the session the attendee picked, priced from your own list.
- Prepare a draft Xero quote from every enquiry
Each quote request opens a draft quote in Xero with the contact set up, the service on a line and your standard rates attached.
- Raise a Xero bill from each expense claim
Staff expense claims land in Xero as bills awaiting payment, coded to the right account and tagged to the department that spent the money.
- Add counter signups to your Customer Directory
A signup at the till or on your site becomes a Square customer profile straight away, spelled the way the customer typed it.
- Add new clients to your QuickBooks customer list
Every new client who fills in your intake form arrives in QuickBooks as a customer record, ready to invoice.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free