CRM自定义函数
Deluge 或 Data Enriched Language for the Universal Grid Environment(针对通用网格环境的数据丰富语言)是与 Zoho Creator 集成的在线脚本语言。 它帮助您添加不同类型的业务逻辑至自定义函数,并让其发挥强大作用。 整个数据库层均为摘要,您仅可为参数映射字段,同时用 Deluge 编写脚本。 另请参阅Deluge Script - 参考指南
目标受众
- 有管理工作流权限的 CRM 用户
- 具备 Deluge Script 知识的编程人员
可用性
编程自定义函数
通过 Deluge Script 编程自定义函数包括以下三个步骤:
- 编程自定义函数。
- 将自定义函数与工作流规则关联。
- 测试自定义函数集成。
如需编程自定义函数
- 点击(设置图标)>设置>自动化>工作流自动化>自定义函数。
- 在工作流自定义函数页面,点击配置自定义函数。
- 在配置自定义函数页面,点击编写您自己的函数链接。
- 在自定义函数页面,完成以下步骤:
- 指定函数名称和说明。
- 选择要与函数关联的模块,点击编辑参数链接。
- 现在为参数映射 CRM 模块中的字段名称或自定义值。
- 点击完成。
- 在 Deluge Script Editor 中编写您需要的函数。 点击保存&执行脚本,验证您的代码。
如果没有任何错误,您的脚本将做好准备,与工作流规则关联。 - 点击保存。
- 点击设置>设置>自动化>工作流自动化>规则。
- 在工作流规则页面,点击创建规则。
- 在新建规则 选项卡中,指定工作流规则参数。
- 选择自定义函数(即时操作下方)。
- 现在选择要触发的自定义函数。
- 点击保存。
- 根据您的工作流规则标准在 CRM 中添加测试数据。
- 通过自定义函数在您的应用程序中检查从 Zoho CRM 收到的数据。
- 如果发生错误或数据不匹配,在 Zoho CRM 中修改您的自定义函数代码。
- 继续这一测试,直至您从 Zoho CRM 获取所需数据到您的应用程序中。
重要注意事项
- 您可以为每条工作流规则关联最多 6 个自定义函数(1 个即时操作和 5 个基于时间的操作)。
- 您可以利用自定义函数从 Zoho CRM 的最多 10 个 CRM 字段中传输数据至第三方应用程序。
- 您可以使用自定义函数检索从其它应用到 Zoho 的数据。
- 您必须依据第三方应用程序中的限制定期更新 API 票据。
- 如果自定义函数集成因为第三方 API 中的任何问题停止运行,您就不会收到任何邮件通知。
- 如果这一过程中有任何故障,自定义函数会先发送通知,Zoho CRM 会在 15 分钟后发送第二次通知。之后,系统不会因为那次特定的工作流触发发送任何通知。
- 如果您超过了每天的最大计数,系统不会将剩余的自定义函数通知发送给第三方应用程序,而会将故障告知管理员。
- Zoho CRM 会以日期 和 日期时间 字段的标准格式将数据发送至第三方应用程序:
- 日期:年 - 月 - 日
- 日期时间:年 - 月 - 日 小时:分钟
了解 Deluge Script Builder
Deluge Script Builder 帮您使用拖&放用户界面编程自定义函数并在 CRM 中执行函数。 这让您可以将复杂的应用程序逻辑转化为简单的 deluge 代码,无需记得 Deluge Script 的算法和函数。 它包含下列组成部分:
- Delug Script 代码
- Deluge 任务
- 条件
- 其它
- 调试
- 列表处理
- 映射处理
- 网络数据
- XML 处理
- 代码执行
Deluge 任务列表
Deluge 任务 | 目的 |
条件 | |
其它 | |
调试 | |
列表处理 | |
映射处理 | |
网络数据 | |
XML 处理 |
示例
业务场景:潜在客户状态为“结束并赢得”时累计金额字段至父账户
总结
从各个潜在客户(状态为结束并赢得)处累计金额汇总至相关账户的总收益(自定义字段)字段。 如果客户购买了 10 次,您可以从账户页面查看总收益而非推送连接潜在客户和账户的报告。 根据客户提供的收益情况,您之后可以将他们评级为 A 类、B 类、C 类客户。
编程步骤
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
- void 是不返回任何内容的返回类型
- workflowspace 是创建者中与对函数进行积分的文件夹类似的命名空间
- Rollup_the_Potential_Amount_to_Accounts 是函数名称
- AccountId 是参数,其中存有 CRM 中账户的 ID
- SumUpField 是另一个参数,其中存有账户中的字段标签,工作流规则触发时更新此账户的合计金额。
{ accountID1 = (input.AccountId).toString();
- 此处我们键入字符串的铸造账户 id
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
- 这是 Deluge Script 中的内置方法,可以通过搜索字段值获得记录。
- 在此我们指定搜索 rgw 潜在客户记录类型,用作为参数通过的值与账户 Id 匹配。
total = 0.0;
- 将局部变量初始化,计算合计金额。
for each rec in resp
- 集成上述方法调用返回的所有潜在客户。
{
stage = (rec.get("Stage")).toLowerCase();
- 获取各个潜在客户的阶段字段值。
if (stage.contains("won"))
- 检查阶段值的各个潜在客户是否包含“获得”。 如果为真,则将进入下一行,否则转至下个潜在客户。
{
total = (total + (rec.get("Amount")).toDecimal());
- 现在将金额字段的值添加至局部变量
} }
updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });
}
- 此方法将更新 CRM 中的记录。 我们曾提到记录类型为账户,将使用过去值的字段账户 id 与局部变量匹配,而局部变量中目前存有合计值。
完整程序
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
{
accountID1 = (input.AccountId).toString();
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
info resp;
total = 0.0;
for each rec in resp
{
stage = (rec.get("Stage")).toLowerCase();
if (stage.contains("won"))
{
total = (total + (rec.get("Amount")).toDecimal());
}
}
updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });
}
业务场景 2:潜在客户状态为“结束并赢得”时累计金额字段至父账户
总结
从各个潜在客户(状态为结束并赢得)处累计金额汇总至相关账户的总收益(自定义字段)字段。 如果客户购买了 10 次,您可以从账户页面查看总收益而非推送连接潜在客户和账户的报告。 根据客户提供的收益情况,您之后可以将他们评级为 A 类、B 类、C 类客户。
编程步骤
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
- void 是不返回任何内容的返回类型
- workflowspace 是创建者中与对函数进行积分的文件夹类似的命名空间
- Rollup_the_Potential_Amount_to_Accounts 是函数名称
- AccountId 是参数,其中存有 CRM 中账户的 ID
- SumUpField 是另一个参数,其中存有账户中的字段标签,工作流规则触发时更新此账户的合计金额。
{ accountID1 = (input.AccountId).toString();
- 此处我们键入字符串的铸造账户 id
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
- 这是 Deluge Script 中的内置方法,可以通过搜索字段值获得记录。
- 在此我们指定搜索 rgw 潜在客户记录类型,用作为参数通过的值与账户 Id 匹配。
total = 0.0;
- 将局部变量初始化,计算合计金额。
for each rec in resp
- 集成上述方法调用返回的所有潜在客户。
{
stage = (rec.get("Stage")).toLowerCase();
- 获取各个潜在客户的阶段字段值。
if (stage.contains("won"))
- 检查阶段值的各个潜在客户是否包含“获得”。 如果为真,则将进入下一行,否则转至下个潜在客户。
{
total = (total + (rec.get("Amount")).toDecimal());
- 现在将金额字段的值添加至局部变量
void workflowspace.Mass_update_of_Child_Contacts(int accId) { accountId = input.accId.toString();
rec = zoho.crm.getRecordById(("Accounts"), input.accId);
resp = zoho.crm.getRelatedRecords("Contacts", ("Accounts"), accountId);
for each ele in resp { mp = map();
mp.put("Mailing Street", rec.get("Billing Street"));
mp.put("Mailing City", rec.get("Billing City"));
mp.put("Mailing State", rec.get("Billing State"));
mp.put("Mailing Zip", rec.get("Billing Code"));
mp.put("Mailing Country", rec.get("Billing Country"));
mp.put("Other Street", rec.get("Shipping Street"));
mp.put("Other City", rec.get("Shipping City"));
mp.put("Other State", rec.get("Shipping State"));
mp.put("Other Zip", rec.get("Shipping Code"));
mp.put("Other Country", rec.get("Shipping Country"));
contactId = ele.get("CONTACTID"); updateResp = zoho.crm.updateRecord("Contacts", contactId, mp);
}
执行以下步骤配置自定义函数:
- 登录 Zoho CRM。
- 点击设置>设置 > 自动化 > 工作流自动化> 规则。
- 选择潜在客户(模块下拉列表)。 将名称和说明键入工作流规则。
- 选择您想要执行此规则的时间。 现在选择创建或编辑选项(基于记录操作执行下方)。
- 点击完成。
- 选择您想要为其执行规则的记录。 选择与条件匹配的记录选项,并将标准设置为“步骤包含已结束且赢得客户”。
- 点击完成。
- 现在将自定义函数选择为即时操作。
- 在配置自定义函数弹出页面,点击自定义函数链接。
- 在 自定义函数页面,点击配置(针对累计潜在客户金额至账户函数)。
- 选择潜在客户为您的模块。
- 如下文所述,指定参数值:
- AccountId: 从字段列表中选择 "AccountId" 列。
- SumUpField: 指定您为得到总和而置于账户模块中的字段。
- 点击“指定自定义值”链接,键入您的字段名称。
- 保存配置。 这将自动更新账户模块中某个账户的所有潜在客户生成的收益总额。