I want to make an app where company profiles with all their attributes are displayed on dataset “All companies”. If a user says it is interesting, it needs to be removed from dataset “All companies” for that user and moved into an “Interesting companies” dataset.
I have already done sth like this with the help of actions (moving a row to another dataset and then deleting it), but in my case (with non user-specific columns), if one user says the company is interesting (presses the button to move the company to “Interesting companies”), then it is moved there for everybody.
What I want to achieve is for every user to have a “unique” experience. What I mean by this is that every user gets the same list of companies, and when user A says interesting for Company 1, it is moved to that user’s “Interesting” dataset and removed from that users “All companies”, so that each user goes through all companies and decides for themselves.
I would also like to have some oversight over what each user has decided so that I can sample the results in the end (with permission of course, will be an in-company thing).
Any idea on how to achieve sth like this? All ideas are welcomed!
As I was reading your question, I was very close to suggesting a single user specific boolean column in your Companies table. But that won’t work, because…
Given the above, two possible options:
Create a separate “Interesting Companies” table, with 2 columns - a UserID and a CompanyID. When a user decides that a company is interesting, use an action to add a row to that table with their UserID and the CompanyID. This is a very simple solution, and will make it very easy to sample the results, but the downside is that it may use a lot of rows - which may or may not be an issue for you.
An alternative approach is to use Joined Lists. For example, you could create an “Interesting Companies” column in your Users table. That column would contain a comma separated list of CompanyID’s. When a user decides that company is interesting, that companies ID is added to the list. This approach is a little more difficult to implement and manage (search the Community for “Trebuchet”), but it wouldn’t cost you any extra rows.
Thanks for the quick reply! The thing is that I want the users to be able to access the “Interesting companies” as well, in case they press a button by mistake.
My idea was that when the company is moved into the new “Interesting” dataset, each user could go there and see the companies they decided were interesting, maybe have an option to email them or move them “back to all companies”.
Also, could you clarify how would the UserID work and what would I need to do to implement it. Seems like a good idea and the number of rows shouldn’t be a problem, since I can just export the results more often
That’s fine. Both of the solutions that I outlined will give you this option.
Okay, please don’t take this the wrong way, but you should get the idea of moving records around between tables right out of your mind. It’s completely the wrong way to go about this. It will be difficult to setup and manage, you’ll be creating redundant data, you’ll have extra screens to build and maintain, and before you know it you’ll have a whole tangled mess that won’t even work. Please trust me on that
Okay, so when I was referring to UserID and CompanyID, what I really meant was RowID. You should add a RowID column to each of those two tables. Glide will automatically create a unique value in each row, and these become your UserID and CompanyID values.
And these are the values that you would add to the “Interesting Companies” table. One row for each combination of User & Company.
When it comes to presenting a User a list of their own “Interesting Companies”, there are any number of ways to do this. For example, you could do something like this:
In your Users table, create a multiple relation column that matches the UserID with the UserID in your Interesting Companies table.
Next add a Joined List column, that fetches all the CompanyID’s via that relation.
Now add a Collection to your Layout, target it at your Companies table, and filter it where “CompanyID is included in User Profile->Joined List of CompanyID’s”
That’s just one way off the top of my head. There are probably a dozen other ways you could do the same thing.
Thanks for your reply! Seems really helpful! Am trying it out rn and having some problems since I haven’t worked with some of these functions a lot. Will keep working until it seems to work!
If you can think of other solutions that might be simpler, please lmk!
From what I am understanding, I would have a new addition to the “interesting” table when a user presses that button, however these entries won’t be removed from “All companies”. Wouldn’t moving records around be the most straightforward way to do this?
Seems simple in my mind, you move it to “Interesting” if user A finds it interesting, user B does the same thing. They all go through all companies, maybe I could add UserID as a column so that I know which one found which interesting, but these would only be available to me, while each user only views their own choices.
Isn’t this doable, and can you guide me a little more thoroughly on the processes if it’s not too much of a bother? Now that the AI has been replaced I’m finding it kinda difficult to get answes to such specific questions. The new AI/Support hasn’t been that helpful.
Maybe I could also make 5 apps for 5 different users. Idk how that’s going to affect cost tho.
I agree with @Darren_Murphy. Your approaches to the problem are going to lead to a lot of duplicate work. Creating multiple screens for multiple tables, or creating multiple apps means you will be doing the same thing more than once. That’s fine if that’s what you want to do, but when you want to make a change to one screen, just remember that you will have to do it in multiple places…whether that’s 2 or 3 more times in one app, or 5 times if you have multiple apps.
Hey @Darren_Murphy! Looks great! Made some changes myself to add some options and have got it rolling!
Just wanted to ask a couple of questions from the feedback I’ve got. Maybe you could help me with some other things if it isn’t too much of a bother.
Can I add an option so that when a startup is deemed as interesting, it is hidden from the eye of the user? I still want it somewhere so I can have an overview of everything, but I don’t want the user to see it anymore.
When a startup is deemed interesting, can it move directly to the next one?
Is there some other way that could incorporate these features. Would be a great help!
What about the second question? Let’s say the users click on a company and go deeper in the company’s profile. Then they select interesting. Is there a way for them to move directly into the next one, instead of going back and then clicking on the next one? I don’t know if I’m clear