How to Set Up Email Confirmation in Bubble.io (Step-by-Step)

Add secure, customizable email confirmation to your Bubble.io app in just a few simple steps.

Thomas Couderq

16 Jan 2025

Adding an email confirmation feature to your Bubble.io app is one of the best ways to boost your app’s security and build trust with your users. Whether you're building a marketplace, a SaaS platform, or a community site, confirming users' email addresses helps prevent spam, ensures account validity, and gives you a verified communication channel.

The good news? You don’t need any plugins or code to set it up.

In this hands-on guide, we’ll walk you through every step to create a custom email confirmation flow in Bubble.io, from generating a secure token to updating your database and sending a branded confirmation email.

No fluff—just a clean and functional solution you can implement in less than 30 minutes.

Let’s get started!

Why You Should Add Email Confirmation to Your Bubble.io App

When building apps with Bubble.io, user sign-up is often the first interaction someone has with your platform. But without verifying the user’s email address, you leave the door open to:

  • Fake or spam accounts

  • Typos that break your communication

  • Security vulnerabilities in account recovery flows

That’s where email confirmation in Bubble.io comes in. By asking users to confirm their email after sign-up, you’re not just validating identity—you’re also protecting your platform and improving your app’s reliability.

A proper email verification system in Bubble also lets you:

  • Ensure users have access to a valid inbox

  • Reduce bounce rates and improve deliverability for future emails

  • Create smarter onboarding flows by tracking confirmed users

In short, whether you’re running a marketplace, SaaS tool, internal dashboard or directory app, adding email confirmation to your Bubble.io app is a best practice that will pay off quickly.

Step 1 – Build Your Signup Flow

Before setting up your email confirmation in Bubble.io, you’ll need a working signup page where users can register.

In this tutorial, we’re using a prebuilt Signup/Login page from the Nocodable Components library. It includes everything you need:

  • A responsive layout

  • Login, Signup, and Reset Password views

  • Clean design that’s ready to plug into any Bubble.io app

No time wasted on UI. Just focus on your features.

💡 Don’t have a signup page yet? Grab the pre-made one from Nocodable Components and get started in minutes!

bubble.io signup page template

Already have a signup form set up in your Bubble app? Great! You can skip to the next step and integrate the email confirmation feature right into your existing flow.

Step 2 – Set Up Your Signup Workflow

Now that your signup page is ready, let’s build the workflow that registers a new user.

In the example below, we're using a basic “Sign the user up” action—just to demonstrate the logic clearly. Your actual signup flow might include extra steps like sending data to external services, showing alerts, or redirecting to an onboarding page. That’s totally fine!

bubble.io sign up workflow

Why We’re Not Using Bubble’s Built-in Email Confirmation

You might notice a checkbox in the "Sign the user up" action:
☑️ Send an email to confirm the email

Sounds great, right? Not quite.

❗️We’re intentionally not using Bubble’s native email confirmation feature in this tutorial.

Here’s why:

  • You can’t customize the email’s layout or branding

  • The built-in email is very limited (only plain text edits)

  • It’s harder to track and manage the confirmation status within your own database

Instead, we’ll build a custom email confirmation flow in Bubble.io that gives you full control over design, logic, and user experience—while still being simple to implement. And most importantly, you'll be able to use this logic with any Email provider you want.

Step 3 – Set Up Your Database for Email Confirmation

Now that we’ve built the interface and signup logic, let’s prepare the database to track whether a user has confirmed their email.

To do this, we’ll add two new fields to the User data type:

  • emailConfirmed? → (yes/no) —> default value = "no"

  • emailConfirmationToken → (text)

bubble.io email confirmation database

🔐 Why These Fields Matter

  • emailConfirmed? will help you control access across your app.
    For example, you can easily restrict users from accessing certain pages unless Current User's emailConfirmed? is “yes”.

  • emailConfirmationToken will store a unique string that we'll generate right after signup. This token will be used to identify and verify the user when they click the link in their confirmation email.

💡 This gives you complete control over the email confirmation process in Bubble.io—far more than the default built-in solution.

So go ahead and add these two fields to your User type before moving on.

Step 4 – Generate a Secure Confirmation Token (Using Backend Workflows)

Right after a user signs up, your app needs to do two things:

  1. Generate a secure emailConfirmationToken

  2. Send a confirmation email with that token

To do this securely, we’ll use a Backend Workflow (also known as an API workflow in Bubble).

Why Not a Frontend Workflow?

While you could generate the token using a regular frontend workflow, this isn’t 100% secure. A tech-savvy user could inspect their browser and retrieve the confirmation token—without even clicking the email.

✅ Using a Backend Workflow keeps the token generation hidden and secure, since it happens server-side.

⚠️ Note: Backend Workflows require a paid Bubble plan. If you’re using the free plan, you can still follow this tutorial using a frontend workflow—but be aware of the security limitations.

Step-by-Step: Create the Token Generator Workflow

1. Go to your Backend Workflows tab

Make sure the "Backend Workflows" (API workflows) feature is enabled in your app settings.

2. Create a new API Workflow

Click “Add an API workflow” and name it something like sendEmailConfirm.

