I am trying to set default 'From' in Send email option in case feed. for this i am using below code but it seems not be running and i am not getting and debug log. NOTE: in support setting i have added this apex class to be run but still it is not running.
global class EmailPublisherLoader implements QuickAction.QuickActionDefaultsHandler {
// Empty constructor
global EmailPublisherLoader() {
}
// The main interface method
global void onInitDefaults(QuickAction.QuickActionDefaults[] defaults) {
QuickAction.SendEmailQuickActionDefaults sendEmailDefaults = null;
// Check if the quick action is the standard Case Feed send email action
for (Integer j = 0; j < defaults.size(); j++) {
if (defaults.get(j) instanceof QuickAction.SendEmailQuickActionDefaults &&
defaults.get(j).getTargetSObject().getSObjectType() ==
EmailMessage.sObjectType &&
defaults.get(j).getActionName().equals('Case.Email') &&
defaults.get(j).getActionType().equals('Email')) {
sendEmailDefaults =
(QuickAction.SendEmailQuickActionDefaults)defaults.get(j);
break;
}
}
system.debug('Defaults---->'+sendEmailDefaults);
if (sendEmailDefaults != null) {
Case c = [SELECT Status,Reason,ownerid FROM Case
WHERE Id=:sendEmailDefaults.getContextId()];
EmailMessage emailMessage = (EmailMessage)sendEmailDefaults.getTargetSObject();
// Set bcc address to make sure each email goes for audit
emailMessage.FromAddress = getFromAddress();
}
}
private String getFromAddress(/*String reason*/) {
/* if (reason != null && reason.equals('Technical'))
{ return 'support_technical@mycompany.com'; }
else if (reason != null && reason.equals('Billing'))
{ return 'support_billing@mycompany.com'; }
else { return 'support@mycompany.com'; }*/
return 'testscaletronix@welchallyn.com';
}
}