编程自定义函数

CRM自定义函数

Deluge 或 Data Enriched Language for the Universal Grid Environment(针对通用网格环境的数据丰富语言)是与 Zoho Creator 集成的在线脚本语言。 它帮助您添加不同类型的业务逻辑至自定义函数,并让其发挥强大作用。 整个数据库层均为摘要,您仅可为参数映射字段,同时用 Deluge 编写脚本。 另请参阅Deluge Script - 参考指南

目标受众

  • 有管理工作流权限的 CRM 用户
  • 具备 Deluge Script 知识的编程人员

可用性

需要的简档权限: 有管理工作流权限的用户可以使用此功能。

编程自定义函数

通过 Deluge Script 编程自定义函数包括以下三个步骤:

  • 编程自定义函数。
  • 将自定义函数与工作流规则关联。
  • 测试自定义函数集成。

如需编程自定义函数

  1. 点击设置图标)>设置>自动化>工作流自动化>自定义函数
  2. 工作流自定义函数页面,点击配置自定义函数
  3. 配置自定义函数页面,点击编写您自己的函数链接。
    编写您的自定义函数
  4. 自定义函数页面,完成以下步骤:
    • 指定函数名称和说明。
    • 选择要与函数关联的模块,点击编辑参数链接。
      自定义函数
    • 现在为参数映射 CRM 模块中的字段名称或自定义值。
      自定义函数
    • 点击完成
  5. 在 Deluge Script Editor 中编写您需要的函数。 点击保存&执行脚本,验证您的代码。
    编写您的 Deluge Script
    如果没有任何错误,您的脚本将做好准备,与工作流规则关联。
  6. 点击保存

如需将自定义函数与工作流规则关联

  1. 点击设置>设置>自动化>工作流自动化>规则。
  2. 工作流规则页面,点击创建规则。
  3. 新建规则 选项卡中,指定工作流规则参数。
  4. 选择自定义函数(即时操作下方)。
  5. 现在选择要触发的自定义函数。
  6. 点击保存

如需测试自定义函数集成

  1. 根据您的工作流规则标准在 CRM 中添加测试数据。
  2. 通过自定义函数在您的应用程序中检查从 Zoho CRM 收到的数据。
  3. 如果发生错误或数据不匹配,在 Zoho CRM 中修改您的自定义函数代码。
  4. 继续这一测试,直至您从 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 任务列表

示例

业务场景:潜在客户状态为“结束并赢得”时累计金额字段至父账户

总结

从各个潜在客户(状态为结束并赢得)处累计金额汇总至相关账户的总收益(自定义字段)字段。 如果客户购买了 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);
}

执行以下步骤配置自定义函数:

  1. 登录 Zoho CRM。
  2. 点击设置>设置 > 自动化 > 工作流自动化> 规则
  3. 选择潜在客户模块下拉列表)。 将名称和说明键入工作流规则。
    自定义函数
  4. 选择您想要执行此规则的时间。 现在选择创建或编辑选项(基于记录操作执行下方)。
    自定义函数
  5. 点击完成
  6. 选择您想要为其执行规则的记录。 选择与条件匹配的记录选项,并将标准设置为“步骤包含已结束且赢得客户”。
    自定义函数
  7. 点击完成
  8. 现在将自定义函数选择为即时操作
    自定义函数
  9. 配置自定义函数弹出页面,点击自定义函数链接。
  10. 自定义函数页面,点击配置(针对累计潜在客户金额至账户函数)。
  11. 选择潜在客户为您的模块。
  12. 如下文所述,指定参数值:
    • AccountId: 从字段列表中选择 "AccountId" 列。
    • SumUpField: 指定您为得到总和而置于账户模块中的字段。
    • 点击“指定自定义值”链接,键入您的字段名称。
  13. 保存配置。 这将自动更新账户模块中某个账户的所有潜在客户生成的收益总额。

依然找不到您想要的内容?

请给我们写邮件:support@zohocorp.com.cn