Is there an object for following a record in chatter?

We have a part of our partner portal where clients log in to submit new work requests. This generates a record in a custom object UCCLien__c. We’d like for this submittal action to also cause the person submitting to follow this record in Salesforce, so when we change a field that is in the feed tracking, e.g. Status, they get notified, e.g. Jack Sanford changed the Status to Complete. 

Is there a Chatter object that links a user to an object’s record? Then we could create a new row in this object’s model with the submit button actions. 

If not, any other ideas for achieving this? 

EntitySubscription is the object.

Make sure to read the docs as there are a number of implementation considerations involved when using EntitySubscription.

What I recommend is to have 2 Row Actions on a table, one which creates a new EntitySubscription record, one which deletes an existing one, both Conditionally Rendered based on whether the running user has already subscribed to follow the given record. The Conditional Rendering on this will be tricky, I recommend pulling in the FeedSubscriptionsForEntity Child Relationship for the record, limit 1 with a Condition to limit to just Subscriptions for the running User, and then create a Ui-Only Formula Field on the Model which returns true if there is a Child Relationship record for the given record, e.g.


Here is a link to the XML for a sample page which lets you follow/unfollow Accounts — the approach is identical for any standard or custom object:…

I like the use of the UI-only field to pull in the child relationship field. Before that I used to have to hack the XML to put the child relationship field name in there render condition. 

That UI only field trick is pretty slick! 

This is great! Is there a way to show a table with only Open Opportunities that the current user follows? I want to be able to put a condition or filter on the UI-only field mentioned, but it appears UI-only fields do not work on conditions/filters.

Is there a workaround for this?