3. Add a new parameter

Call it user and set its type to User.

bubble.io email confirmation backend workflow

4. Add a “Make changes to thing” action

Set the “thing to change” to user.

5. Update the emailConfirmationToken field

Use the “Calculate formula” → “Generate random string”.

  • Length: 8 characters

  • Only Numbers (you can customize this)

bubble.io generate email confirmation token

6. Add an email sending action

Now, let’s send the confirmation email. You can use any email provider, as long as you include the confirmation link with the token.

In this example, we’ll use Bubble’s built-in Send Email action for simplicity, but you can also use:

  • Mailchimp

  • Postmark

  • Brevo (Sendinblue)

  • Or any plugin/API you prefer

Make sure the email contains a link like this:

  • email_confirm is the page we’ll create in the next step

  • token=12345678 is the token we just generated

bubble.io send email action

💡 Pro Tip: Bubble recently announced that the free SendGrid integration will be discontinued. Consider switching to a paid SendGrid plan or an alternative email provider if you're planning for production use.

Step 7 – Trigger the Backend Workflow After Signup

Now that your backend workflow is set up and ready to generate the confirmation token and send the email, let’s connect it to your Signup flow.

Here’s how to do it:

  1. Go back to your Signup page

  2. In the workflow where you sign the user up (the “Sign the user up” action), add a new step right after

  3. Choose the action “Schedule API Workflow”

  4. In the “API Workflow” dropdown, select the backend workflow you just created (e.g., sendEmailConfirm)

  5. Set the User parameter to Current User

  6. Set the Scheduled Date to Current Date/Time

bubble.io schedule api workflow

And that’s it! 🎉

Now, whenever a new user signs up, your app will:

  • Securely generate an email confirmation token

  • Send the confirmation email with a link

  • Track whether their email is confirmed

Let’s move on to Step 5 – Build the Email Confirmation Page so users can click the link and confirm their email address.

Step 5 – Create Your Email Confirmation Page

Now that we’re sending a confirmation email with a unique link, we need to create the page where users will land to verify their email.

Here’s how to do it:

  1. Create a new page in your Bubble.io app (you can call it something like email_confirm, verify, or anything you want).

  2. Design it however you like! A simple message like “Thanks for confirming your email” or “Email verification in progress…” is enough.

  3. 🔗 IMPORTANT: The page URL must exactly match the one you added in the confirmation email link.
    For example, if your email includes this link:



    Then your Bubble page must be called email_confirm.

bubble.io email confirmation page

This is where we’ll process the token and confirm the user’s email in the next step.

Step 6 – Confirm the User’s Email on Page Load

We’re almost there! Now we just need to confirm the user’s email when they land on the confirmation page.

Here’s what you need to do:

  1. Open your confirmation page in Bubble (the one you linked to in your email, like email_confirm).

  2. Go to the Workflow tab, and create a new event:
    👉 "When Page is loaded"

  3. Add a new action:
    "Make changes to a thing"

  4. For the Thing to change, you’ll need to find the user based on the token in the URL:

    • Click "Do a Search for User"

    • Add this constraint:
      emailConfirmationToken = Get data from URL → parameter = token

    • Then select :first item to get the user that matches this token

  5. In the changes, update:

    • emailConfirmed? → ✅ Yes

And just like that, the user’s email is now confirmed! 🎉

🔐 This is the final step to making your Bubble.io email confirmation feature secure and fully functional.

Conclusion

And there you go — you’ve just built a complete email confirmation system in Bubble.io!

By using a secure backend workflow, a custom confirmation token, and a dedicated confirmation page, you now have full control over your email confirmation process — both in terms of design and security.

This approach not only helps you verify your users’ identities, but it also improves your app’s trustworthiness and keeps your database clean from fake or mistyped emails.

Quick Recap:

  • We created a signup flow using a responsive component.

  • We extended the database to handle confirmation logic.

  • We built a backend workflow to generate and send a secure confirmation token.

  • We created a confirmation page and used URL parameters to verify the user.

If you followed this tutorial step-by-step, your Bubble.io app now has a fully working email confirmation feature — and one that’s flexible and scalable!

🧠 Need more help building advanced features in Bubble?
Check out Nocodable Components — a growing library of high-quality UI blocks and components made for Bubble developers who want to save time and ship faster.

Thomas Couderq

Founder @ Nocodable

I've been building with Bubble for more than four years now. I've launched several projects (with more or less success). I'm passionate about no code and UI Design, which led me to founding Nocodable Components to help founders and professional Bubble developers build faster on Bubble.

Nocodable

Browse

Components

Copy & Paste

to your app

Launch

your app

Blog

Continue reading!

Check out our other tutorials to continue improving your Bubble skills!

Nocodable

#1 Components library for Bubble. 350+ fully responsive components to build you app 10x faster.

Copyright ©2025 Nocodable

Nocodable

#1 Components library for Bubble. 350+ fully responsive components to build you app 10x faster.

Copyright ©2025 Nocodable

Nocodable

#1 Components library for Bubble. 350+ fully responsive components to build you app 10x faster.

Copyright ©2025 Nocodable