Salesforce Email to Case功能下OOO通知生成新Case问题处理方案问询
Salesforce Email to Case OOO自动回复冗余Case优化方案
以下为可落地的分层处理方案,可根据组织的配置权限选择对应方案:
- 优先使用原生内置能力
进入设置→服务→Email-to-Case,编辑你正在使用的路由配置,勾选忽略自动回复邮件选项。系统会自动识别符合行业标准的自动回复邮件头(如X-Auto-Response-Suppress、Auto-Submitted等),匹配到的OOO通知不会触发新Case创建,原生覆盖90%以上的常见自动回复场景。 - 补充自定义规则过滤漏网场景
若存在部分不遵循标准邮件头规范的OOO通知,可在Email-to-Case路由中新增过滤规则:匹配邮件主题、正文的特征关键词(如「外出」「OOO」「Out of Office」「自动回复」),命中的邮件直接设置为不创建新Case;如果需要保留OOO内容,可额外配置规则,当发件人30天内存在关联Case时,自动将该邮件内容追加到最近的同联系人Case下。 - 自定义代码实现灵活管控
若需要更个性化的关联逻辑,可编写Case创建前Apex触发器,在新Case插入前执行校验:当发件人近15天内存在有效Case且当前邮件命中OOO特征,直接放弃新Case插入,调用标准接口将邮件内容追加到最近的关联Case中。核心逻辑示例:trigger BlockOOONewCase on Case (before insert) { // 筛选邮件来源的新增Case List<Case> newEmailCases = [SELECT Id, ContactId, SuppliedEmail, Subject, Description FROM Case WHERE Id IN :Trigger.new AND Origin = 'Email']; // 批量查询对应联系人近7天的最新Case Map<Id, List<Case>> contactRecentCaseMap = new Map<Id, List<Case>>(); for(Case c : [SELECT Id, ContactId FROM Case WHERE ContactId IN :newEmailCases.collect('ContactId') AND CreatedDate = LAST_N_DAYS:7 ORDER BY CreatedDate DESC]){ if(!contactRecentCaseMap.containsKey(c.ContactId)){ contactRecentCaseMap.put(c.ContactId, new List<Case>()); } contactRecentCaseMap.get(c.ContactId).add(c); } // 匹配到历史Case则取消当前Case插入,关联邮件到历史Case for(Case newCase : newEmailCases){ if(contactRecentCaseMap.containsKey(newCase.ContactId) && (newCase.Subject.containsIgnoreCase('OOO') || newCase.Subject.containsIgnoreCase('Out of Office'))){ Trigger.newMap.get(newCase.Id).addError('OOO自动回复,跳过新Case创建', true); // 此处补充EmailMessage关联到历史Case的逻辑 } } } - 配置兜底自动处理流程
使用Salesforce Flow构建定时自动流,每日扫描创建时间小于24小时、未被分配、主题/正文包含OOO特征的Case,自动将状态更新为「已关闭-冗余」,添加内部备注说明为自动回复触发的无效Case,无需人工介入处理。
内容的提问来源于stack exchange,提问作者Subash Mahapatra
相关产品推荐
相关产品推荐

