【ZOHO CRM】ワークフローを使った見込み客変換時のバリデーションチェック

最近 Zoho 製品にふれることがあるので、いろいろと備忘録として残しておきたいと思い、投稿しております。あくまでも自分の考えなので、100%正しいとは限らないことあらかじめご了承ください。

目次


1. 結論

現在(2021 年 5 月時点)の Zoho CRM では、見込み客変換時のバリデーションチェックは出来ないようです。代替案として、ワークフローなどをつかってチェックを実施し、見込み客を変換する方法があります。設定だけを知りたい方はこちらからどうぞ!


2. 見込み客から連絡先への変換時の問題点

こちらで解説した通り見込み客(リード)は、ビジネスの対象かどうか決定していない(営業活動の対象とすべきか未定である)人達です。その後、なにかしらのフローによって精査されていき、有効であると判断されると連絡先に変換されるのが基本的な流れです。

見込み客 --変換--> 連絡先/取引先/商談
※くどいようですが、上記は基本的な流れです。組織によっては見込み客を使わないところもあるでしょう。

その変換の際に「一定の基準を設けたい」という方は多いのではないでしょうか。例えば、展示会で取得した見込み客には、製品に興味があるわではなく、ただノベルティ(景品)が欲しいだけだった人も含まれています。(あとは、コンパニオンと話したかっただけとか)

つまり、見込み客の中には、顧客になる可能性がとても低いデータも含まれています。そのようなデータを弾くために、連絡が取れたかどうか、自社の製品/サービスに興味があるかどうかなどをもとに一定の基準を設定しているところが多いと思います。また少し発展して、Zoho CRM のスコアリングルールの機能によって算出されたスコア値をもとに連絡先に変換しているなんてところもあります。

しかし、その変換の際に地味に問題になるのが、どのようにしてデータの質を保つのか ことです。別の言い方をすると、変換する際に一定の基準を満たしているかどうか確認する必要があるが、どのように確認するのか ということです。


3. Zoho CRM の場合

見込み客を変換する時にできるだけノイズを減らすことは、その後の営業活動においても重要なことです。しかし、Zoho CRM では変換時の確認(バリデーションチェック)に対応していません 。(2021 年 5 月時点)

もちろん、運用でカバーする手段もありますが、せっかく CRM という IT 製品を使っているので機械的なチェックを行いたいという方も一定数いるのではないでしょうか。


4. ワークフロールールを活用した見込み客の変換

ワークフローを利用するといろいろなことができますが、その中の 1 つとして、「見込み客の変換」があります。また[権限]にて見込み客の変換操作の権限を制御できます。 その 2 つを組み合わせることで、

  • 条件を満たす見込み客のみ自動的に変換を行い - ①
  • また一般利用者が勝手に変換できないように権限を制限する - ②

ことができるになります。次よりそれぞれの手順を紹介します。


① 見込み客変換の設定
  1. [設定] > [ワークフロールール] > [ルールの作成]をクリック
  2. タブでは[見込み客]を指定し、ルール名などは任意の値を入力 f:id:zunda_moch1:20210530174248p:plain:h300

  3. [いつ?]のセクションにて[データを操作した時] > [編集] > [いずれかの項目が更新されたとき]を選択し[次へ]をクリック f:id:zunda_moch1:20210530174358p:plain:h300

  4. [条件]のセクションにて変換対象となるときの条件を指定

    例)
    見込み客ステータス / が次の値と等しい / 有効(精査済み) ※"有効(精査済み)"はカスタマイズした値です。
    会社 / が空ではない
    スコア / >= / 20  ※スコアリングルールについてはこちら

f:id:zunda_moch1:20210530174437p:plain:h300

  1. [すぐに実行する処理]より[変換]をクリック
  2. f:id:zunda_moch1:20210530174455p:plain:h300
  3. 見込み客のデータをどのタブに引き継ぐのかまたは担当者はだれにするのかなどを設定
  4. f:id:zunda_moch1:20210530174514p:plain:h300
  5. [保存]をクリック


② 変換権限の設定
  1. [設定] > [セキュリティ設定] > [権限]より任意の権限をクリック
    ※デフォルトの[管理者]と[標準]は、編集可能なところが制限されている仕様なので、[新しい権限設定]より新規作成&CRM のユーザに作成した権限を割り当てる必要があります。 f:id:zunda_moch1:20210530175105p:plain:h300
  1. [ツール] > [変換]より[見込み客]のチェックを外す
  2. f:id:zunda_moch1:20210530175123p:plain:h300


