function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Vibhuti Gupta 10Vibhuti Gupta 10 

how to get @mentioned from feedcomment, trigger, exact Syntax

trigger FeedCommentTrigger on FeedComment(after insert){
    Set<String> users = new Set<String>();
     Set<Id> parentIdSet = new Set<Id>();
     Set<Id> UserIdkeySet = new Set<Id>();
     Set<Id> alreadyExistingMemberidSet = new Set<Id>();
      Set<Id> unCommonIdSet = new Set<Id>();
    Map<Id, Id> objUserCaseMap = new Map<Id, Id>();
    Map<Id, id> UserIdParentMap = new Map<Id, id>();
   // set<CaseTeamMember> objCaseTeamMemberSet = new set<CaseTeamMember>();
    List<CaseTeamMember> objCaseTeamMemberList = new List<CaseTeamMember>();
    /*Set<Id> objCaseId = new Set<Id>();    
    for(FeedItem fi : Trigger.New){        
        if(fi.ParentId.getSObjectType() == Case.SObjectType){  
            objCaseId.add(fi.ParentId);
        }   
    }*/
   
    for(FeedComment fc : Trigger.New){        
        if(fc.ParentId.getSObjectType() == Case.SObjectType){  
            UserIdParentMap.put(fc.CreatedById ,fc.ParentId);          
            ConnectApi.FeedElement FeedComment= ConnectApi.ChatterFeeds.getFeedElement(null, fc.Id);
            List<ConnectApi.MessageSegment> messageSegments = FeedComment.body.messageSegments;
            for (ConnectApi.MessageSegment messageSegment : messageSegments) {                
                if (messageSegment instanceof ConnectApi.MentionSegment) {                    
                    ConnectApi.MentionSegment mentionSegment = (ConnectApi.MentionSegment) messageSegment;
                    System.debug('Mentioned user name: ' + mentionSegment.name);
                    System.debug('Mentioned user id: ' + mentionSegment);
                    fc.addError('mentionSegment'+mentionSegment);

                 //  UserIdParentMap.put(mentionSegment.user.id,fi.ParentId);
                 //   users.add(mentionSegment.user.id);
                 //   System.debug('ParentID -->>'+fi.ParentId);                    
                 //   System.debug('objUserCaseMap-->>'+objUserCaseMap);                    
                                   
                }
            }
             parentIdSet.add(fc.ParentId);
        }
    }
    
    UserIdkeySet = UserIdParentMap.KeySet();
     for(CaseTeamMember ctm :[select MemberId,ParentId from CaseTeamMember where ParentId in:parentIdSet])
         {    
             alreadyExistingMemberidSet.add(ctm.MemberId);
         }
 
     for(string s : UserIdkeySet){
            if(!alreadyExistingMemberidSet.contains(s)){
                unCommonIdSet.add(s);                    
            }
        }
 
     for(Id i:unCommonIdSet){
                 CaseTeamMember objCaseTeamMember = new CaseTeamMember(MemberId = i,
                                                                       ParentId = UserIdParentMap.get(i), TeamRoleId = '0B7G00000008Oo1');
                    objCaseTeamMemberList.add(objCaseTeamMember);
        }
        
    if(objCaseTeamMemberList.size()>0){  
        System.debug('objCaseTeamMemberList-->>'+objCaseTeamMemberList);
        insert objCaseTeamMemberList;
        System.debug('objCaseTeamMemberList-->>'+objCaseTeamMemberList);
    }
}
Ishwar ShindeIshwar Shinde
@mentions are not stored separately in another object or table. They will just be stored as "@firstname lastname" in the body field if the feeditem object.

In order to find out if a user is actually @mentioned, you may have to use the Chatter API, as mentioned here: http://salesforce.stackexchange.com/questions/10047/retrieve-userid-of-mention-user-from-chatter-post-in-apex

Source - https://developer.salesforce.com/forums/?id=906F0000000AoACIA0

Hope it will help you !!
harsha__charsha__c
Is the above trigger not working?

- Harsha