You ask for a phone number on a Google Form, then call it and reach a stranger, a disconnected line or 9999999999. The natural next question is whether Google Forms can check the number before the response comes in.
The short answer is no, Google Forms can't verify a phone number. It can check that what was typed looks like a phone number, which is still worth doing. Here's how, with patterns to copy, and what to use when you need to know the number is real.
Format check vs verification
| Format check (Google Forms) | Verification (one-time code) | |
|---|---|---|
| What it checks | The number has the right digits and length | The person can receive messages on it |
| Stops typos | Yes | Yes |
| Stops made-up numbers | Only obviously wrong ones | Yes |
| Stops someone else's number | No | Yes |
| Extra step for people | None | Typing a 6-digit code |
Validate the format in Google Forms
- Add a Short answer question, such as “Mobile number”, and make it required.
- Click the three-dot menu at the bottom right of the question and choose Response validation.
- Choose Regular expression, then Matches.
- Paste a pattern from the table below.
- Write an error message that shows the format, such as “Enter a 10-digit mobile number, like 9876543210”.
Tell people the format in the question's description too. A rule they can only discover by failing it is the quickest way to lose them.
Phone number patterns to copy
| Accepts | Pattern | Example |
|---|---|---|
| Any 10 digits (Google's example) | [0-9]{10} | 0123456789 |
| Indian mobile, 10 digits | ^[6-9][0-9]{9}$ | 9876543210 |
| Indian mobile, optional +91 or 0 | ^(\+91|0)?[6-9][0-9]{9}$ | +919876543210 |
| US and Canada, 10 digits | ^[2-9][0-9]{2}[2-9][0-9]{6}$ | 4155550123 |
| UK mobile | ^(\+44|0)7[0-9]{9}$ | 07700900123 |
| Any country, international format | ^\+[1-9][0-9]{7,14}$ | +14155550123 |
These patterns don't allow spaces, dashes or brackets, so say “digits only” in the question. Allowing every way people write numbers makes the pattern far harder to get right.
What validation can't catch
- Fake numbers that fit the pattern.
9999999999and9876543210pass an Indian mobile check. - Someone else's number. A friend's, a shop's or a number copied from a website all look valid.
- Typos that are still valid. One wrong digit gives another real-looking number.
- Bots. A script can fill in a valid-looking number as easily as a person.
If you call or message every response, or pay for each lead, those are the ones that cost you.
Ways to actually verify a phone number
Require a Google sign-in
Setting Collect email addresses to Verified confirms a Google account, not a phone number, and shuts out everyone without a Google account. It cuts spam but doesn't solve this problem.
Build it with Apps Script and an SMS service
A Google Apps Script can send a message when a form is submitted, but the form-submit trigger runs after the response is saved. It can text the number afterwards and flag it in your sheet, but it can't stop an unverified response from being recorded, and you maintain the script and pay the SMS service yourself.
Use a form builder with phone verification
The reliable way is a form that sends the code before the response can be sent, and checks it on the server. That's what an OTP verification form does.
Verify phone numbers with Tapzy
- Import your Google Form. Paste its public link and Tapzy rebuilds the questions. Or start from a template.
- Add or open the Phone field and switch on Verify with a one-time code.
- Choose WhatsApp or SMS. WhatsApp needs no setup and uses one credit per code; every account gets 10 free. SMS goes through your own Twilio account.
- Pick the countries you accept numbers from, then publish.
Respondents get a 6-digit code that lasts 5 minutes. The server only accepts the response once the code for that exact number has been confirmed, and verified numbers are marked in your results. For the WhatsApp side in detail, read how to verify phone numbers with a WhatsApp code.