5. まとめ

今回は、ワークフローを利用して見込み客変換時に"擬似"バリデーションチェックを行う方法の備忘録でした。将来的にはバリデーションチェックが実装されることもあるかもしれませんが、今のところ対応していないため、ワークフローを使って条件をもとに自動変換させることで代替する方法があります。運用次第ではイマイチかもしれませんが、どうしてもバリデーションチェックを挟みたい方の参考になれば幸いです。


ではでは、よい ZOHO ライフを! Until next time, goodbye!

【ZOHO CRM】Delugeを使って商談の総額をボタン 1 つで入力する方法

目次


ゴール

商談の各データ内の[総額入力]ボタンをクリックすると、総額項目に見積書の総計を入力する

f:id:zunda_moch1:20210516182136p:plain:h300
総額入力ボタンと総額項目

f:id:zunda_moch1:20210516182341p:plain:h300
見積書セクションと総計


利用する機能

  • ボタン
  • 関数

【ご注意】
関数はエンタープライズプラン以上から利用できます。Zoho CRM の関数は、すごく便利なのでこの機能を使うためにだけにエンタープライズプランにするのもアリだと思います。


設定方法

  1. [設定] > [タブ&項目] > [商談]をクリック f:id:zunda_moch1:20210516182530p:plain:h300

  2. [リンクとボタン]より[最初のボタンの作成]をクリック

  3. ボタン名や詳細を入力し、ボタンの配置では[ページの表示]を選択
  4. "ユーザーが..どのような処理を行いますか?"にて[関数の作成]を選択 f:id:zunda_moch1:20210516183307p:plain:h300

  5. 関数名/表示名/詳細を入力

  6. 自動的に Deluge を記述する画面に移動するので、関数を記述(下記コードを参照)
  7. [Edit Arguments]にて引数を設定 f:id:zunda_moch1:20210516183217p:plain:h300

  8. 関数を保存

  9. ボタンを表示する権限を指定

  10. リンクとボタンの[保存]をクリック

f:id:zunda_moch1:20210516183414p:plain:h300


Deluge コード

//関連リストの見積書を取得
quotes = zoho.crm.getRelatedRecords("Quotes","Deals",dealId);

//見積書の総計を取得
all_total = 0;
for each  quote in quotes
{
    total = quote.get("Grand_Total");
    info total;
    all_total = all_total + total;
}
info all_total;

//総額項目を更新するための辞書を生成
amount = Map();
amount.put("Amount",all_total);
info amount;

//商談の総額項目を更新
updete = zoho.crm.updateRecord("Deals",dealId,amount);
info zoho.crm.getRecordById("Deals",dealId).get("Amount");
return "Successfully updated!";

※コード実行は自己責任でお願いいたします。
※仕様が変わる場合があります。


Edit Arguments の設定

手順 7 の"[Edit Arguments]にて引数を設定"では、商談の ID を渡すように設定します。"#"を入力するとパラメータを入力できます。

今回は商談の ID を設定しましたが、この機能を利用するといろいろと出来そうですね。


余談:Deluge とは

Degule とは、Zoho 独自のスクリプト言語です。Zoho CRM をはじめとして Zoho のいろいろな製品で利用できる言語みたいです。

自分はプログラマではないので専門的なことはできませんが、Zoho 製品を活用するために Deluge を少しずつ覚えてみたいと思い、下記のサイトを使って学びました。最近は Google 翻訳や DeepL 翻訳などの自然言語処理が素晴らしいので英語が苦手な自分でも何とかやれました。

Deluge 学習サイト(英語)

f:id:zunda_moch1:20210516184649p:plain:h300
Learn Deluge


結果

今回作成した[総額入力]ボタンをクリックすると、見積書の総計の合算値が総額項目に入力されました。

f:id:zunda_moch1:20210516184540p:plain:h300
自動入力された総額項目


【重要】
関数の実装は自己責任でお願いします。またこのような記事を書いておいて言うのもなんですが、関数を利用したカスタマイズを手放しで推奨しておりません。Zoho CRMだけでなくSalesforceなどの製品でもそうですが、できるだけカスタマイズせずともうまく行くように運用側を少し妥協するなどの気持ちが必要だと自分は考えています。ゴリゴリにカスタマイズした結果、身動きが取れなくなったところや活用できなくなったところをよく聞くので...


