ゾーホージャパン株式会社

            kintoneからZoho CRMにデータを送信する

            kintoneからZoho CRMにデータを送信するには、kintoneでJavaScriptを利用してZoho CRMのAPIを呼び出す必要があります。カスタマイズの詳細については以下をご参照ください。
            以下、設定のサンプルを記載します。

            例1:kintoneのデータ詳細画面からZoho CRMにデータを送信する
            [概要]
            • kintoneの案件管理アプリの案件データをZoho CRMの商談に送信する
            [設定内容]
            • kintoneの案件管理アプリを利用(アプリストアからインストール)
            • 案件データの詳細画面に「Zoho CRMにデータ送信!」というボタンを設置
            • ボタンクリック時にZoho CRMに案件データを送信
            • 送信結果をボタンの下に表示
            • 送信するデータの内容(kintoneのフィールドコード→Zoho CRMの項目名)
              • 会社名→取引先名
              • 先方担当者名→連絡先名
              • 確度→ステージ
              • 日付→完了予定日
              • 小計→総額
            [サンプルコード]
            jQuery.noConflict();
            (function($) {
                "use strict";
                //API用パラメーター
                var token = "※Zoho CRMのAPIの認証トークンの値を設定してください※";
                var url = "https://crm.zoho.com/crm/private/json/Potentials/insertRecords?authtoken=" + token + "&scope=crmapi";
                //■詳細画面
                "use strict";
                kintone.events.on('app.record.detail.show',
                    function(event) {
                        // メニュー右側の空白部分にボタンを設置
                        var headerMenu = kintone.app.record.getHeaderMenuSpaceElement();
                        var myIndexButton = document.createElement('button');
                        myIndexButton.id = 'my_index_button';
                        myIndexButton.innerHTML = 'Zoho CRMにデータ送信!';
                        myIndexButton.onclick = function() {
                            //レコードのデータの取得
                            var rec = kintone.app.record.get();
                            if (rec) {
                                var company = rec.record.会社名.value;
                                var personName = rec.record.先方担当者名.value;
                                var stage = rec.record.確度.value;
                                var closingDate = rec.record.日付.value;
                                var amount = rec.record.小計.value;

                                //XMLデータの処理
                                var xmlData = "";
                                xmlData = xmlData + "<Potentials>";
                                xmlData = xmlData + "<row no=\"1\">";
                                xmlData = xmlData + "<FL val=\"Potential Name\">" + company + "様商談</FL>";
                                xmlData = xmlData + "<FL val=\"Stage\">" + stage + "</FL>";
                                xmlData = xmlData + "<FL val=\"Contact Name\">" + personName + "</FL>";
                                xmlData = xmlData + "<FL val=\"Closing Date\">" + closingDate + "</FL>";
                                xmlData = xmlData + "<FL val=\"Amount\">" + amount + "</FL>";
                                xmlData = xmlData + "</row>";
                                xmlData = xmlData + "</Potentials>";

                                //パラメーターのエンコード
                                xmlData = encodeURI(xmlData);
                                url = url + "&xmlData=" + xmlData;

                              //HTTPリクエストの送信(Zoho CRMのAPIの呼び出し)
                                kintone.proxy(url, 'POST', {}, {}, function(body, status, headers) {
                                    if (status >= 200 && status < 300) {
                                        var responseJSON = JSON.parse(body);
                                        var response = responseJSON.response;
                                        if ('result' in response) {
                                            var message = response.result.message;
                                            var FL_array = response.result.recorddetail.FL;
                                            $(headerMenu).append("<br/>送信結果:"+message);
                                            for (var i in FL_array) {
                                                if (FL_array[i].val == "Id") {
                                                    var Id = FL_array[i].content;
                                                    $(headerMenu).append("<br/><a href='https://crm.zoho.com/crm/EntityInfo.do?module=Potentials&id=" + Id + "' target='_blank'>商談データへのリンク</a>");
                                                }
                                            }
                                        } else {
                                            var errorMessage = response.error.message;
                                            var errorCode = response.error.code;
                                            $(headerMenu).append("<br/>エラーが発生しました:"+errorCode + " " + errorMessage);
                                        }
                                    }
                                });
                            }
                        };
                        kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton);
                    }
                );
            })(jQuery);
            ※別途jQueryのライブラリーの設定が必要です。

            例2:kintoneで編集した内容でZoho CRMのデータを更新する
            [概要]
            • kintoneの在庫管理アプリのデータの出荷状況が変更された時にZoho CRMのデータを更新する
            [設定内容]
            • kintoneで在庫管理アプリを作成
              • 「CRMの商談ID」というフィールドを作成し、Zoho CRMの商談IDを入力
              • 「出荷状況」というフィールドを作成し、出荷状況を入力
            • Zoho CRMに「出荷状況」というカスタム項目を作成
            • kintoneのJavaScriptカスタマイズ
              • 「出荷状況」の値を編集時にZoho CRMにデータを送信するように設定
              • 更新対象
                • 「CRMの商談ID」にIDが入力されている商談データ
              • 送信するデータの内容(kintoneのフィールドコード→Zoho CRMの項目名)
                • 出荷状況→出荷状況
              • 送信結果を画面上部に表示
            [サンプルコード]
            jQuery.noConflict();
            (function($) {
                "use strict";
                //■レコード編集画面の保存実行前イベント
                kintone.events.on('app.record.edit.change.出荷状況', function(event) {
                    var row = event.changes.row;
                    var field = event.changes.field;
                    var shipmentStatus = field.value;
                    var crmRecordID = row.value['CRMの商談ID'].value;

                    if (!event.record) {
                        return;
                    }
                    //ヘッダー領域の取得
                    var headerMenu = kintone.app.record.getHeaderMenuSpaceElement();

                    //API用パラメーター
                    var token = "※Zoho CRMのAPIの認証トークンの値を設定してください※";
                    var url = "https://crm.zoho.com/crm/private/json/Potentials/updateRecords?authtoken=" + token + "&scope=crmapi&id=" + crmRecordID;

                    //XMLデータの処理
                    var xmlData = "";
                    xmlData = xmlData + "<Potentials>";
                    xmlData = xmlData + "<row no=\"1\">";
                    xmlData = xmlData + "<FL val=\"出荷状況\">" + shipmentStatus + "</FL>";
                    xmlData = xmlData + "</row>";
                    xmlData = xmlData + "</Potentials>";
                    
                    //パラメーターのエンコード
                    xmlData = encodeURI(xmlData);
                    url = url + "&xmlData=" + xmlData;
                    
                    //HTTPリクエストの送信(Zoho CRMのAPIの呼び出し)
                    kintone.proxy(url, 'POST', {}, {}, function(body, status, headers) {
                        if (status >= 200 && status < 300) {
                            var responseJSON = JSON.parse(body);
                            var response = responseJSON.response;

                            if ('result' in response) {
                                var message = response.result.message;
                                var FL_array = response.result.recorddetail.FL;
                                $(headerMenu).append("Zoho CRMのデータを更新しました:<br/>");
                                $(headerMenu).append("出荷状況を次の値に変更しました:" + shipmentStatus+"<br/>");
                                $(headerMenu).append("更新結果のメッセージ:" + message);
                                for (var i in FL_array) {
                                    if (FL_array[i].val == "Id") {
                                        var Id = FL_array[i].content;
                                        $(headerMenu).append("<br/><a href='https://crm.zoho.com/crm/EntityInfo.do?module=Potentials&id=" + Id + "' target='_blank'>該当のデータへのリンク</a>");
                                    }
                                }
                            } else {
                                var errorMessage = response.error.message;
                                var errorCode = response.error.code;
                                $(headerMenu).append("エラーが発生しました<br/>" + errorCode + " " + errorMessage);
                            }
                        }
                    });

                });
            })(jQuery);

            ※上記のサンプルの動作保証やサポートは行っておりません。ご自身の責任において利用、カスタマイズしていただくようお願いします。

            参考情報
            更新: 01 Aug 2016 05:02 PM
            役に立ちますか?  
            この記事の改善のためにご意見・ご要望をいただけると幸いです
            0 0