Salesforce Flow 是 Salesforce 平台上的一种流程自动化工具,它可以帮助用户自动化各种业务流程。在本文中将会介绍一个 Flow 的使用场景。
这个 Use Case 是基于在工作中遇到的实际情况而来。客服团队每天都会收到一些垃圾邮件,这些邮件占据了他们的时间和精力,影响了他们的工作效率。他们想将这些电子邮件地址存在一个垃圾邮件列表中。之后如果有来自这些地址的新的 Case, 他们希望自动将其标记为垃圾邮件并关闭该 Case, 为了解决这个问题,我决定采用 Salesforce Flow 来解决这个问题。
整理下需求:
- 可以让用户在 Case 中通过触发按钮来添加黑名单,然后将该邮件标记为垃圾邮件并存储到数据库里。
- 每当从被阻止的 Email 中创建一个 Case 时,该 Case 应被自动标记为垃圾邮件并设置为 Close 状态。
针对需求 1, 我们可以创建一个 Screen-Flow 来满足,然后我们创建一个自定义对象 Blacklist_Email__c
来存储这些垃圾邮件列表。这个对象有一个自定义字段 Blocked_Email__c
.
针对需求 2, 我们可以使用 Record-Triggered, 但是 Flow 触发的对象是 EmailMessage, 而不是在 Case 上。原因是当我们使用 Email-To-Case 时,Case 和 EmailMessage 之间的建立连接是在 Case 的触发器执行完毕后建立的。如果 Flow 在 Case 上运行 ,它将无法找到原始电子邮件地址。
Screen Flow 构建步骤
我们让用户在 Case 详情页面上点击一个 Quick Action 按钮,所以我们创建一个 Screen Flow.第一步是创建一个 recordId 变量,来获取当前的 Case 记录。
先使用 Get Records
元素检查是否用户的 Email 已经加入到了黑名单里:
如果当前的 Case 有 Email, 而这个邮件还没有加入邮件列表黑名单里,我们就会进入下一步,创建一个黑名单记录。
创建一个黑名单记录:
Screen flow 创建完成之后,可以在 Setup
-> Object Manager
-> Case
-> Buttons, Links, and Actions
上创建一个 Flow Action.
Record-Triggered Flow 构建步骤
我们需要将这个 Record-Triggered Flow 运行在 EmailMessage 对象上,原因我已经在文章开始的时候说明了,因为我们需要更新 Case 记录,所以这里选择了 After-Trigger.
检查当前 Case 的 邮件是否已经加入了黑名单了:
如果 👆 步骤中返回记录了,说明该 Case 的邮件已经加入黑名单了,这样我们就可以进行下一步,更新 Case 为 Close 状态。我们使用 Decision
来判断:
我们需要创建一个 Case Variable 来更新 Case:
然后创建一个 Assignment
来为 Case 赋值,其中 Case 的状态为 Closed
, 然后更新 Description
字段,这里不建议使用 Description 字段存 Case 关闭的原因,建议新建一个文本字段 Close Reason
来存,这里是为了方便测试。
调用 Update Records
更新 👆 赋值的 Case 对象:
测试
我们通过 Email-to-Case 功能生成一个 Case, 并将当前 Case 的邮件加入黑名单:
然后我们再次使用这个邮箱地址发一封同样的邮件,来看下会发生什么:
Case 的状态自动变更为 Closed
.
总结
在本文中,我们介绍了一个使用 Salesforce Flow 自动关闭垃圾邮件 Case 的示例。通过使用 Salesforce Flow 解决问题,提高了工作效率,减少了错误率。如果你也遇到了类似的问题,那么使用 Salesforce Flow 可能是一个非常有效的解决方案。