SMS 集成功能使用

更新时间:
复制为 MD 格式

通过CXG SMS组件发送SMS

前提条件

  • 完成SMS连接器配置步骤

  • 完成SMS签名管理与模板管理

  • 完成CXG SMS组件配置

功能介绍

在配置好SMS组件的界面,可选择picklistPhone的字段作为收件人,在选择配置好的签名、模板后,完善模板无法自动获取的参数的值,点击发送即可发出短信。

模板的使用说明如下:

带短信变量的模板
1.salesforce变量
可以选择关联的对象,对应的salesforce变量将会从选取的对象中读取值,如果对应的字段没有值,需要手动填入值。
2.手动填入值
模板中存在非salesforce的变量,或者关联的对象的字段不存在值的时候,可以在发送前手动填入变量值。

通过Apex类调用发送SMS

前提条件

  • 完成SMS连接器配置步骤

  • 完成SMS签名管理与模板管理

功能介绍

说明

CXG 提供了外部直接调用的 SMS 的 Apex 类 (了解什么是Apex类,请阅读Apex Developer Guide | Salesforce Developers),我们以Flow Action为例,说明如何在CRM 中使用,客户还可以通过 Salesforce 的界面配置,添加一个发送 SMS 的 Action,实现点击执行发送SMS的效果。

SMS Apex 类参数说明

  • String phone:接收 SMS 的手机号

  • String objectName:createTask = true 时生效,关联的对象的名称

  • String recordId:createTask = true 生效,关联的对象的 id

  • String templateId:salesforce 中 CXG__SmsTemplate__c 对象的 id

  • String signId: salesforce 中 CXG__SmsSign__c 对象的 id

  • List<CXG.ExternalSmsTemplateParam> templateParams 模板内容中包含变量时需要传入,如没有模板变量可传 Null

  • Boolean createTask:发送后是否需要创建 Task 对象作为发送记录

CXG.ExternalSmsClient.send(String phone, String objectName, String recordId, String signId, String templateId, List<CXG.ExternalSmsTemplateParam> templateParams, Boolean createTask);
如果不希望 SMS 发送后自动创建 Task 记录,createTask 传 False,objectName 与 recordId 可传空值。如果需要自动创建Task,请注意给Integration User Edit Tasks的权限。

参数返回

  • CXG.ExternalSmsSendResponse

    • String bizId:阿里云发送sms后的业务id,查询发送记录可用

Step 1 声明变量

参考如下示例,自定义一个 Apex class 用于传入相应参数,每个属性都需要带上 @InvocableVariable 注解(在 @InvocableMethod 方法中使用)和 @AuraEnabled 注解(在 flow 中声明 Apex Defined type variable 时使用)

示例

public with sharing class SendSmsRequest {
 @InvocableVariable
 @AuraEnabled
 public String templateParam;
 @InvocableVariable
 @AuraEnabled
 public String phone;
}

Step 2 创建 Flow Apex 类

参考如下示例,创建一个可以在 Flow 中调用的 Apex 类,请注意使用 @InvocableMethod 注解。示例

public with sharing class SendSmsAction {
 @InvocableMethod
 public static void send(List<SendSmsRequest> params) {
 SendSmsRequest request = params.get(0);
 List<Namespace.ExternalSmsTemplateParam> templateParams = new List<Namespace.ExternalSmsTemplateParam>();
 templateParams.add(new CXG.ExternalSmsTemplateParam('模板变量1', request.templateParam_1));
 templateParams.add(new CXG.ExternalSmsTemplateParam('模板变量2', request.templateParam_2));
 CXG_TEST.ExternalSmsClient.send(request.phone, null, null, request.signId, request.templateId, templateParams, false);
 }
}

Step 3 创建一个 Record-Triggered Flow

  • 创建 Record-Triggered Flow 时,Optimize the Flow for 选项请勾选 Include a Run Asynchronously path 选项

  • 在 Run Asynchronously 下创建Action,搜索第二步创建的类,如示例中的 SendSmsAction 类

  • 在 Set input Values for the Selected Action 中打开 included 开关,选择自己需要的变量。

  • 点击保存,激活 Flow,即可验证 Flow 的执行效果。