# Generate a Unique Code based on User's Email

**URL:** <https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587>\
**Category:** Ask for Help\
**Created:** [September 24, 2024, 9:21am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587 "2024-09-24T09:21:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 24, 2024, 9:21am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/1 "2024-09-24T09:21:49Z")

</div>

Hi Team 👋

Is there a way to create a unique code (like 6 to 8 characters) based on user’s email?

Thanks,  
Joey

---

<div class="post-metadata">

**Author:** ![Himaladin](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/himaladin/32/71023_2.png) [@Himaladin](https://community.glideapps.com/u/Himaladin)\
**Post date:** [September 24, 2024, 9:33am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/2 "2024-09-24T09:33:09Z")

</div>

You can try this with a javascript column:

```auto
function generateUniqueCode(email) {
  // Ensure email is lowercased and trimmed
  const normalizedEmail = email.trim().toLowerCase();
  
  // Create a basic unique code by converting each character's char code to a base-36 string
  let code = '';
  for (let i = 0; i < normalizedEmail.length; i++) {
    code += normalizedEmail.charCodeAt(i).toString(36);
  }

  // Return the first 8 characters for a short unique code
  return code.substring(0, 8);
}

const code = generateUniqueCode(p1);
return code;

```

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 24, 2024, 9:34am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/3 "2024-09-24T09:34:35Z")

</div>

Oh I haven’t done scripting in Glide before. How to use this script? Thanks by the way @Himaladin !

---

<div class="post-metadata">

**Author:** ![Himaladin](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/himaladin/32/71023_2.png) [@Himaladin](https://community.glideapps.com/u/Himaladin)\
**Post date:** [September 24, 2024, 9:36am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/4 "2024-09-24T09:36:25Z")

</div>

Like this:

 ![Screenshot 2024-09-24 at 16.35.43](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/1/8193c2ad6147a5cf5807ecff1caa02bea9a169b1.png)

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 24, 2024, 9:36am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/5 "2024-09-24T09:36:28Z")

</div>

I’m getting this error…

 ![Screenshot 2024-09-24 at 5.36.04 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/6/d66de8710b8c4f72c05b663b1a0fbac2c2a2f540.png)

---

<div class="post-metadata">

**Author:** ![Himaladin](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/himaladin/32/71023_2.png) [@Himaladin](https://community.glideapps.com/u/Himaladin)\
**Post date:** [September 24, 2024, 9:37am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/6 "2024-09-24T09:37:38Z")

</div>

> [@taleno.digital](#):
>
> I’m getting this error…

Ignore it.

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 24, 2024, 9:37am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/7 "2024-09-24T09:37:52Z")

</div>

Thanks this works!

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [September 24, 2024, 9:42am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/8 "2024-09-24T09:42:27Z")

</div>

The error was because you hadn’t filled in the `p1` value:

 ![CleanShot 2024-09-24 at 17.40.54@2x](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/c/8cfe81a9e30ee2679ecd713af4d5cc160ea432cc.png)

You may also see that error if you have empty rows, but in that case it can be ignored.

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 25, 2024, 3:09am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/9 "2024-09-25T03:09:47Z")

</div>

Hi @Darren_Murphy , I noticed that it generates the code every time I open my Users table. Is it correct? So if I have 100k users, it will generate it every time?

---

<div class="post-metadata">

**Author:** ![Himaladin](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/himaladin/32/71023_2.png) [@Himaladin](https://community.glideapps.com/u/Himaladin)\
**Post date:** [September 25, 2024, 3:32am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/10 "2024-09-25T03:32:04Z")

</div>

Don’t worry, it’s just a computed action visible in the Glide table. The code stays consistent and doesn’t generate a new value each time the table is accessed.

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 25, 2024, 9:55am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/11 "2024-09-25T09:55:42Z")

</div>

Yeah I’m just worried about performance if it always generate the codes…

---

<div class="post-metadata">

**Author:** ![Eric\_Penn](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/eric_penn/32/73888_2.png) [@Eric\_Penn](https://community.glideapps.com/u/Eric_Penn)\
**Post date:** [September 25, 2024, 11:25am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/12 "2024-09-25T11:25:24Z")

</div>

In your users table are you using row owners? What is the purpose of the code and how will you use it?

If row owners is applied to your users table then most likely the JS only runs on one row. It only appears to run on all of them in the data editor

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 25, 2024, 12:56pm UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/13 "2024-09-25T12:56:05Z")

</div>

I’m not using any row owners at the moment… I’m using the generated code to expose in the app instead of the user’s email address… And speaking of row owners, will check on security measures next…

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [September 25, 2024, 9:52pm UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/14 "2024-09-25T21:52:07Z")

</div>

Hola!

You might have problems using this procedure if your customer’s email has more than 6-8 characters. Some coincides can happen and create headaches.

See these 2 examples when you have a code based on 8 chars:

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/2/72009537e2c1a871b7e2f10c7086f932f4e3f443.png)

Of course, the @Himaladin’s code doesn’t have any blame of this, it’s its implementation.

Instead, I’d use a RowID to tag each email/row or at least the last 8 characters of the RowID to reduce the chance of having a match by accident. Something like this:

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/f/7/f7b54ce9ed66a113718b0bebb59876362f1d79af.png)

I hope it helps.

Saludos!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 26, 2024, 12:17am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/15 "2024-09-26T00:17:51Z")

</div>

Is there a reason you don’t use the rowID?

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 27, 2024, 9:21am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/16 "2024-09-27T09:21:38Z")

</div>

Thanks @ThinhDinh ! Final is using RowId 😀

---

<div class="post-metadata">

**Author:** ![taleno.digital](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/taleno.digital/32/47944_2.png) [@taleno.digital](https://community.glideapps.com/u/taleno.digital)\
**Post date:** [September 27, 2024, 9:22am UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/17 "2024-09-27T09:22:32Z")

</div>

how to get the last characters @gvalero ?

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [September 27, 2024, 6:31pm UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/18 "2024-09-27T18:31:37Z")

</div>

Sure!!

Just use this JS code to get the last 8 chars:

```auto
return p1.substr(p1.length-8);

```

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/3/33ebce594816f38a58595b00f06615651d332893.png)

Saludos!

---

<div class="post-metadata">

**Author:** ![nathanaelb](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nathanaelb/32/43079_2.png) [@nathanaelb](https://community.glideapps.com/u/nathanaelb)\
**Post date:** [September 27, 2024, 10:34pm UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/19 "2024-09-27T22:34:42Z")

</div>

You could use the “Slice text” computed column I think.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [October 4, 2024, 10:34pm UTC](https://community.glideapps.com/t/generate-a-unique-code-based-on-users-email/76587/20 "2024-10-04T22:34:55Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
