Tracking input of non-logged in users

Hi,

I have an app where the users can join a queue through a simple text input for their name and button to add it to the list.

I want to limit users so they are only allowed to enter their name once (until their name is deleted and they can enter it again). However, I do not want to force users to sign up / login to join the queue. How can I track whether an “anonymous” user (i.e., those that arent logged in) have entered their name already?

My mind initially went to tracking IP addresses using the ipiphy plugin, but given IP addresses can change this doesnt seem perfect. I’ve seen things around tracking cookies or utilising the built-in bubble user, but honestly Im not sure how to go about implementing this.

Any help / resources would be greatly appreciated!

Thanks

Tracking cookies is the way to go if you want to prevent them from joining the queue. Use a local storage plugin, when the user joins a queue (i.e. when they input whatever data you’re collecting, say email, to the input and clicks on “join queue” or something).
If you do not wish to use local storage, then you’d have to query the database to check if a similar entry already exists before their info is saved to the queue. This might consume more WU and not advised.

Use the plugin Local Storage & Cookies by Renato Asse. It allows to add multiple cookies with one element that’s why I prefer it. You can go for “Session & Local Storage” by Avan Labs. Works very similar (almost the same actually) but can only add one cookie item per element. So if you want to save tow cookie items, you can still save with one cookie element on the page, but you’d need to two cookie elements on page to retrieve both at the same time. Regardless, it serves the current purpose.

Add the “Web Storage” element on the page. (It’s called “Local Storage” if you’re using the plugin from Renato Asse). We’d be using the simpler one, “Session & Local Storage” as it serves it purpose for this.

  1. On page load, use the action “Do Get A Web storage”. In the input for key, use any key you’d like to store the cookie as. Say, “queue”


N.B: you have two ways to validate, first is to check immediately on the input field and notify the user that they have already joined the queue, and second is to do the check on the click of the action button after they’ve entered their data. I suggest the second as Bubble sometimes has some delays on conditional statements on input fields and bypassing said delays will require even more plugins.

  1. Set your workflows for joining the cue in a custom workflow.

If the join queue workflow runs, add an action “Do Add Web Storage”. Set key as “queue” and value as “input A’s value”

On click of the join button of action button, run that custom workflow on the conditional that: Only when "Web Storage A’s >Web Storage Value>is not>Input field A’s>value

N:B always note that cookies reset if the user resets the browser data or cookie/cache preferences/data.

You can use this to track multiple emails too within the same client side page load. Just use the join with and split by functions when saving to cookie or retrieving cookie data. It’s advised to save this to a custom state on the page to make it much more manageable.

Bubble tracks cookies, check if you have them enabled in the settings tab. If yes you can track the browser’s interactions. I am not sure how you’re going to limit the temporary user from entering values though.

This topic was automatically closed after 70 days. New replies are no longer allowed.