函数 - 集成任务
众所周知,API 2.0版本的更新对于自定义函数(现在名为“函数”)的使用产生了很大的影响。本指南帮助您了解如何使用那些基于新 API 的函数集成任务。
入门
首先,Zoho API的1.0版本和2.0版本之间的基本区别是,前者使用字段名,后者使用API名称。
按照下面步骤获取模块的 API 名称:
- 访问设置 > 开发者空间 > API > CRM API > API 名称。
- 模块的 API 名称显示在“API 名称”页签中。
按照下面步骤获取模块中字段的 API 名称:
- 访问设置 > 开发者空间 > API > CRM API > API 名称。
- 点击某一模块名。例如:线索
- API 名称页面显示字段的 API 名称。这些字段名称是在代码中使用,而不是在字段标签页面中使用。
获取记录
包含信息的记录可以从CRM的多个支持模块中获取。您可以使用 zoho.crm.getRecords() 任务获取记录。
语法:(基于 API 2.0)
<response>=zoho.crm.getRecords(<module_name>, [<page>],[<perPage>], {<optionalDataMap>}, <connections>);
参数 | 描述 |
---|---|
<response> | 响应,带有匹配提取条件的记录 LIST。 |
<module_name> | 从中提取记录模块的名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<page>(可选) | 基于页面获取记录的列表,它的数据类型为 NUMBER。默认值为 - 1。 |
<perPage>(可选) | 用于获取每个页面可用记录的列表,它的数据类型为 NUMBER。默认值为 - 200。 |
<optionalDataMap> | 用于获取使用 page 和 per_page 以外参数的记录列表。 |
<connections> | 显示与函数关联的接口。数据类型为 STRING。 |
样本输入:
resp = zoho.crm.getRecords("Leads",1,20,{"converted":"true"});
注:
- 在上例中,"converted" 为 optionalDataMap。
语法:(基于 API 1.0)
<response>=zoho.crm._getRecords(<module_name>, [<from_index>],[<to_index>]);
按 ID 获取记录
获取一个记录列表是相当不错的,但是如果您想要获取关于特定记录的详细信息,就可以使用 zoho.crm.getRecordById() 任务来获取有关特定记录的信息。
语法:(基于 API 2.0)
<response>=zoho.crm.getRecordById(<module_name>, <record_ID>, <connections>);
参数 | 描述 |
---|---|
<response> | 响应,返回为 MAP。 |
<module_name> | 从中提取记录的模块名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<record_ID> | 待提取的记录 ID,它的数据类型为 NUMBER。 |
<connections> | 显示与函数关联的接口。数据类型为 STRING。 |
样本输入:
resp = zoho.crm.getRecordById("Leads", 2938383000000392001);
语法:(基于 API 1.0)
<response>=zoho.crm._getRecordById(<module_name>, <record_ID>);
创建记录
设置这些函数的方式,记录是根据特定的动作自动创建的。例如,您可以触发该函数,以便在更改线索的状态后在任务中创建一条记录。zoho.crm.create() 任务用于创建记录。
语法:(基于 API 2.0)
<variable>=zoho.crm.create(<module_name>,{<dataMap>}, {<optionalDataMap>}, <connections>);
参数 | 描述 |
---|---|
<response> | 响应,返回为 MAP。 |
<module_name> | 从中提取记录的模块名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<dataMap> | 模块中在创建记录期间指定的字段名称。例如:{"Last_name":"Zoho CRM"} |
<optionalDataMap> | 表示输入 JSON 以外的所有数据映射。 |
<connections> | 显示与函数关联的接口。数据类型为 STRING。 |
样本输入:
data = Map();
data.putAll({"Last_Name":"Bruce Wills", "Company":"Zillum"});
optionalMap = Map();
optionalMap.put("trigger", ["workflow","approval", "blueprint"]); // pass "trigger" as empty [] to not execute workflow
resp = zoho.crm.create("Leads", data, optionalMap);
样本响应:
{"Modified_Time":"2018-03-26T14:33:01+05:30","Modified_By":{"name":"Ben","id":"2938383000000132011"},"Created_Time":"2018-03-26T14:33:01+05:30","id":"2938383000000389001","Created_By":{"name":"Ben","id":"2938383000000132011"}}
语法:(基于 API 1.0)
<variable>=zoho.crm._create(<module_name>,{<field_values>});
创建批量记录
设置这些函数的方式,记录是根据特定的动作自动创建的。例如,您可以触发该函数,以便在更改转化线索为联系人后在联系人、客户、任务、商机中创建多条记录。zoho.crm.bulkCreate() 任务用于创建记录。
语法:(使用 V2.0 API)
<variable>=zoho.crm.bulkCreate(<module_name>,[record1, record2]);
参数 | 描述 |
---|---|
<response> | 响应,返回为 MAP。 |
<module_name> | 从中提取记录的模块名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
[record1, record2] | LIST,包含有关要创建的记录信息。 |
样本输入:
resp = zoho.crm.bulkCreate("Leads", [{"Last_Name":"Deborah"},{"Last_Name":"James"}], {"trigger":["workflow","blueprint","approval"]});
更新记录
在很多情况下,您都需要更新记录。通过设置 zoho.crm.updateRecord() 任务,它自动根据编程的方案更新记录,这样可自动完成编辑现有信息、添加附加信息等工作。
语法:(基于 API 2.0)
<response>=zoho.crm.updateRecord(<module_name>, <record_ID>, <dataMap>, {<optionalDataMap>}, <connections>);
参数 | 描述 |
---|---|
<response> | 响应,返回为 MAP。 |
<module_name> | 从中提取记录的模块名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<record_ID> | 待更新的记录 ID。它的数据类型为 NUMBER。 |
<dataMap> | 键/值对,带有更新的记录信息。 |
<optionalDataMap> | 表示输入 JSON 以外的所有数据映射。 |
<connections> | 显示与函数关联的接口。数据类型为 STRING。 |
样本输入:
resp = zoho.crm.update("Leads", 2938383000000392001, {"Company":"Zillum Corp"});
样本响应:
{"Modified_Time":"2018-03-26T15:17:39+05:30","Modified_By":{"name":"Ben","id":"2938383000000132011"},"Created_Time":"2018-03-26T14:39:28+05:30","id":"2938383000000392001","Created_By":{"name":"Ben","id":"2938383000000132011"}}
语法:(基于 API 1.0)
<response>=zoho.crm._updateRecord(<module_name>, <record_ID>, <New values as map object>);
搜索记录
通过指定条件搜索特定记录。搜索的记录可用来在任何位置执行操作。搜索记录需要待指定的模块名和搜索条件。
语法:(基于 API 2.0)
<response>=zoho.crm.searchRecords(<module_name>, <criteria>, [<page>],[<perPage>], <connections>);
参数 | 描述 |
---|---|
<response> | 响应,带有匹配提取条件的记录 LIST。 |
<module_name> | 从中提取记录的模块名称。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<criteria> | 搜索的条件语句。它的格式如下:(
|
<page>(可选) | 基于页面获取记录的列表,它的数据类型为 NUMBER。默认值为 - 1。 |
<perPage>(可选) | 用于获取每个页面可用记录的列表,它的数据类型为 NUMBER。默认值为 - 200。 |
<connections>(可选) | 显示与函数关联的接口。数据类型为 STRING。 |
样本输入:
resp = zoho.crm.searchRecords("Leads", "(Company:equals:Zillum)");
注:
- 按 PDC 搜索记录在 API 2.0 版本中不可用。
- 如果某列包含空值,则 zoho.crm.searchRecords 在 <> 语句中不报告它们。
- 在任何给定的时间,可提取最多 200 条记录。
语法:(使用 V1.0 API)
<response>=zoho.crm._searchRecords(<module_name>, <criteria>, [<from_index>],[<to_index>]);
获取相关记录
CRM 有各种组件,可用来存储有关特定线索或联系人的信息。例如,某一线索可能包含一组备注、多项交易、相关通话等。搜索模块中与特定记录相关的备注可使用 zoho.crm.getRelatedRecords() 任务完成。
语法:(基于 API 2.0)
<response>=zoho.crm.getRelatedRecords(<relation_name>, <parent_module_name>, <record_ID>, [<page>],[<perPage>], <connections>);
参数 | 描述 |
---|---|
<response> | 响应,带有匹配提取条件的记录 LIST。 |
<relation_name> | 从中提取记录的模块(也称为子模块)名称。它的数据类型为 STRING。受支持的模块有:备注、报价、产品、任务、市场活动、活动、通话。 |
<parent_module_name> | 子模块所属父模块的名称。例如:备注可属于“线索”父模块。它的数据类型为 STRING。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<record_ID> | 需要提取的父模块记录 ID。它的数据类型为 NUMBER。 |
<page>(可选) | 基于页面获取记录的列表,它的数据类型为 NUMBER。默认值为 - 1。 |
<perPage>(可选) | 用于获取每个页面可用记录的列表,它的数据类型为 NUMBER。默认值为 - 200。 |
<connections>(可选) | 显示与函数关联的接口。数据类型为 STRING。 |
备注:
- 在任何给定的时间,可提取最多 200 条记录。
样本输入:
要提取与线索相关的市场活动:
resp = zoho.crm.getRelatedRecords("Campaigns", "Leads", 2938383000000392001);
要提取与线索相关的任务:
resp = zoho.crm.getRelatedRecords("Task", "Leads", 2938383000000392001);
语法:(基于 API 1.0)
<response>=zoho.crm._getRelatedRecords(<module_name>, <parent_module_name>, <record_ID>, [<from_index>],[<to_index>]);
更新相关记录
CRM 有各种组件,可用来存储有关特定线索或联系人的信息。您可以使用 zoho.crm.updateRelatedRecord() 任务来更新与父记录相关的记录。
语法:(基于 API 2.0)
<response>=zoho.crm.updateRelatedRecords(<relation_name>, <record_ID_1>, <parent_module_name>, <record_ID_2>, {<New values as map object>});
参数 | 描述 |
---|---|
<response> | 响应,带有匹配提取条件的记录 LIST。 |
<relation_name> | 从中提取记录的模块(也称为子模块)名称。它的数据类型为 STRING。受支持的模块有:备注、报价、产品、任务、市场活动、活动、通话、邮件。 |
<record_ID_1> | 需要更新的记录的 ID。它的数据类型为 NUMBER。 |
<parent_module_name> | 子模块所属的父模块名称。例如:备注可属于“线索”父模块。它的数据类型为 STRING。受支持的模块有:线索、商机、产品、联系人、市场活动、供应商、客户、服务支持、报价、销售订单、采购订单、发货单和自定义。 |
<record_ID_2> | 需要提取的父模块记录的 ID。它的数据类型为 NUMBER。 |
<New Values as MAP object> | 键/值对,带有更新的记录信息。例如:{"Last_Name": "Updated Name", "Fax": "555-858-3466"} |
样本输入:
要更新产品数量:
resp = zoho.crm._updateRelatedRecords("Products",2938383000000392001, "Leads", 2938383000000392001, {"Product_Quantity":"50"});
语法:(基于 API 1.0)
<response>=zoho.crm._updateRelatedRecords(<module_name>, <parent_module_name>, <record_ID>, [<from_index>],[<to_index>]);
转化线索
线索采集后的下一步将是讨论,优秀的潜在客户将从线索转化为联系人。您可以使用 zoho.crm.convertLead() 任务来转化线索信息为联系人记录。
语法:(基于 API 2.0)
<response>=zoho.crm.convertLead(<record_ID>, <overwrite>, <notify_lead_owner>, <notify_new_entity_owner>, <account_ID>);
参数 | 描述 |
---|---|
<response> | 响应,返回为 MAP。 |
<record_ID> | 待提取的记录的 ID,它的数据类型为 NUMBER。 |
<overwrite> | 如果线索已转化,则覆盖该数据。数据类型为 BOOLEAN,应为 true 或 false。 |
<notify_lead_owner> | 用于在转化后发送通知至线索所有者。数据类型为 BOOLEAN,应为 true 或 false。 |
<notify_new_entity_owner> | 用于在转化后发送通知至新的实体(联系人)。数据类型为 BOOLEAN,应为 true 或 false。 |
<account_ID>(可选) | 待提取的记录的 ID,它的数据类型为 NUMBER。 |
样本输入:
resp = zoho.crm.convertLead(7000000037308, { "overwrite": true, "notify_lead_owner": false, "notify_new_entity_owner": true, "Accounts": "7000000037323", "Deals": { "Deal_Name": "Robert", "Closing_Date": "2016-03-30", "Stage": "Closed Won", "Amount": 56.6 } });