Salesforce:审批人未收到铃铛通知及特定记录类型配置咨询
排查Salesforce审批铃铛通知问题&特定记录类型配置方法
一、先排查当前铃铛通知未触发的原因
- 检查审批流程的通知设置:虽然你只找到邮件通知,但审批流程里的「通知接收者」部分,得确认有没有勾选「通过应用内通知(铃铛)发送」——这个选项藏在审批步骤的「通知」配置里,不是全局邮件设置。进入审批流程编辑,找到对应审批步骤,查看通知设置,确保勾选了应用内通知。
- 检查用户个人通知偏好:让审批人进入「设置」→「通知」→「应用内通知」,确认是否开启了审批相关的通知类别,有没有把这类通知静音或关闭。
- 检查Apex自定义通知逻辑:既然有Apex代码发送自定义通知,要确认代码里是否针对特定记录类型做了过滤,或者有没有执行报错。可以通过「设置」→「Apex日志」跟踪代码执行,看
Messaging.SendCustomNotification这类发送方法是否被正确调用,有没有返回错误信息。另外,自定义通知需要关联「自定义通知类型」,要确认该类型是否启用了「应用内通知」渠道。
二、针对特定记录类型配置铃铛通知
1. 审批流程层面的记录类型控制
如果用的是审批流程自带的铃铛通知,按记录类型开关的方法:
- 复制现有审批流程,给不同记录类型创建专属审批流程,比如「合同-普通记录类型审批流程」「合同-特殊记录类型审批流程」。
- 在每个审批流程的「启动条件」里,设置记录类型等于目标类型,然后在对应流程的步骤通知设置里,决定是否开启铃铛通知。
- 激活对应的审批流程,确保不同记录类型触发不同流程,实现通知的开关。
2. 自定义Apex通知的记录类型控制
如果是Apex发送的自定义铃铛通知,直接在代码里加记录类型判断:
// 示例:仅当合同记录类型为"普通合同"时发送铃铛通知 String targetRecordTypeId = Schema.SObjectType.Contract.getRecordTypeInfosByName().get('普通合同').getRecordTypeId(); if(contract.RecordTypeId == targetRecordTypeId){ // 构建并发送自定义通知 Messaging.CustomNotification notification = new Messaging.CustomNotification(); notification.setTitle('新审批请求'); notification.setBody('您有一份新的审批请求待处理'); notification.setNotificationTypeId('0MLXXXXXXXXXXXX'); // 替换为你的自定义通知类型ID notification.setTargetId(contract.Id); notification.send(new List<String>{approverId}); // approverId为审批人ID }
要禁用某记录类型的通知,直接在判断里排除该类型即可。
3. 流程构建器替代方案(无需代码)
如果不想写代码,用流程构建器实现:
- 创建记录触发的流程,触发条件设为目标记录类型+审批提交事件。
- 添加「发送自定义通知」操作,选择对应的通知类型和接收人。
- 不需要通知的记录类型,不创建对应流程就行。
内容的提问来源于stack exchange,提问作者JavaLearner
相关产品推荐
相关产品推荐

