クライアントスクリプト 新規作成を禁止する
■概要 あまりニーズはないと思いますが、、、、Zoho CRM 程度作り込んで来ると「このカスタムタブのレコードは商談から Deluge でコピーしたものだけにしたい」と言う場面になりました。 レコードの新規作成は制御できない様でしたが、保存ボタンはクライアントスクリプトで無効化できることがわかりました。これを使って新規作成したレコード(各項目には何も値が入っていないレコード)保存できない方法をご紹介します。 出典: ZOHO CRM Client Script Disable Save Button
【Zoho CRM】Deluge による自動番号の開始番号リセット
■概要 商談番号を「自動番号」フィールドで設定している際、年度が変わったら「開始番号」を 0001 から再度スタートしたい。 参考URL:https://help.zoho.com/portal/de/community/topic/resetting-auto-number-on-new-year ■対応策 「スケジュール処理」に以下の様な関数を組み込み、「自動番号」フィールドのプロパティ「開始番号」を自動で変更する。 ■実行環境 Zoho CRM Plus ■関数 ■関数の解説 ・invokeapi
【Zoho CRM】カスタム関数:商談サブフォームのカスタム項目を見積書サブフォームに反映する方法について
いつもお世話になっております。 昨日2/28のZohoワークアウトでご相談をさせていただきましたが、こちらでもあらためて投稿いたします。 【状況・やりたいこと】 弊社では、商談タブにサブフォームを設置して見積書のベースを作成し、そのデータをカスタム関数で反映して見積書データを新規に生成しています。 この仕組みを採用したのは、弊社がZoho CRMを導入した当時、見積書の標準機能では粗利を算出することができなかったためで、商談サブフォームに「仕入価格」(通貨項目)や「粗利」(販売価格と仕入価格の差額を出す数式項目)を追加することで、各商品や見積案件の粗利の妥当性を確認しています。
キャンペーンの「実際の費用」項目を計算して埋めるクライアントスクリプト
キャンペーンの費用対効果分析を簡略化することを考えています。現在は集計用の関数項目を作成し、その項目を見ながら実際の費用を手打ちしていて、地味に手間となっています。 そこで、第一歩として、出展費用(API名:Exhibition_Fee)とレンタル費用(API名:Rental_Fee)と輸送費(API名:Transportation_Fee)を入力した際に、実際の費用(API名:Actual_Cost)を自動計算して埋めるクライアントスクリプトが書ければと考えています。まずは下記のページを参照に、後述のクライアントスクリプトを書いてみましたが、残念ながら機能しない状態です。
Zoho CRM等のサービスと基幹システム(MySQLなどのデータベース)との連携方法(Zoho Flow)
Zoho CRM等のサービスと、自社にある基幹システムをデータ連携したいというご要望をよくお聞きします。 今までだとインポート/エクスポートする等の対応や、APIを利用した開発が必要でした。 しかし、Zoho Flowがオンプレミスのサービスに対応し、MySQLなどのデータベースと繋げられることになったことで、たとえばZoho CRMの取引先タブにデータが作成されたら基幹システムにあるデータベースに情報がpushされ、マスタデータが作成されるなどの操作が可能となっています。 簡単にですがヘルプページを記載しておきます。
カスタム関数:Zoho CRMの商談にサブフォーム(商品)を登録し見積書を作成する
// 商談の情報の取得 resp = zoho.crm.getRecordById("Deals",pID); subinfo = ifnull(resp.get("field5"),""); // 事前準備 項目名の確認 info resp; pdList = list(); // サブフォームの商品情報を見積書用に転記 for each rec in subinfo { mp = Map(); mp.put("product",{"name":rec.get("prname").get("name"),"id":rec.get("prname").get("id")});
仕入先や取引先の新規登録もスマホで番号をスキャンするだけ
Zoho CRMで新しい取引先(仕入先)を登録したい場合 この拡張開発でスマホアプリから登録番号をスキャンするだけで国税庁APIから 会社名、郵便番号、住所、法人番号、インボイス番号が一気に登録されます もう面倒な入力や名寄せは不要です 動画が大きくなってしまったのでXの投稿 https://x.com/Mac_nishio/status/1709783869833273417?s=20 こちらをご覧ください
スマホアプリでもクライアントスクリプトは対応してます
追記です。意外と知られてないかもしれませんがスマホアプリでもクライアントスクリプトは対応してます 動画を添付しておきます
Zoho CRMインボイス対応
前回は国税庁からタブにインボイス登録データをダウンロードする方法でしたが 今回は国税庁APIを用いてクライアントスクリプトでインボイス登録を確認します 動作の動画も添付します なおこれは編集画面ですが インボイス登録があるかの確認だけなら詳細画面で番号入力で簡単にチェックできます。 いちいち編集画面までいかないで、仕入先のインボイス登録確認だけなら簡易でできるでしょう これは一例です なにかのお役に立てればと思います。ZohoBooksでも同様の処理は可能です(クライアントスクリプトはないので
自社事例報告:ZohoBooksからマネーフォワード請求書にデータを送るシステムの解説をしました
ZohoBooksからマネーフォワード請求書にデータを送るシステムの解説をしました Zoho中心の半自動化システム構築 MAからCRMにデータが入りBooksで販売管理して請求情報をMF請求書に送る 逆にMF経費でクレジットカードや社員の精算はZohoBooksに送る これによりZohoBooksでは管理会計 MFクラウドでは財務会計が連動 もちろん電子帳簿保存法も対応できてる データの更新はボタンひとつで数分で終わる 今回は『CRMにデータが入りBooksで販売管理して請求情報をMF請求書に送る』
郵便番号から住所を自動入力するクライアントスクリプト
カスタム関数講座にて、以下のURLの手法で郵便番号から住所を自動入力するクライアントスクリプトをご教示いただき、そのまま見様見真似で実装しています。 https://support.zoho.co.jp/portal/ja/kb/articles/update-address-based-on-zipcode しかし、弊社の顧客は大学や研究所など、一般企業とは異なるためなのか、郵便番号を入力しても住所が自動入力されない場合が大半です。この場合、郵便番号を参照しているWebサイトを変更するなどす
ZohoCRMで他タブの項目を表示させる関数を作る
下記関数を作ったのですが、おそらく9行目と16行目で「get」の使い方・文法が間違っていてエラーとなります。 初歩的なところで恐縮ですが、解決策や参考となるURLを教えていただけないでしょうか。 ※getで読み取った内容を格納する引数に、テキストで値を代入したときは正常に関数が動きました。
クライアントスクリプトを使用して項目の入力必須化を行いたい
いつもお世話になっております。 今成様や西尾様、松井様にはお話しておりますが、先日開催された「カスタム関数マスター講座 Vol.4」で、宿題として取り組んだもののうまくいかなかったクライアントスクリプトを投稿させていただきます。 【取り組んだテーマ】 自社の商談タブに設置しているサブフォームの項目「販売金額総額(税別)」で何らかの金額更新があったら、項目「外注総額_」をクライアントスクリプトで入力必須の項目にする。 必須化の条件は、「販売金額総額(税別)」で「0」円よりも大きい数字(=1以上)が反映されたときとする。
見積書作成時に商談名を件名に転記する方法
お世話になっております。 見積書作成時に商談名を自動で転記したいとの要望に応えるために以下の関数を作成してみました。 引数:ID=見積書のID //見積タブのデータ取得 qDetail = zoho.crm.getRecordById("Quotes",ID); //見積書に紐づいた商談名の取得 DealName1 = qDetail.get("Deal_Name"); DealName = DealName1.get("name"); info DealName; //見積書の件名に商談名を転記
カスタム関数:郵便番号を元に住所情報を更新する
対象タブは見込み客、連絡先、取引先の3つでございますが、 各タブでカスタム関数が所々異なっております。ご了承ください。 見込み客編 引数 recordID = 「見込み客」の「見込み客のID」 zipCode = 「見込み客」の「郵便番号」 関数の内容 zipRes = getUrl("http://zipcloud.ibsnet.co.jp/api/search?zipcode=" + input.zipCode); prefecture = zipRes.executeXPath("/root/results/address1/text()"); city = zipRes.executeXPath("/root/results/address2/text()"); street = zipRes.executeXPath("/root/results/address3/text()"); mp=map(); mp.put("State",prefecture); mp.put("City",city); mp.put("Street",street); resp = zoho.crm.updateRecord("Leads",recordID,mp);
契約終了日が契約開始日より前の日を入力するとエラーを表示させる方法
お世話になっております。 契約書の譲歩鵜をカスタムタブ出登録しています。 そこに日付項目「契約開始日」と「契約終了日」を設置しています。 契約終了日が契約開始日より前の日付を入力した場合にエラー表示が出て入力できないように設定したいと考えています。 入力規則やレイアウトルールを試してみましたが、上記2つの日付項目を比較する条件設定ができません。 また、入力規則には関数を利用することができますが、2つの項目を比較した条件設定はできないように見えます。 レイアウトルールや入力規則に限らず、契約終了
連絡先の性別を商談に反映するカスタム関数を教えてください
お世話になっています。 表題の通り、連絡先の性別を商談に反映させるカスタム関数をご存知の方がいらっしゃったら教えて頂きたいです。
ZohoCRMウィジェットで「ZOHO.CRM.CONNECTION.invoke」、「coql」を使用して情報を取得したい
ZohoCRMのWebタブに表示するZohoCRMウィジェット作成しています。 JS SDKの「ZOHO.CRM.CONNECTION.invoke」でcoqlのSQLでZohoCRMから指定の情報を取得したいのですが取得できません。 ・Webタブのウィジェット上で「ZOHO.CRM.CONNECTION.invoke」を使用して通常のレコード情報(「https://www.zohoapis.com/crm/v3/API名/」)の取得は出来ています ・ZohoCRM関数でDelugeでのcoqlによる情報取得は出来ています
Cスクリプトを利用してサブフォームの総計を商談総額にリアルタイムに反映
あらかじめサブフォームの総額を設定 サブフォームの総額は項目変更の処理ができないため、ページが変わったらの条件で指定 let total_amount = ZDK.Page.getField('field6'); let total_amount_value = total_amount.getValue(); log(total_amount_value); let amount2 = ZDK.Page.getField('Amount'); amount2.setValue(total_a
Cスクリプトを利用したタブ間のデータ取得
見積書項目に取引先番号をカスタム項目で追加(API名=Account_No) クライアントスクリプト作成 ---------------------- カテゴリー-タブ ページ-編集ページ タブ-見積書 レイアウト-標準 処理の種類-項目の処理 項目-Account Name イベント-onChange ---------------------- クライアントスクリプト //見積書の取引先名を取得 var field_obj1 = ZDK.Page.getField('Account_Name');
毎年変わる学年と年齢を自動更新する(カスタム関数(Deluge Script)とワークフロー)
学年/年齢項目を用意 誕生日起算で実行するワークフローを設定 引数を設定 //年齢更新 //今日日付をYYYYMMDDに変換 tm = toString(zoho.currentdate.getMonth()); if(len(tm) == 1) { tma = "0" + tm; } else { tma = tm; } td = toString(zoho.currentdate.getDay()); if(len(td) == 1) { tda = "0" + td; } else { tda
Cスクリプトを利用して郵便番号入力時に住所を自動入力する
ユーザーと権限から信頼するドメインを追加 // 1. 郵便番号項目の値を取得 var zipCode = (value !== undefined) ? value : "0"; try { // 2. 郵便番号APIを呼び出す var r = ZDK.HTTP.request({ url: 'https://zipcloud.ibsnet.co.jp/api/search', method: 'GET', parameters: { zipcode: zipCode } }).getResponse();
クライアントスクリプトで関連タブのデータを引っ張ってくる方法
先日、Meetupでご相談させていただいた内容です。 関連タブの情報を引っ張ってきて初期表示させたいと思っています。 具体的には、取引先タブの関連から受注書を開いたときや、 受注書を開いた後取引先を紐づけたとき、取引先から住所情報(郵便番号、都道府県、市区町村、町名・番地)が引き継がれますが、 同じように他の項目も引っ張りたいです。 (この運用では、見積を使わず直接受注書を使います) どのように関連データを取得するのかが分からず困っています。 どなたかお分かりの方教えてください。 よろしくお願
Cスクリプトを利用して年齢を即時に算出する
あらかじめ連絡先タブに項目=年齢(API name = Nenrei)を追加 let birth = ZDK.Page.getField('Date_of_Birth'); let birthd = birth.getValue(); // 誕生日を保持したDateインスタンスを生成 var birthday = new Date(birthd); // 今日の日付を保持したDateインスタンスを生成 var today = new Date(); // 現在の年から誕生年を減算 var age
CRMに追加されたCスクリプトについて
お世話になっております。 スターフォームの田中です。 先日CRMに追加されました「Cスクリプト」についての質問です。 こちらサンプルや解説記事のページなどはありますでしょうか。 またどのようなケースで利用するかなどご存知の方がいらっしゃいましたらご教示願いたく存じます。 よろしくお願いいたします。
自動で商談名を「取引先名+様+作成日付+商品・サービス」にするコード
自動で商談名を「取引先名+様+作成日付+商品・サービス」にするコード です。 需要あるか分かりませんが、必要な方お使いください。 例:「****様 20200213 ワッペン」 関連タブ 商談 SHODAN_ID = 商談.商談のID 以下はDelugeコード dealDetails = zoho.crm.getRecordById("Deals",SHODAN_ID.toLong()); newdealname = ifnull(dealDetails.get("field19"),""); mp = Map(); mp.put("Deal_Name",newdealname); update = zoho.crm.updateRecord("Deals",SHODAN_ID.toLong(),mp); info mp; info update; 「 field19 」は カスタマイズ > タブ&項目 > 商談 > 項目 > 商談名自動生成;数式(文字列) 「 field19 」の数式は「Concat(${商談.取引先名},'様',' ',Substring(Tostring(${商談.作成日時}),1,4),Substring(Tostring(${商談.作成日時}),6,7),Substring(Tostring(${商談.作成日時}),9,10),'
カスタム関数:商談のサブフォームにある商品から見積書を作成する方法
// 商談の情報の取得 resp = zoho.crm.getRecordById("Deals",pID); subinfo = ifnull(resp.get("field5"),""); // 事前準備 項目名の確認 info resp; pdList = list(); // サブフォームの商品情報を見積書用に転記 for each rec in subinfo { mp = Map(); mp.put("product",{"name":rec.get("prname").get("name"),"id":rec.get("prname").get("id")}); mp.put("quantity",rec.get("prquantity")); mp.put("list_price",rec.get("prprice")); mp.put("net_total",rec.get("sum")); pdList.add(mp); } // 見積書データの作成 qMap = Map(); qMap.put("Product_Details",pdList); qMap.put("Subject","見積書");