Zoho CRMからZoho Deskへの連絡先と製品の関連付け
お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
概要:
初期設定では、Zoho CRM–Zoho Desk連携は連絡先、取引先、商品のみを個別のタブとして同期します。ただし、商品と連絡先/取引先の間の関連付けは、同期時に保持されません。本記事では、ワークフローおよびDeluge関数を活用したカスタム回避策により、このギャップを埋め、商品との関連付けがZoho Deskでも反映される方法を解説します。
例えば、Zoho CRMのインスタンスで2つの連絡先が1つの商品に関連付いているとします。連携を設定すると、連絡先と商品は両方ともZoho Deskに同期されますが、同期された商品は自動的に同期された連絡先とZoho Deskで関連付けられることはありません。
Zoho CRMで商品が連絡先に関連付けられるたびに、同じ関連付けをZoho Deskでも確立するための自動化をCRMで設定できます。
手順概要:
-
ワークフールールを作成し、Zoho CRMで商品が連絡先またはアカウントに関連付けられた際にトリガーされるようにします。
-
カスタム関数を追加し、ワークフローの操作として設定します。
-
カスタム関数内で、
この方法により、Zoho CRMで行った関連付けが自動的にZoho Deskにも反映され、両方のアプリケーション間でデータの一貫性を維持できます。
手順 1: Zoho CRM に Checkbox 項目を追加する
Zoho CRM で、checkbox 項目(例:Sync_to_Desk)を連絡先タブに追加します。
この項目が必須である理由について疑問に思われる場合は、現在、商品がアカウントまたは連絡先に関連付けられた際に自動でトリガーされる自動化を設定することはできませんのでご注意ください。これは商品関連リストから差出人となる場合です。
そのため、商品を関連付けた後にユーザーが手動でこのチェックボックスを選択して自動化を開始する必要があります。
この場合、チェックボックスがトリガーの役割を果たし、選択されるとワークフールールが実行され、続いてカスタム関数が動作し、データがZoho Deskに同期・関連付けされます。
手順 2 : チェックボックス項目でトリガーされるワークフローをZoho CRMで作成する
Zoho CRM で、checkbox 項目(例:Sync_to_Desk)が選択されたときにトリガーされるワークフールールを設定します。
商品を連絡先またはアカウントに関連付けた後、ユーザーは手動でこのチェックボックスを選択し、自動化を開始します。ワークフローは設定されたカスタム関数を実行し、該当するデータをZoho Deskに特定・関連付けます。
ワークフロー設定
-
「設定 → 自動化 → ワークフロー Rules」に移動します。
-
「作成 Rule」をクリックし、該当するタブ(連絡先または取引先)を選択し、ルールの名前と説明を入力します。
-
「When to trigger」で、オン a データ 操作→編集を選択します。
-
「条件」では、以下のように指定します:
-
「Instant 処理」でFunctionを選択し、下記のカスタム関数(Zoho Desk Association API を呼び出します)を関連付けます。
-
ワークフローを保存し、有効化します。
これにより、チェックボックスが選択されている場合、Zoho Desk 上で同期された商品と連絡先/アカウント間の関連付けが自動で作成されます。
参照用スクリーンショット:

コード:
-
DESK_ORG_ID='769696778';
-
associatedProducts = Zoho.crm。getRelatedRecords('商品','連絡先',contactId);
-
searchValue = {'メール':CRM_CONTACT_EMAIL};
-
// searchValueの情報を表示;
-
-
deskContacts = Zoho.desk。searchRecords(DESK_ORG_ID,'連絡先',searchValue,+10、-10,10);
-
// deskContactsの情報を表示;
-
-
matchingContactId = '';
-
for each 連絡先 in deskContacts.取得する('data')
-
{ if(ifnull(連絡先.取得する('zohoCRMContact').取得する('id'),'') == contactId)
-
{
-
matchingContactId = 連絡先.getJSON('id');
-
break;
-
}
-
}
-
info matchingContactId;
-
-
if(matchingContactId。isNull() == 無効)
-
{
-
for each 商品 in associatedProducts
-
{
-
productName = 商品.取得する('Product_Name');
-
searchValue = {'productName':productName};
-
matchingProducts= Zoho.desk。searchRecords(DESK_ORG_ID,'商品',searchValue,+10、-10,5,'desk');
-
productId = matchingProducts。getJSON('data').取得する(+10、-10).取得する('id');
-
-
mp = Map();
-
mp。put('ids',{matchingContactId});
-
mp。put('関連付ける',真);
-
-
associateContactWithTheProduct = invokeurl
-
[
-
url :'https://desk.Zoho.com/api/v1/商品/' + productId + '/associateContacts'
-
種類 :POST
-
パラメーター:mp。toString()
-
connection:'desk
-
];
-
info associateContactWithTheProduct;
-
}
-
}
スクリプトの説明:
-
関連する商品を取得– 特定の連絡先に関連付けられている商品の一覧を取得します。
-
連絡先を特定– 一意の識別子(メールアドレスなど)を使用して、Zoho Desk 内で該当する連絡先を検索します。
-
商品を関連付ける– 取得したすべての商品を繰り返し処理し、「
連絡先と商品を関連付ける」API を利用して、それぞれの商品と特定した連絡先をZoho Deskでリンクします。
参照用スクリーンショット:
メモ: 次の ガイド - 記事を参照し、コード最適化のベストプラクティスや、Zoho CRM 全体でカスタム関数を展開するさまざまな方法をご確認ください。
カスタム Solution 作成者 Yogeshwari N| Zoho パートナー サポート