関数 - 連携タスク
バージョン2.0 APIへの更新は、現在は、「関数」という名前のカスタム関数を使用する際に大きく影響しています。このガイドでは、新しい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()タスクを使用して取得できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.getRecords(<module_name>, [<page>],[<perPage>], {<optionalDataMap>}, <connections>);
パラメーター | 説明 |
---|---|
<response> | 取得条件に一致するデータのリストを含むレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<page>(オプション) | ページに基づいてデータのリストを取得します。数値データ型です。デフォルトは1です。 |
<perPage>(オプション) | ページごとに使用可能なデータのリストを取得します。数値データ型です。デフォルトは200です。 |
<optionalDataMap> | pageとper_page以外のパラメーターを使用してデータのリストを取得するために使用します。 |
<connections> | 関数に関連するコネクターを表します。データ型は文字列です。 |
入力例:
resp = zoho.crm.getRecords("Leads",1,20,{"converted":"true"});
注:
- 上記の例では、「converted」はoptionalDataMapです。
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.getRecords(<module_name>, [<from_index>],[<to_index>]);
IDによるデータの取得
複数のデータの一覧を取得するだけでなく、データの詳細を取得することも可能です。zoho.crm.getRecordById()タスクを使用すると、特定のデータに関する情報を取得できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.getRecordById(<module_name>, <record_ID>, <connections>);
パラメーター | 説明 |
---|---|
<response> | マップとして返されたレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<record_ID> | 取得するデータのID。数値データ型です。 |
<connections> | 関数に関連するコネクターを表します。データ型は文字列です。 |
入力例:
resp = zoho.crm.getRecordById("Leads", 2938383000000392001);
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.getRecordById(<module_name>, <record_ID>);
データの作成
特定の処理に基づいてデータが自動的に作成されるように関数を設定できます。たとえば、見込み客のステータスを変更したときに、タスク内のデータを作成する関数を実行できます。データの作成にはzoho.crm.create()タスクが使用されます。
構文:(バージョン2.0 APIを使用)
<variable>=zoho.crm.create(<module_name>,{<dataMap>}, {<optionalDataMap>}, <connections>);
パラメーター | 説明 |
---|---|
<response> | マップとして返されるレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<dataMap> | データの作成時に指定するタブ内の項目の名前。例:{"Last_name":"Zoho CRM"} |
<optionalDataMap> | JSON入力以外のすべてのデータマップを表します。 |
<connections> | 関数に関連するコネクターを表します。データ型は文字列です。 |
入力例:
data = Map();
data.putAll({"Last_Name":"Bruce Wills", "Company":"Zylker"});
optionalMap = Map();
optionalMap.put("trigger", ["workflow","approval", "blueprint"]); //ワークフローを実行しないために"trigger"をempty []として渡す
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"}}
構文:(バージョン1.0 APIを使用)
<variable>=zoho.crm.v1.create(<module_name>,{<field_values>});
一括データの作成
特定の処理に基づいてデータが自動的に作成されるように関数を設定できます。たとえば、見込み客を連絡先に変換を変更すると、連絡先、取引先、タスク、商談などで、複数のデータを作成する関数を実行できます。データの作成にはzoho.crm.bulkCreate()タスクが使用されます。
構文:(バージョン2.0 APIを使用)
<variable>=zoho.crm.bulkCreate(<module_name>,[record1, record2]);
パラメーター | 説明 |
---|---|
<response> | マップとして返されるレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
[record1, record2] | 作成するデータに関する情報を含むリスト。 |
入力例:
resp = zoho.crm.bulkCreate("Leads", [{"Last_Name":"Deborah"},{"Last_Name":"James"}], {"trigger":["workflow","blueprint","approval"]});
データの更新
データの更新が必要になることがあります。予め設定した条件に基づいてデータを自動的に更新するzoho.crm.update()タスクを設定することで、既存の情報の編集、情報の追加などを自動的に実行できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.update(<module_name>, <record_ID>, <dataMap>, {<optionalDataMap>}, <connections>);
パラメーター | 説明 |
---|---|
<response> | マップとして返されるレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<record_ID> | 更新するデータのID。数値データ型です。 |
<dataMap> | キー。更新されたデータ情報を持つ値のペア。 |
<optionalDataMap> | JSON入力以外のすべてのデータのマップを表します。 |
<connections> | 関数に関連するコネクターを表します。データ型は文字列です。 |
入力例:
resp = zoho.crm.update("Leads", 2938383000000392001, {"Company":"Zylker 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"}}
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.updateRecord(<module_name>, <record_ID>, <New values as map object>);
データの検索
検索条件を指定して、特定のデータを検索できます。検索されたデータは、任意の場所で処理を実行するために使用できます。データを検索するには、タブ名と検索条件を指定する必要があります。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.searchRecords(<module_name>, <criteria>, [<page>],[<perPage>], <connections>);
パラメーター | 説明 |
---|---|
<response> | 取得条件に一致するデータのリストを含むレスポンス。 |
<module_name> | データの取得が必要なタブの名前。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<criteria> | 検索の条件文。形式は次のとおりです:(
|
<page>(オプション) | ページに基づいてデータのリストを取得します。数値データ型です。デフォルトは1です。 |
<perPage>(オプション) | ページごとに使用可能なデータのリストを取得できます。数値データ型です。デフォルトは200です。 |
<connections>(オプション) | 関数に関連するコネクターを表します。データ型は文字列です。 |
入力例:
resp = zoho.crm.searchRecords("Leads", "(Company:equals:Zylker)");
注:
- バージョン2.0では、PDCによるデータの検索はできません。
- 列にnull値が含まれている場合、zoho.crm.searchRecordsはそれらを<>文で報告しません。
- 常に最大200件のデータを取得できます。
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.searchRecords(<module_name>, <criteria>, [<from_index>],[<to_index>]);
関連データの取得
CRMには、特定の見込み客または連絡先に関する情報の保存に使用できるさまざまな項目があります。たとえば、見込み客にはメモのリスト、2つの商談、関連付けられた電話などが含まれている場合があります。タブ内の特定のデータに関連するメモの検索は、zoho.crm.getRelatedRecords()タスクを使用して実行できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.getRelatedRecords(<relation_name>, <parent_module_name>, <record_ID>, [<page>],[<perPage>], <connections>);
パラメーター | 説明 |
---|---|
<response> | 取得条件に一致するデータのリストを含むレスポンス。 |
<relation_name> | データを取得する必要があるタブ(サブタブとも呼ばれる)の名前。文字列データ型です。サポートされるタブは、メモ、見積書、製品、タスク、キャンペーン、予定、電話です。 |
<parent_module_name> | 関連するデータが属するタブの名前。たとえば、「メモ」は「見込み客」親タブに属することができます。文字列データ型です。サポートされるタブは、[見込み客]、[商談]、[製品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<record_ID> | 取得する必要がある親タブデータのID。数値データ型です。 |
<page>(オプション) | ページに基づいてデータのリストを取得します。数値データ型です。デフォルトは1です。 |
<perPage>(オプション) | ページごとに使用可能なデータのリストを取得します。数値データ型です。デフォルトは200です。 |
<connections>(オプション) | 関数に関連するコネクターを表します。データ型は文字列です。 |
注:
- 常に最大200件のデータを取得できます。
入力例:
見込み客に関連するキャンペーンを取得するには:
resp = zoho.crm.getRelatedRecords("Campaigns", "Leads", 2938383000000392001);
見込み客に関連するタスクを取得するには:
resp = zoho.crm.getRelatedRecords("Task", "Leads", 2938383000000392001);
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.getRelatedRecords(<module_name>, <parent_module_name>, <record_ID>, [<from_index>],[<to_index>]);
関連データの更新
CRMには、特定の見込み客または連絡先に関する情報の保存に使用できるさまざまな項目があります。親データに関連するデータは、zoho.crm.updateRelatedRecord()タスクを使用して更新できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.updateRelatedRecords(<relation_name>, <record_ID_1>, <parent_module_name>, <record_ID_2>, {<New values as map object>});
パラメーター | 説明 |
---|---|
<response> | 取得条件に一致するデータのリストを含むレスポンス。 |
<relation_name> | データを取得する必要があるタブ(サブタブとも呼ばれる)の名前。文字列データ型です。サポートされるタブは、[メモ]、[見積書]、[商品]、[タスク]、[キャンペーン]、[予定]、[電話]、[メール]です。 |
<record_ID_1> | 更新する必要があるデータのID。数値データ型です。 |
<parent_module_name> | 関連するデータが属するタブの名前。たとえば、「メモ」は「見込み客」親タブに属することができます。文字列データ型です。サポートされるタブは、[見込み客]、[商談]、[商品]、[連絡先]、[キャンペーン]、[仕入先]、[取引先]、[問い合わせ]、[見積書]、[受注書]、[発注書]、[請求書]、[カスタム]です。 |
<record_ID_2> | 取得する必要がある親タブデータのID。数値データ型です。 |
<New Values as MAP object> | キー。更新されたデータ情報を持つ値のペア。例:{"Last_Name": "Updated Name", "Fax": "555-858-3466"} |
入力例:
商品数量を更新するには:
resp = zoho.crm.v1.updateRelatedRecords("Products",2938383000000392001, "Leads", 2938383000000392001, {"Product_Quantity":"50"});
構文:(バージョン1.0 APIを使用)
<response>=zoho.crm.v1.updateRelatedRecords(<module_name>, <parent_module_name>, <record_ID>, [<from_index>],[<to_index>]);
見込み客の変換
見込み客の取得後の次のステップは商談ですが、有望な見込み客を見込み客から連絡先に変換できます。zoho.crm.convertLead()タスクを使用すると、連絡先データとして見込み客情報を変換できます。
構文:(バージョン2.0 APIを使用)
<response>=zoho.crm.convertLead(<record_ID>, <overwrite>, <notify_lead_owner>, <notify_new_entity_owner>, <account_ID>);
パラメーター | 説明 |
---|---|
<response> | マップとして返されたレスポンス。 |
<record_ID> | 取得するデータのID。数値データ型です。 |
<overwrite> | 見込み客がすでに変換されている場合にデータを上書きするために使用します。データ型は真偽値で、trueまたはfalseのいずれかにする必要があります。 |
<notify_lead_owner> | 変換後に、見込み客の担当者に通知を送信するために使用します。データ型は真偽値で、trueまたはfalseのいずれかにする必要があります。 |
<notify_new_entity_owner> | 変換後に、新しいエンティティー(連絡先)の担当者に通知を送信するために使用します。データ型は真偽値で、trueまたはfalseのいずれかにする必要があります。 |
<account_ID>(オプション) | 取得するデータのID。数値データ型です。 |
入力例:
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 } });
呼び出しURL
CRM内だけでデータの処理が完結するわけではありません。他のサービスからのデータ取り込みが必要な場合もあります。関数内でURLの呼び出し(Invoke URL)メソッドを使用して、データの取得処理を実行できます。
構文:(バージョン2.0 APIを使用)
<response>=invokeUrl
[
];
パラメーター | 説明 |
---|---|
<response> | マップとして返されたレスポンス。 |
<url> | 呼び出したいZohoサービスまたはその他の外部サービスのサービスのエンドポイントAPI URL。 |
<type> | API呼び出しのHTTPメソッド。たとえば、GET/POST/PUT/PATCH/DELETEを指定できます。 |
<parameters> | パラメーターを「フォームデータ」として送信するために使用されます。基本的には、APIで動的に使用する値をユーザー固有の値に置き換えます。 |
<headers> | リクエストヘッダーのパラメーターを指定するために使用します。これは接続がinvoke Urlメソッドで使用されない場合に必須です。 |
CRMのサンドボックスを使用している場合、メソッドのURLにいくつかの変更があります。以下をご覧ください。