I’m creating an option for the people of my company to tell that they’re interested in some events added by other employees.
I want the users to say he/she’s interested (increment button) and have their name added to a list and displayed in the event via “set column value” in the same action as the incremented (see image).
My only issue is that in the column each new employee saying his interested will erase the value in that column. How could I have this values added within a sell and separated by comma (to then relate to their profile via relation)?
Create a text column to hold a comma separated list of users (recommend that you use UserID/RowID rather than names)
The above column will initially be empty
Create a template column with something like {list},{user}
– Replace {list} with the contents of the CSV column
– Replace {user} with the UserID of the logged in user (taken from User Profile)
Create an if-then-else column:
– If CSV column is empty, then signed in users UserID
– Else template column
When a user taps the button to show they are interested, your action should do a Set Column Values, setting your CSV column to the output of the if-then-else column
The increment action is not required. To get a list of interested users:
Create a Split Text column that operates on the CSV column
Create a multi-relation that links the Split Text column to your Users table
And to get a count of interested users, simply do a rollup on that split text column.
Caveats:
The above solution will not work if your User Profiles table uses Row Owners
There is a small possibility of a concurrency issue - if two or more users tapped the button at exactly the same time, one of them may not get added to the list.
I just need a clarification: that first text column to hold a comma separated list of users (CSV column) how do I set it up? Does it mean I create a basic text column which gets the input of the “Set Column Value” action with the ID of the user?
For the moment I still have the same problem of not gathering the list but I feel it’s close.
I’d probably use the Remove Element from Array plugin for that. You could use the Split Text column as the array, and have the plugin remove the current users ID from that array. Then convert the result to a joined list, and use that to update your “CSV” column if the user changes their mind.