I'm trying to create a POC for reputation levels / capturing changes in a trigger. I've seen various Salesforce docs that mention this is possible with NetworkMember
triggers:
- NetworkMember object reference. Scroll to Usage section, highlighted in yellow box.
- Chatter API sample code. Scroll to Assign a Recognition Badge When a Member Reaches a Number of Reputation Points section.
I've verified reputation points are increasing after a post, comment, like, etc. but for some reason the NetworkMember
trigger is not invoked. No debug logs are created.
Any ideas why this is happening?
NetworkMemberTrigger.trigger
trigger NetworkMemberTrigger on NetworkMember (before insert, after insert, before update, after update) {
NetworkMemberTriggerHandler.handleTrigger(Trigger.new, Trigger.oldMap, Trigger.operationType);
}
NetworkMemberTriggerHandler.cls
public with sharing class NetworkMemberTriggerHandler {
public static void handleTrigger(List<NetworkMember> newRecords, Map<Id, NetworkMember> oldMap, System.TriggerOperation triggerEvent) {
switch on triggerEvent {
when BEFORE_INSERT { handleBeforeInsert(newRecords); }
when AFTER_INSERT { handleAfterInsert(newRecords); }
when BEFORE_UPDATE { handleBeforeUpdate(newRecords, oldMap); }
when AFTER_UPDATE { handleAfterUpdate(newRecords, oldMap); }
}
}
public static void handleBeforeInsert(List<NetworkMember> newRecords) {
System.debug('============ NETWORK MEMBER - BEFORE INSERT ===========');
}
public static void handleAfterInsert(List<NetworkMember> newRecords) {
System.debug('============ NETWORK MEMBER - AFTER INSERT ===========');
}
public static void handleBeforeUpdate(List<NetworkMember> newRecords, Map<Id, NetworkMember> oldMap) {
System.debug('============ NETWORK MEMBER - BEFORE UPDATE ===========');
}
public static void handleAfterUpdate(List<NetworkMember> newRecords, Map<Id, NetworkMember> oldMap) {
System.debug('============ NETWORK MEMBER - AFTER UPDATE ===========');
for(NetworkMember member : newRecords) {
System.debug('Reputation Points: ' + member.ReputationPoints);
System.debug('Last Chatter Activity Date: ' + member.LastChatterActivityDate);
}
}
}
ReputationPoints
in Query Editor it does invoke theNetworkMember
trigger. But if I ask a question or receive an upvote within my site/Chatter, the reputation increases but the trigger is not invoked.