地方の中小企業におけるIT導入や活用コンサルティングを提供する株式会社etika(エティカ)CRMサポートセンターです!
今回はZohoサービスと連携したオンラインのスクリプト言語「Deluge(デリュージ)」についてご説明します。
ITもプログラミングも初心者の弊社社員が実際に設定に挑戦致しました。
これさえ読めば、知識や経験がない方でも真似して設定ができるはずです。
この記事以外にも、Delugeについて解説した記事がございますので、あわせて御覧ください。
知識ゼロからDeluge関数でタスクの自動生成を設定してみた
今回設定するのは、商談データを作成した時に見積書タブに見積書データを自動で作成します。
今回のポイントは大きく2つです。
①ルックアップ項目を引き継ぐ
商談データを見積書データにルックアップ項目で紐づいている商談名や連絡先を、作成した請求書データにもルックアップで紐づけを行います。
②サブフォーム
通常の項目とサブフォームの項目では、関数の書き方に違いがあります。
見積書のサブフォームの見積商品欄にある「商品名」は必須項目のため、関数上でも入れるデータの指示が必要です。
ご要望が複雑ですと、それなりの知識が必要となります。
その場合は、Zoho内の関数だけではなく、外部ツールとの連携にも精通したプロにぜひご相談ください。
今回行いたい動作は、「商談データが作成された時」ですので、まずは商談のデータIDを取得しましょう。
データIDについては、すでにご紹介している記事の中で解説がありますので、ご参考ください。
Zoho CRMにて、右側の歯車マーク 設定→関数へと進み、関数の名前をつけて画面を開きます。
まず行うことは、Edit Argumentsにいれるもの(商談データID)を設定します。
わかりやすくするために、Parameter Nameは商談タブのAPI名と同じ「deals」を使いました。
//商談のIDを取得する →それをdesalsという名前に置き換える という内容です。
deals = zoho.crm.getRecordById("Deals",deals_id);
info deals;
作成する見積書の内容を決めていきます。
見積書のステージは「下書き」とします。
見積書の作成日の項目に作成した今日の日付を自動で入れるようにします。
それを、aという変数の箱にいれる関数を書きます。
項目の中身を決めていきますので、Deluge関数でのキーバリューというルールを使います。
キーバリューについては、すでにご紹介している記事の中で解説がありますので、ご参考ください。
まずは、aという箱でキーバリューのルールを使います、という宣言をします。
a = Map();
a.put("Quote_Stage","下書き");
a.put("Create_date",today);
そして、見積書のデータの中で必須の項目を入れないと、データを作成することはできませんので、件名に商談名と同じものを入れたいと思います。
商談データにある商談名(API名は"Deal_Name")を取得して、見積書の件名(API名は"Subject")に入れます。
a.put("Subject",deals.get("Deal_Name"));
まずは、見積書のデータの中に、商談のルックアップ項目を作成しましょう。
見積書タブの商談名に商談タブの商談名をルックアップで入れます。
a.put("Deal_Name",{"id":deals_id});
すでにお気づきかと思いますが、序盤で商談のデータIDをEdit Argumentsで取得し、deals_id に入れてましたよね。それをここで使います。
同じような考え方で、商談のデータにある取引先名もルックアップ項目として入れてみましょう。
見積書のデータの中に、取引先名のルックアップ項目があることを確認します。
見積書タブの取引先名に商談タブの取引先名をルックアップで入れる &商談のデータの中から取引先の情報をgetします。
a.put("Account_Name",deals.get("Account_Name"));
見積書のサブフォームは「Product_Details」という関数上の箱の中に入れていきます。
それをproduct_items という変数の箱に入れます。
サブフォームの中身を入れるときは、「list」型を使うというルールがありますので、その宣言をします。
product_items = List();
さらに、項目に入れるときはキーバリューのルールがありますので、変数mpの箱に対してキーバリューの宣言を行います。
mp = Map();
商品タブに何か商品を登録しておき、そのデータIDを確認しておきます。
まずは、その商品を指定で表示させていきましょう。
mp.put("Product",{"id":"408130200000123xxxx"});
同様に、数量1を入れてみましょう。
mp.put("Quantity",1);
リスト型の変数product_item にmpで定義した項目を入れます。
product_items.add(mp);
それをさらにサブフォームの「Product_Details」に入れ、変数aへ入れます。
a.put("Product_Details",product_items);
いよいよ最後に、これまで変数aに入れた情報をもとに見積書データを作成します。
b = zoho.crm.createRecord("Quotes",a);
関数を書き終えたら、ワークフロールールで商談を作成した時を条件に、関数と紐づけを行いましょう。
実際に、商談を作成して、指示した通りの内容の見積書が作成されていれば完成です。
関数を用いてさらに複雑な設定が可能となります。
ご相談がある場合は、無料にて受付しております。
一度、お問い合わせフォームからご連絡ください。