Append a new 'connection' in a connected field

I want to be able to create something like a ‘Like’ button. Where users click a like button for a specific record(s) that they choose. And all ‘likes’ become connections between the user and the record(s) that they like.

Its easy to create the ‘action’ button, but how can I set up the action to ‘append’ a new connection in the connected field between items and users?

All I can see is how to set the connection field to ‘equal’ the logged in user. What this does is overwrite the existing connections that are there and leave just the current user - when I want to append the current user to the existing connections.

I guess I am asking how can I append to the connections array. Is there a pipe that I need ?

I have found a couple of other posts where people are trying, like I am, to append to a connection field - or to fill a connection field via an action rather than manual multiselect.

I have found a solution. Its not pretty, and I would prefer a native solution. But I thought I would share my solution.

Background
I want to have ‘Like’ button, and for a like to connect the user to record that they like. Obviously each user can have many likes, and each record can have many users who like it.
Therefore each new ‘like’ needs to add to (append to) the existing likes / connections.

The action to create the like button is trivial. But there is no method to append a like /connection. The only option available will over write the existing connections.

I thought I had found a frustrating cul de sac.

But I read another post where mo said that to update an array of connections “all thats needed is to pass the list of userID’s separated by a comma”.

And, that is what I set out to do. (and if my method can be improved I would be delighted)

Therefore, I created a textfield of likes/connections. The like action appends the userID to the textfield. To do this I used a Pipe to read any existing value in the textfield, and then concatenate a comma and the new UserID of the liking user.

All of this creates a string of UserID of likers, separated by a comma. And its this, that I needed to feed back into the connections field. But for some reason its not possible to feed this via a table rule (I tried). To make it work I had to send the field out of Tadabase and then read it back in (strange - but true).

I created a Zapier to spot the record change, and then send an update to the changed record and specifically to the connect field updating it with the contents of the textfield.

And it works :slight_smile:

Update
One issue I faced was that their is no way to test whether the new like is unique - has that user liked it before? I’d have needed two interconnected pipes for that. Therefore the concatenated string kept getting bigger with every repeat.

But I found that the connections created via Zapier input where not repeated - only unique values were used. Therefore I created a new field a rollup of the connections field - which is a text field of unique values … and this rollup is what is used to create the concatenated text field on subsequent runs (I hope any of this makes sense).

I just wish this was easier.