まとめ

今回は、関数とボタン機能を利用して商談の総額項目を 1 クリックで更新する方法の備忘録でした。

総額項目は、売上予測タブなどでも利用される重要な項目なので、簡単かつミスなく入力できるようにしたいと考えている方の参考になれば幸いです。


ではでは、よい ZOHO ライフを! Until next time, goodbye!


Zoho CRM 導入時に置き去りにされがちな重要なこと

最近 Zoho 製品にふれることがあるので、いろいろと備忘録として残しておきたいと思います。あくまでも自分の考えなので、100%正しいとは限らないことあらかじめご了承ください。

目次


読んで欲しい人

  • CRM の導入を検討をしている、またはZoho CRM を評価している人


Zoho CRM 導入において重要なこと

Zoho CRM に限らず CRM(顧客関係管理)製品を利用する際に重要なことは、"CRM を利用してなにをしたいのか。なにを達成したいのかを考えること"などたくさんあると思います。


その中でも "CRM の設計思想を理解する" は置き去りにされがちな視点ではないでしょうか。


"設計思想"というとすこし難しいイメージがありますが、ようは "どのような利用を想定して製品が作られているかを理解する" ことです。


(さっそく余談ですが、日本の IT 利用者は運用を製品にあわせることが苦手なように感じます。製品を運用にあわせるようにするために度が過ぎたカスタマイズが横行し、それがブラックボックス化した結果、様々なコストがかかる状態に陥っているような感じがします...また海外のパッケージ製品や SaaS は、グローバルスタンダードにあわせて作られていることが多いです。そのため運用をグローバルスタンダードに合わせた方がこの時代はのちのち楽です。運用に戦略的価値があるならば話は別ですが。)


Zoho CRM を理解する

結論から述べると、これから CRM を利用する方は、次の 2 つのことを理解することが活用の第 1 歩目です。

  1. タブの意味を理解する
  2. データの流れを理解する


1.タブの意味を理解する

たくさんのタブがありますが、最初は次の 4 つのタブを理解しておけば十分だと思います。


見込み客
見込み客とは、ビジネスの対象になるかどうか確定してない人です。例えば、展示会で取得した来客データや WEB サイトから資料ダウンロードを行った人などです。

つまり、顧客として扱うべき対象なのかそれとも対象ではないのか(いわゆるジャンクリード)なのかを判断するステージが見込み客タブです。


連絡先
連絡先とは、ビジネスの対象として確定した相手側の担当者です。次に紹介する取引先と関連付けて管理していきます。


取引先
取引先とは、ビジネスの対象として確定した会社です。取引先と連絡先は、基本的に 1 対多の関係です。もし B2C の企業であれば、当該タブを利用しないところも多いと思います。


商談
商談とは、案件です。この辺の定義は組織によって異なると思いますが、ステージ管理したいものや売上として扱いたいものを管理するタブです。


端的にまとめると...

見込み客:人(精査未完了)
連絡先:人(精査済み)
取引先:会社
商談:案件

のようなイメージです。


2.データの流れを理解する

上記にて見込み客とは、ビジネスの対象になるかどうか確定してない人と説明しました。では、確定した場合はどうするのでしょうか。


その場合は、見込み客のデータを 変換 することで、連絡先や取引先に移動させます。つまり、Zoho CRM 上の運用の流れとしては、下記のような感じです。


見込み客 --変換--> 連絡先/取引先/商談1


この流れを理解しないで CRM を利用すると、"せっかく導入したのにあまり活用できない"という事態に陥ります。例えば、"見込み客タブにデータを入れたけど、商談と紐づかないから困ってる"というのは製品を理解していないので困るのは当たり前です。


もちろん上記は"基本の流れ"なので、見込み客タブや取引先タブを利用しないという組織もあるかと思います。しかし、精査された見込み客を連絡先に移動し、その後で商談などを関連付けて管理していくという基本は押さえておくべきポイントです。

f:id:zunda_moch1:20210516162344p:plain:h400
データの流れ


余談:見込み客の変換について

せっかく変換に言及したので、見込み客の変換を実施する前に知っておくべきこと紹介します。


