1. TOP
  2. Zohoクリエーター
  3. Deluge Script
  4. Zoho CRM APIの”UpdateRelatedRecords”のメソッドをZoho CRMで使ってみた。

Zoho CRM APIの”UpdateRelatedRecords”のメソッドをZoho CRMで使ってみた。

Deluge Script

|

UpdateRelatedRecordのメソッドを使ってみた。

関連タブを紐付ける時に使う、UpdateRelatedRecordsを使ってみた。早速、UpdateRelatedRecordsのメソッドの内容はこちら。基本的な使い方は、メソッド内にある型に合わせ(後ほど説明)てこれを、getUrl()で処理をすれば基本はOKとなる。

APIの使い方は、大きく3通りある。

APIと聞けば、他サービス連携がまず頭に思いつくが、Zoho CRM APIメソッド(以下「APIメソッド」)は、Zoho CRM(以下「CRM」)を拡張するメソッドとしても、適応ができることを知ったことが一番の収穫だった。過去にCRM=>ChatWork連携や、Word Press => Zoho CRMのプラグインを開発したが、APIメソッドを、CRM内で追加したのは初めて。そこで色んな気付きが生まれた。

  1. Zoho CRM=>他サービス
  2. 他サービス=>Zoho CRM
  3. Zoho CRM => Zoho CRM

今回は、3)の内容となる。

実際に、APIメソッドを使ったCRMの実装方法

主な方法としては、以下のような感じだと思う。まだ別の方法があるかもしれないけど、、

  1. 設定>ワークフロー>「カスタム関数」を実行する方法
  2. 設定>タブ>リンクとボタンから「ボタン」を設置する方法

今回は、2)の方法で行った。簡単に言うと、「ボタン」を押すと、「UpdateRelatedRecord」が作動するというものだ。

UpdateRelatedRecordsのメソッドで、実際何をやったのか?

UpdateRelatedRecordsのメソッドでやったことは、商談タブ内にある任意のレコードに「ボタン」を押せば手動で商品に紐付くというシンプルな仕様。もちろん、フィルターで処理できる100レコードを一回で、紐付けるというのがポイントとなる。

引数とDeluge Scriptの内容

まずは、以下の引数を設定、

2016-10-25_18-54-03

PotensialID = 商談のIDを取得し、
myToken = 自身のAPIのTokenを予め取得する必要がある。これは、URLの型に合わせる時に必ず必要となる。
ProductID = 任意の商品IDとなる。

商品IDは、商品タブに入り、任意の商品をクリックすると、URLにユニークなIDが振られているのでこれが商品IDとなる。
2016-10-25_18-58-33

pIDLists=input.PotentialID.toList("|");
for each pIDList in pIDLists
{
relateProductPotentialURL="https://crm.zoho.com/crm/private/xml/Products/updateRelatedRecords?authtoken=" + input.myToken + "&scope=crmapi&relatedModule=Potentials&xmlData=<Potentials><row no=\"1\"><FL val=\"POTENTIALID\">" + pIDList + "</FL></row></Potentials>&id=" + input.ProductID;
relateProductPotentialResponse = getUrl(relateProductPotentialURL);
}
return "";

まずは1行目だが、見慣れないtoList(“|”)とあるが、これは以下のことが理由のよう。ZohoジャパンのH氏に聞いてみた。

商談のレコードID引数としたカスタム関数に対して、複数のレコードを選択した状態でカスタム関数を実施すると、引数には次のような値が渡されます。
158823000006573092|||
158823000006618035|||
158823000006768040|||
158823000006768059|||
158823000006776031
この例では、5つのレコードのIDをが引数として渡されています。「|||」が区切り文字として使用されています。そのため、現状お渡ししているスクリプトでは、単一のレコードIDが渡されることを想定しているため、複数のレコードのIDを引き渡すことを前提にした処理を追加する必要があります。

復数レコードの区切り文字として、toList()が必要みたい。APIメソッドのサンプルをみていると、至る所に、これが出てくるので、これはこういうもんだととりあえず覚えておこう。ここらへんのサンプルとかそうっぽい。

https://crm.zoho.com/crm/private/xml/PriceBooks/updateRelatedRecords?authtoken=自分のトークン Authenticaton Token&scope=crmapi&id=商品ID&relatedModule=関連項目で紐付けるレコード(ここでは「商品レコードのID」)&xmlData=<Potential><row no="1"><FL val="POTENTIALID">商品ID</FL></row></Potential>

3行目は、getUrl(); で上記の型に合わせたURLを出力すればOK。

2016-10-25_19-23-22

ボタンの位置は、ここに表示した。これで、100件のレコードを一気に関連付けられるようになった。