# Request for Input on implementing Tags

**URL:** <https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506>\
**Category:** Ask for Help\
**Created:** [January 25, 2025, 10:07am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506 "2025-01-25T10:07:29Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 25, 2025, 10:07am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/1 "2025-01-25T10:07:29Z")

</div>

Hello and good morning, Afternoon or Evening according to where in the world you are right now. It is Saturday night in Queensland and one of the times I can put “day job” aside and get down to fun with Glide.  
My request for help is some pointers/guidelines/dos and donts and (hopefully) referrals to videos on how best to implement tags on records.  
Looking at a use case of classifying a person’s experience and exposure to different technology  
If there is say 50 developers in a company, how is the best way to set up a “tagging” system so they can be tagged with the experience they have.  
So for a mobile app developer, they would have tags associated with them such as JAVASCRIPT, REACT Native, Mongo DB, Glide…etc.

The requirement is to be able to have a long list of tags so that when editing the person row, it is possible to add a series of tages to the individual’s row, that corresponds to teh experience that they have with various tech tools etc.

Then it is required to be able to search on TAGS and to be able to use “AND” relationships in the query… so a query for a person tagged with GLIDEAPPS AND Javascript AND MAKE (as an example) can be identified by a query.

I would greatly appreciate any guidance plus referral to any relveant videos that you may know of

Thank you  
Alan

PS - I have reviewed a similar question from 2023 [Creating Tags for Individual List Items](https://community.glideapps.com/t/creating-tags-for-individual-list-items/60073)

And based on that I am wondering if the multiple choice component is the best way to go as with text entry comma delimited, tags can be duplicated but have slight differences eg capitals, mis-spelling and that will mean the searches will not be fool-proof if there are multiple tags with inadvertent variations

I am also aware that the serach default when searching for multiple tags will be an “OR” search - I want to be able to do “AND” seraches using the tags as the subject of the search

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 25, 2025, 12:57pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/2 "2025-01-25T12:57:46Z")

</div>

> [@alan\_singer](#):
>
> The requirement is to be able to have a long list of tags so that when editing the person row, it is possible to add a series of tages to the individual’s row, that corresponds to teh experience that they have with various tech tools etc.

I would do a choice component and link it to a new table containing one row per tag.

> [@alan\_singer](#):
>
> Then it is required to be able to search on TAGS and to be able to use “AND” relationships in the query… so a query for a person tagged with GLIDEAPPS AND Javascript AND MAKE (as an example) can be identified by a query.

You mean multiple filters?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 25, 2025, 12:58pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/3 "2025-01-25T12:58:17Z")

</div>

> [@alan\_singer](#):
>
> Hello and good morning, Afternoon or Evening according to where in the world you are right now. It is Saturday night in Queensland and one of the times I can put “day job” aside and get down to fun with Glide.

Love it 😂

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 25, 2025, 8:40pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/4 "2025-01-25T20:40:13Z")

</div>

Thanks @MaximeBaker  
The requirement is to be able to search the person table and list records that are related to ALL the tags being searched for eg  
“Find all the developers who have the tags “Glide”, “Javascript” and “Make” - but only list those that have ALL THREE of the tags.”

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 25, 2025, 9:40pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/5 "2025-01-25T21:40:49Z")

</div>

Something like this?

> **[How to search multiple tables (template)](https://go.glideapps.com/template/BvOLJUJKgxx64O7vsCpS-template-published?privateTemplateToken=5eLgbjqeAK08EJt8Upf5)**

You can change the computed columns sor it use the tags columns.

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 25, 2025, 10:18pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/6 "2025-01-25T22:18:59Z")

</div>

> [@MaximeBaker](#):
>
> I would do a choice component and link it to a new table containing one row per tag.

Yes, a table with one row per tag makes sense.  
The use case I am going for requires linking multiple tags to one person and also linking multiple persons to a singe tab  
So that means a “many to many” relationship (?)

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 25, 2025, 10:34pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/7 "2025-01-25T22:34:53Z")

</div>

Exactly!

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 25, 2025, 10:35pm UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/8 "2025-01-25T22:35:39Z")

</div>

But you can use one column for tags separated by comma in the people table.

