如何在Salesforce中设置每日对象创建记录超额通知?
在Salesforce中实现单日记录创建超额通知的方案
当然可以实现,以下是几种实用的解决方案,覆盖低代码和代码两种场景:
方法1:使用Flow(低代码推荐)
这是最便捷的实现方式,无需写代码:
- 创建记录触发流,触发时机选择「创建记录后」
- 添加「获取记录」元素,配置查询条件:筛选当前对象中
CreatedDate等于今天的所有记录,开启「仅返回记录计数」(优化性能,无需获取具体记录) - 添加「决策」元素,判断获取到的记录计数是否≥设定阈值(比如2)
- 若满足条件,添加对应操作:
- 发送邮件:选择「发送电子邮件」操作,配置收件人、主题和提醒内容
- 发布Chatter消息:选择「发布到Chatter」操作,可指定发送到特定群组或用户时间线
- 注意:如果阈值较高,务必开启「仅返回记录计数」,避免SOQL行数限制问题
方法2:使用Apex触发器(代码实现)
适合需要自定义复杂逻辑的场景,示例代码如下:
trigger RecordCountAlert on Your_Object__c (after insert) { // 定义阈值 Integer threshold = 2; Date today = Date.today(); Datetime dayStart = today.toStartOfDay(); Datetime dayEnd = today.addDays(1).toStartOfDay(); // 查询当日创建的记录总数 Integer dailyCount = [SELECT COUNT() FROM Your_Object__c WHERE CreatedDate >= :dayStart AND CreatedDate < :dayEnd]; if (dailyCount >= threshold) { // 发送邮件通知 Messaging.SingleEmailMessage alertMail = new Messaging.SingleEmailMessage(); alertMail.setToAddresses(new List<String>{'alert-recipient@yourdomain.com'}); alertMail.setSubject('【Salesforce提醒】记录创建数量超额'); alertMail.setPlainTextBody('今日Your Object已创建' + dailyCount + '条记录,超过设定阈值' + threshold + '条。'); Messaging.sendEmail(new List<Messaging.SingleEmailMessage>{alertMail}); // 发布Chatter提醒 FeedItem chatterAlert = new FeedItem(); chatterAlert.ParentId = '0D5XXXXXXXXXXXX'; // 替换为目标Chatter群组ID或用户ID chatterAlert.Body = '⚠️ 今日Your Object已创建' + dailyCount + '条记录,超过阈值' + threshold + '条!'; insert chatterAlert; } }
- 注意:批量插入记录时,触发器会执行一次,避免重复发送;同时要遵守Salesforce的邮件发送限制
方法3:定时检查(Schedule Apex)
如果不需要实时通知,仅需每日固定时间汇总提醒:
- 编写Schedule Apex类,设置每日特定时间(比如23:00)执行
- 类中查询当日该对象的记录总数,若超过阈值则发送通知
- 这种方式适合非实时的每日告警场景
为什么报表/仪表盘无法实现?
Salesforce的报表仪表盘告警仅支持基于报表结果的状态变化(比如从无数据变为有数据),无法直接基于记录数量阈值触发实时通知,因此需要借助上述自动化工具实现。
内容的提问来源于stack exchange,提问作者Imtiyaz
相关产品推荐
相关产品推荐