変換の際に注意すべきことは、 一度連絡先に変更すると見込み客に戻すことはできない ということです2。 つまり、一度ビジネスの対象になった顧客(見込み客から変換し、連絡先に移動させた顧客)は、その後疎遠になった場合でも見込み客に再度移動させることが出来ません。


「その場合、連絡先タブに要らないデータも溜まっていくじゃん...」という思うかもしれませんが、その点について問題ありません。溜まっていくこと自体は、削除しない限り避けることは出来ませんが、Zoho CRM のタブでは、ビューやフィルターという機能を利用できます。それらの機能を利用することで、例えば優先順位が最下位の連絡先は表示しないなどのフィルタリング表示ができます。


見込み客の変換の関連付け機能など、正直この変換だけで1つの記事が書けるレベルですが、最初は大枠を抑える方がいいと思うので本記事では割愛します。


まとめ

すこし脇道に逸れてしまいましたが、CRM の利用をはじめる前に "どのような利用を想定して製品が作られているかを理解する" ことが重要です。もちろん他にも重要なことはありますが、今回言及した視点は少し軽視されがちにも関わらず、活用する際には重要になってくる視点です。この部分の理解が浅いために十分な活用ができなく営業や上長から文句を言われたり、もう一度データを入れ直すような手間ははできるだけ避けるべきです。(自戒)


"製品を理解する"といっても、何を理解すればいいのでしょうか。個人の経験では、本記事で紹介した "1.タブの意味を理解する""2.データの流れを理解する" の 2 つの内容をまずは知っておくことでスムーズな活用ができるようになると思います。


ではでは、よいZOHOライフを! Until next time, goodbye!



  1. 見込み客にて会社が入力されいない場合は、取引先は作成されません。また商談の作成は任意です。つまり、変換の際に新しい商談作成するかを選択できます。

  2. 2021 年 5 月時点

【Python】ファイルの文字コードを自動判定して変換する

CSVファイルを開いたら変な風に表示されるんだけど」


 という問い合わせを情シスの方は受けたことあります(断言)
Windows環境のExcel文字コードShift_JIS)で別のアプリケーションなどから出力されたCSVファイル(文字コードUTF-8)を開いたために文字化けすることは"あるある"ではないでしょうか。


対処方法はいろいろあると思いますが、Pythonを学び始めたのでPythonで一気にファイルの文字コードを変更したいと思い調べたら、非常にわかりやすいコードがあったので備忘録として残しておこうと思います。


やりたいこと

  • Shift_JISのファイルからUTF-8のファイルに変換したい
  • 自動的にオリジナルファイルの文字コードを識別したい


バージョン


コード

import os
from chardet import detect

srcfile = './sample_sjis.csv'
trgfile = './sample_utf8.csv'

to_codec = 'utf-8'

# get file encoding typ
def get_encoding_type(file):
    with open(file, 'rb') as f:
        rawdata = f.read()
    return detect(rawdata)['encoding']


from_codec = get_encoding_type(srcfile)


# add try: except block for reliability
try:
    with open(srcfile, 'r', encoding=from_codec) as f, open(trgfile, 'w', encoding=to_codec) as e:
        text = f.read()  # for small files, for big use chunks
        e.write(text)

    os.remove(srcfile)  # remove old encoding file
    os.rename(trgfile, srcfile)  # rename new encoding
except UnicodeDecodeError:
    print('Decode Error')
except UnicodeEncodeError:
    print('Encode Error')

引用元:How to convert a file to utf-8 in Python?


備考

冒頭の部分は自分が付け足しています。

# srcfile:対象のファイルパス trgfile:変換&生成されるファイルパス
srcfile = './sample_sjis.csv'
trgfile = './sample_utf8.csv'

# 変換後の文字コードを指定(今回の場合は、「utf-8」)
to_codec = 'utf-8'


少し大きめのファイルであれば22行目のreadでチャンクを指定してあげてもいいと思います。どのくらいが適切なのかはまだ素人の自分にはわかりませんが...

text = f.read()


こちらでは、古いファイルは削除されて、変換された新しいファイルを古いファイル名に変更していますね。もし両方を残しておきたい場合はコメントアウトしておくのがいいかと。

os.remove(srcfile)  # remove old encoding file
os.rename(trgfile, srcfile)  # rename new encoding


引用元には他の方のコードもあるので、そちらも一見の価値があります!!



ではでは、よいPythonライフを!