---

<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:** [January 26, 2025, 12:44am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/9 "2025-01-26T00:44:19Z")

</div>

I would opt to do this, then create some sort of a custom filter, if the desired behaviour is always AND (not OR like the native filter).

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 26, 2025, 3:16am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/10 "2025-01-26T03:16:22Z")

</div>

OK - so how does using one column for tags separated by commas look from a user perspective?

Do they simply type in a tag followed by a comma, or is there a way that the table with a row per tag can be accessed to add the tag to the comma separated row?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:18am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/11 "2025-01-26T03:18:43Z")

</div>

> [@alan\_singer](#):
>
> OK - so how does using one column for tags separated by commas look from a user perspective?

This would only be for easy storing. But with split text column and lookups to the tags table, it can have the style you want. What are you interest to?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:20am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/12 "2025-01-26T03:20:35Z")

</div>

Or if you want to be more SQL like, you can have a table that take the user row id and the tag. One per row. And use relation in that many to many linking table to facilitate the access.

Example:

| User id | tag id |
| --- | --- |
| User 1 id | tag 1 id |
| User 1 id | tag 2 id |
| User 2 id | tag 55 id |

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:22am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/13 "2025-01-26T03:22:27Z")

</div>

Edited my previous reply.

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 26, 2025, 3:23am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/14 "2025-01-26T03:23:39Z")

</div>

Ahh Ok - so that is how we do many to many…  
I have done this before, set up a text column as a way of initially entering tags - this is done by the user being presented with the comma separated text filed whilst in edit mode and editing the text field and simply add further “tag entries” at the end of the comma separated “list”.  
The problem is the potential for mis-spelling of tags and duplicating tags with slightly different tag words that are trying to mean the same thing…

I am sorry as this seems very basic but I just cant see it at the moment…how can I add pre-defined tags chosen from a row in the tag file to a text field seprated by commas?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:25am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/15 "2025-01-26T03:25:01Z")

</div>

> [@alan\_singer](#):
>
> The problem is the potential for mis-spelling of tags and duplicating tags with slightly different tag words that are trying to mean the same thing…

There would be no misspellings if you setup row ids in your tag table and use the row id anywhere where you need to refer to the tag(s).

---

<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:** [January 26, 2025, 3:25am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/16 "2025-01-26T03:25:13Z")

</div>

So I guess my question is do you have a pre-defined list of tags?

Do you want to allow users to add custom tags?

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 26, 2025, 3:28am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/17 "2025-01-26T03:28:00Z")

</div>

Thanks @maximeBaker - I understand the row-id “play”…My question is how do I chooses multiple tags from the tag table, and how are the tags chosen (the rowi ds) added to the comma separated list?

---

<div class="post-metadata">

**Author:** ![alan\_singer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alan_singer/32/77340_2.png) [@alan\_singer](https://community.glideapps.com/u/alan_singer)\
**Post date:** [January 26, 2025, 3:29am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/18 "2025-01-26T03:29:23Z")

</div>

Hi ThinhDinh -  
yes there will be. a table of tags one row per tag  
custom tags to be added only by crud operation on the tag table

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:30am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/19 "2025-01-26T03:30:34Z")

</div>

> [@alan\_singer](#):
>
> I am sorry as this seems very basic but I just cant see it at the moment…how can I add pre-defined tags chosen from a row in the tag file to a text field seprated by commas?

There is no need to apologize… We all have our own pace and learning journey with Glide. You are doing great! We are here to help you anytime you want.

Regarding your question, here is how you can add predefined tags from a row in the tag table:  
Create your tags column.  
In the layout, choose the choice component.  
Map the choice component to the tags table.  
Select the tag name for the display text and the row id for the value.  
Save that to your tags column.  
Check allow multiple choices.  
There we go!

Let me know if you need further clarification!

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 26, 2025, 3:32am UTC](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506/20 "2025-01-26T03:32:16Z")

</div>

If you want to add new tags id without the choice component, in a workflow, you could append the new row id in the tags column like that:  
“, new tag id”

[Next page](https://community.glideapps.com/t/request-for-input-on-implementing-tags/79506.md?page=2)
