• Duncan McGovern4
  • NEWBIE
  • 0 Points
  • Member since 2022

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies
Hey everyone,

I received a request to remove the chatter alerts on accounts that say "[NAME] updated this account by converting a lead." I'm sure you've received that complaint before as well, since those alerts can't be removed via the admin setup.

User-added image

So I tried creating a trigger to delete those alerts when a lead is converted, but I get an error that says I can't filter by the FeedItem's "Body" field, which as far as I know, is the only way to distinguish these types of alerts. Here is the trigger I tried writing:

public class ClassDeleteConvertAlerts{
    
    public void deleteAlerts(List<Lead> leads,Map<Id,Lead> oldLeads){
        
        Set<String> convertedLeads = new Set<String>();
        List<FeedItem> feedItemsToDelete = new List<FeedItem>();
        
        FOR(Lead l : leads){
            IF(l.IsConverted == TRUE && oldLeads.get(l.Id).IsConverted == FALSE){
                convertedLeads.add(l.Id);
            }
        }
        
        IF(convertedLeads.size() > 0){
            FOR(FeedItem item : [SELECT
                                   Id,Title
                               	 FROM
                                   FeedItem
                                 WHERE
                                   Body LIKE '%updated this account by converting a lead%']){

                                                       feedItemsToDelete.add(item);

                                                  }
        					                                  
         IF(feedItemsToDelete.size() > 0){
            DELETE feedItemsToDelete;
        }
        
    }

}

Is there any way to accomplish what I'm trying to do? Can I delete feeditems based on what's in the Body?

Thanks!
-Greg