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.
New submission on your "Join our list" signup form
Create Customer in Square with the name, email and phone from the submission
One-directional. A submission triggers the action — nothing is written back into your form.
A counter signup usually starts life on a paper slip and gets typed into Square weeks later, if at all. Pointing the form at the Customer Directory closes that gap: the profile exists before the customer has left the shop.
Shops running Square Marketing or a loyalty tier reach for this first, because a campaign only reaches the profiles that actually exist. It covers the online half of the same list too, so the QR code by the till and the form in your site footer fill one directory instead of two.
Setting it up
- 1
Publish the loyalty signup form in formformform and put it behind a QR code at the till as well as on your site, so counter and online signups arrive through one form.
- 2
In Zapier, create a Zap on formformform's New Submission trigger and select this signup form by name — a contact form on the same site should not be creating customer profiles.
- 3
Add Square as the action app, choose Create Customer, and connect the Square account for the location whose directory you are building.
- 4
Split Full Name across Square's given name and family name fields with a Zapier formatter step, since Square stores the two separately.
- 5
Map Email Address and Phone Number to their Square equivalents; those are the two values Square Marketing sends on later.
- 6
Map Date of Birth (for birthday rewards) to the birthday field on the profile, so a birthday offer has a date to fire on.
- 7
Carry Categories You're Interested In and Preferred Communication Method into the customer note or a custom attribute, so nobody gets emailed who asked to be texted.
- 8
Sign up from your own phone as a test, check the profile in the Square Customer Directory, then switch the Zap on.
What maps where
Using the Customer Loyalty Program Sign-Up Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Square |
|---|---|
| Full Name | Given name and family name on the Square customer profile, split by a formatter step |
| Email Address | Email address on the profile — the field Square Marketing campaigns send to |
| Phone Number | Phone number on the profile, and how staff pull a customer up at the till |
| Date of Birth (for birthday rewards) | Birthday on the customer profile |
| Preferred Communication Method | Custom attribute or note, so you only contact people the way they asked |
| Categories You're Interested In | Customer note or custom attribute, used to narrow a campaign to one part of the shop |
Variations worth knowing
Running more than one location makes the origin worth keeping. Publish a copy of the form per shop and set a fixed value on each Zap that writes into a location custom attribute. The directory can then be filtered down to the people who walked into one particular branch.
Add a Zapier filter on I agree to the loyalty program terms and conditions. Submissions where the box is unticked stop at the filter and never reach Square, while the response itself still sits in formformform if you need to see what happened.
If something isn't arriving
Square keeps given name and family name apart, so a single Full Name value has to be split before it gets there. Add a Zapier formatter step that splits on the last space, or replace Full Name on the form with two separate fields.
Create Customer does not check for an existing record; it makes a new one every time. Put a Square Find Customer step that searches on the email address in front of it and only create when nothing comes back. Square's own merge tool cleans up the duplicates you already have.
Frequently asked questions
Does this enrol people in Square Loyalty?
No. The Zap builds a directory profile. Loyalty enrolment is a separate thing in Square, usually handled at the point of sale. What the profile gives you is a complete, correctly spelled contact record for the campaigns you send out of Square Marketing.
Do I need a Square Online site for this to work?
No. The form embeds anywhere with two lines of HTML, and it works just as well from a printed QR code on the counter as it does on a site. Square only needs to be at the receiving end of the Zap.
Does anything come back from Square into the form?
No. The connection runs one way: a submission triggers an action in Square, and nothing is written back. Your raw signups stay in formformform, where you can filter, search and export them independently of the directory.
Related automations
- Add new members to a customer group
Each membership signup creates the customer in Square and drops them into the group your discounts and campaigns point at.
- Build a pickup pre-order the counter can ring up
A weekend pre-order arrives in Square as an open order with the right items, so staff prep it and ring it up at the register.
- Log catering enquiries as a customer and a draft invoice
Every catering enquiry lands in Square as a named customer and a draft invoice with the event details already on it.
- Record workshop registrations as customers
A class registration becomes a Square customer tagged with the workshop they booked, so invoicing and follow-up start from a real record.
- Turn quote requests into draft invoices
An order enquiry arrives in Square as a draft invoice addressed to the buyer, with the spec and the figure already on 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