How to check the user inputted a business email?

Hi everyone,

I have an email input which needs to check if the users email is a business domain, such as contact@mycompany.com. I need to exclude public domain emails like @yahoo.com.

The only thing I can think is to have a condition which blocks it when the email ends with;
@yahoo.com
@gmail.com
etc

The issue here is that I don’t know how to block it based on only the emails extension? Also, I would have to list a lot of public domains to block.

Any ideas?

Hi there, @darren.james7518… there is an operator called :extract that enables you to extract the domain (e.g., gmail.com) from an email address. So, if I was doing what you described, I would likely create an option set with the most commonly used public domains (easily found via a Google search), and I would extract the domain from the email input on the sign up form and check it against the option set. If the domain is not in the option set, allow the sign up. If it is in the option set, block the sign up and display a message or something.

Hope this helps.

Best…
Mike

Thanks @mikeloc that could work, I will give that a go :slight_smile:

1 Like

@mikeloc I have set up the option set with a list of ‘banned’ emails but I am a little confused on where to extract the domain from the email input.

To be clear on my situation, my users can send invoices to their customers and I use Postmark to deliver these email. Postmark require the user has a business email.

A user can signup with any email, it is only later when they try and get their email verified that I require they have a business email. So they could have a signup email which is @gmail.com and a sender email which is @mybusiness.com if they wanted.

Here’s where they input their ‘invoice sender’ email

1

and here is the workflow for the “Verify” button

Where would I extract the domain from the email input?

Thanks in advance.

I would put the condition on the workflow event itself. So, add an Only when condition to the Button sender signature is clicked event, and have that condition extract the domain from the Sender email address input field and check it against the option set.

You could also do the validation when the input’s value is changed, but that probably wouldn’t change the outcome because the event wouldn’t fire until the user left the input, and they would likely leave the input by clicking the button anyway.

If it helps, here is an example of the condition that I believe should work.

I see your logic, but the following doesn’t work, the workflow still runs?

I added some test text to display “Domain is NOT a public one” if the condition is not met. The text is trigger even though the domain definitely IS a public domain. Maybe I should not be putting ‘@’ in the option set … I will show you …

Screenshot 2022-08-25 135033

Get rid of the @ symbols in your options. The extracted domain doesn’t include the symbol.

Perfect … thanks Mike

1 Like

All sorted, thank you it works perfectly. I actually put the condition on the ‘Verify sender’ button and made the button ‘not clickable’ when condition is not met. I also show an alert when condition is not met. Very happy :slight_smile:

met

1 Like

Hi @mikeloc I actually wanted to show a text if the input emails domain is in my option set list. Is that possible anyhow? Can you please show me the workflow of the same?

Regards,
Jacob

1 Like

So, there is a list of over 6,000 public email domains. I am sure most of them no longer operational but if I was to create an Option Set, is there a way to import them as a CSV instead?

No, Bubb;e.io doesn’t provide a way to import to an Option Set, unfortunately.

Wow awesome, damn I need this a few weeks ago!