My user’s submit ideas to the ideas table and tag their ideas with multiple “tags” from the tags table using the choice component with the “allow selecting multiple” option. I’m looking for a way to allow my users to continue choosing from the existing “tags” but add the ability for them to add custom tags to that table without having to add the custom tag THEN select it. Is there a way that submitting a new tag to the tags table would also automatically add it to the comma separated list created by the choice component?
How are you letting them submit ideas? If it’s a native form then that’s a no go because we don’t have access to the value yet. If it’s a custom form then there might be a way.
- Add a “User ID” column to your tags table.
- When users submit a new tag, write their User ID to the tags table.
- Create a relation - lookup combo from the Users table to the Tags table to retrieve the last tag added.
- Use a single value column to retrieve the value from the custom form column where you’re letting the users write the choices to.
- Split that SV column by comma, then add the “retrieved last tag” as a new element of the array, finally join the elements of the new array by commas.
- When users submit the tag, set a wait condition, and then write the "join list’ above back to the custom form column where you’re letting the users write the choices to.
Thinking there’s some sort of variation of this:
Glide: Append ANY CHOICE LIST after completing a form AUTOMATICALLY
I have a concept App that does this. Have a look below - if it’s what you are looking for I can provide instructions for setting it up.
Hi @Darren_Murphy ,
Do you still have those instructions? I’m trying to filter a list of policies based on user-selected tags. I need to show policies that contain the tags the user chooses.
Right now Im doing:
-
User Selection: A
Choice
component lets a user select multiple tags. This writes the selected tag names as a comma-separated string to a user-specific column in myUsers
table calledusc_SelectedTagList
. -
Policy Tag List: In my
Policies
table, I have aJoined List
column namedPolicy Tag List
. This creates a single, comma-separated string of all tag names for each policy (e.g., “perks, benefits, insurance”). -
The Filter Logic: In the
Policies
table, I have anIf-Then-Else
column calledIs a Match
. The logic is:-
If…
Policy Tag List
includesUser Profile
→usc_SelectedTagList
-
Then…
true
-
But this method is causing two issues:
-
If a user has no tags selected, the filter incorrectly shows all policies as a match.
-
The filter only works if the user selects tags in the exact same order as they appear in the policy’s tag list. For example, if a policy has “perks, benefits”, it doesn’t match a user’s selection of “benefits, perks”.
Should I be doing this differently? Or is there a way to fix this?
I’ll let @Darren_Murphy give instructions for his setup, but right off the bat I think you are just comparing string to string. You should be using a Split Text column to convert those text strings into arrays. That should hopefully get you a little bit closer.
Yeah, it’s odd. I’ve tried it where both are split text, joined list, and as a template and it can never really seem to detect a specific group of tags regardless of order.
It’s been quite a while since I made this one, so I had to go back and look to see how I set it up. What I did is as follows:
- Convert the selected tags to an array with a split text column
- Do the same with each items tags
- Use a remove elements column to remove the selected tags array from the item tags array
- Do a rollup->count on the resultant array
- If the count is zero, then the item matches all selections
- If the count is less than the total number of tags, but greater than zero, then you have a partial match
If you want a copy of the template, you can get it below: