Solution: Simple and Effective Email Verification

Simple and Effective Email Verification with Make.com

For those looking to implement a simple yet effective email verification system in a Softr app without external authentication providers, here’s how I set it up using Make.com and Airtable.

Requirements

  1. User Signup & Initial Usergroup Assignment

    • Create a Sign-Up Block in Softr that automatically assigns new users to Usergroup A.
    • This user group is defined in Airtable by a field e.g. the field “Usergroup” = A.
    • On their home page, users in Usergroup A will see a block with a message:
      “Please verify your email before proceeding.” This block is only visible to Usergroup A.
  2. Create a Verification Page

    • A separate page (e.g., app.example.com/verify) contains a form with a single “Verify” button.
    • This form does not have any text fields.
    • This page is only accessible to logged-in users.
    • The form will send the current user’s record ID and a token (explained later) to Make.com via a webhook.
  3. Define a Verified Usergroup

    • Create Usergroup B for verified users.
    • This is defined by setting e.g. field “Usergroup” = B in Airtable.

Step-by-Step Implementation

1. User Signup & Initial Setup

  • When a user signs up, they are automatically added to Usergroup A.
  • They see the block prompting them to verify their email.

2. Send Verification Email

  • Airtable Automation:
    • When a new record is created in the Users Table, an Airtable automation triggers.
    • This automation sends the email address and record ID of this newly created user record to Make.com via a webhook (Scenario 1). I did this via a custom script. Ask chatgpt for help :wink:

3. Make.com Sends an Email with a Unique Link

  • Make.com receives the email and record ID from Airtable.
  • Make.com sends an email with a verification link, dynamically inserting the record ID as a URL parameter (in this example we call it “token”):
    app.example.com/verify?token=rec12345679
    
    • rec12345679 is the user’s record ID from Airtable. It’s a dynamic value.

4. User Clicks the Link and Visits the Verification Page

  • The user receives the email and clicks the verification link.
  • The record ID is passed as the “token” parameter in the URL.
  • Since the verification page is restricted to logged-in users, identity validation is not required separately.
  • This unique link is only send to their Email. So to open this exact link with the matching url parameter, they need to have access to the Email they registered with.

5. User Clicks the “Verify” Button

  • User clicks on the unique link and is sent to the verify page with the form.
  • The form on the verification page sends:
    • The current user’s record ID (retrieved from Softr).
    • The token (from URL parameter, which also is the record ID).
  • This data is sent to Make.com via a second webhook (Scenario 2).

6. Make.com Verifies the User and Updates Airtable

  • Make.com receives the record ID from the user and the token from the URL (which should also be the record ID from the user).
  • A filter step ensures that:
    User Record ID = token (record ID from the URL, so from the unique email link)
    
  • If the IDs match, Make.com updates the Airtable “Usergroup” field from A to B (user is now verified).

7. Redirect to Success or Error Page

  • You could take this even further:
  • If the verification is successful, Make.com can trigger a webhook response to redirect the user to a success page.
  • If the verification fails (e.g., incorrect token), the user is redirected to an error page.

For my thinking this method ensures a fully automated email verification process with minimal setup. Let me know if there are any questions!

Cheers,
Lukas

3 Likes

Thanks for taking the time to put this together @Lukas :raised_hands:t2:

I’d also like to say that our new user account blocks include an email verification method out of the box using the “sign in with code” option :wink:

I can see sign in with code but how does this help make sure a user signs up with their correct email address?

Because the user will input their email, then receive a code sent to that email, to login.

ok so a new person who has never created an account just enters their email, gets a code and then I redirect them to a proper signup form? How do I make sure they only have to do the sign up once?

@Jjenglert I am going to implement this using the new block. Can we expect to see this feature polished soon? I’d really like to be able to require email verification globally in an app and for it to use verification link instead of a code to copy paste.

This is built in for you automatically, @adamnagus

It’s polished already @mpetty

Let us know if you need anything else! I love this new feature personally.

@Jjenglert thank you for the response. It is a simple solution yes but we need to capture more information on sign-up, provide the option for a password or magic link and trigger welcome emails formatted using HTML to be more professional than the plain text options in Softr. We are balancing simple UX with data we must have to enable our workflows and assume humans make mistakes when entering email and phone numbers. I built a third-party workaround today which works but a simple verify email and phone block would save a lot of time, cost and compute :o) Thanks again for the support.

The new feature works great for accounts that already exist. The effort to keep making softr better shows with every update!

I filed a new feature request specific to this issue because for me it’s new account creation where email verification is needed.

@mpetty can i introduce you to my little friend? By selecting both methods yiu can require users to confirm their email on signup :wink:

Thanks! Where is that setting? I have looked through every screen but must have missed it several times.

On first glance this still looks different than what we are discussing. It looks like setting this as shown in your screenshot will require a code every time a user logs in. What we want is email verification on sign up and then allowing users to login normally.

I checked when my product team, and they informed me that by default, we have email validation at signup for every user. This is a default thing.

Then you can choose to include 2fa when users login or not. This should satisfy what you’re looking for, by default.

You just need to make sure you’re using our latest authentication blocks if you’re not already. Those are available for new apps, or soon will be available via migrating an existing softr application.

Oh I see, all of my apps are older. I’ll inquire about migrating via chat