We want to bring additional users into our Chatter with Chatter Free licenses, but realized that some sensitive posts have been made outside of bespoke private groups. This is causing a problem since we don't want the new users to see those posts. I can't solve this with Visualforce and Chatter does not support blocking users.
Short of deleting dozens of posts, are there any ways around this? Can posts and their comments be moved into private groups after the fact?
Update
A quick test in the Developer Console shows that you cannot UPDATE FeedItem so these posts cannot be re-parented.
Attribution to: Mike Chale
Possible Suggestion/Solution #1
You can use an appexchange tool "chatter Block" to block the users from being follow up you. Or you can create a private group and post over there. Using private group,it will be visible to the user who have permission to "view all data".It follows role hirarchy feature. I would like to suggest you to use tool "Chatter Block" for it. It is a free app.
Attribution to: sumita dhali
Possible Suggestion/Solution #2
There is no way to restrict visibility of individual posts bar putting them in private groups or a community.
You can "move" the posts to the new private group by recreating them and deleting the public messages. There is a profile permission that can be granted to users called "Insert System Field Values for Chatter Feeds". This will allow you to re-create the post, comments and likes and set the CreatedById and CreatedDate for those records, so they will appear as having been posted by the user at the original time. The objects you need are FeedItem, FeedComment and FeedLike
You could either do this by writing apex code, or via the api / dataloader.
You will not be able to migrate chatter polls until winter 14 goes live.
Attribution to: James
Possible Suggestion/Solution #3
You could perhaps implement a 'Chatter Censoring' orchestration, where you write a Trigger on FeedItem
and scan the post for certain (configurable) sensitive keywords. You can then either prevent posting of this post all together or automatically post it to a relevant private group.(set ParentId on the FeedItem)
trigger FeedItemCensor on FeedItem (before insert) {
for (FeedItem fItem : trigger.new){
//you could retrieve offensive keywords from a Custom Setting
if(UserInfo.getProfileId()=='PROFILE_ID' && fItem.body.indexOf('Offensive') > 0)
fItem.addError('You cannot post');
//fItem.ParentId = '0F9XXXXXXX'; //Alternatively set group Id as parent Id
}
}
Consider having a Custom Setting where the Name=> Value pair is potentially Keyword => GroupId, so that you can scan for keyword and then quickly understand which Group to attach the post to.
Attribution to: techtrekker
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/5398