B2Bマーケのデータマネジメントvol.2-データを入れてくれる仕組み-
こんにちは、カミムラです。今回は、『入力の仕方』をどう工夫すれば、インサイドセールスが漏れなく正しくストレスなくデータを入れてくれるのか?というテーマです。
登壇では一般ウケしなそうなので話せない、細部のデータマネジメントをこちらにて。細かくて具体的な話です。前回の『データをどう持たせてどうレポートするか?』の続き。今回は特に技術よりの話です。
だって現場担当者にとってデータ入力はメイン業務じゃないから
インサイドセールスも営業も、お客さん対応をして、売上を作ってなんぼの職種。データ入力はメイン業務ではありません。むしろできるだけ簡略化したい、避けたい業務の1つではないかと。
前回書いたようなシステムを作った場合、インサイドセールスが1回アプローチするたびにこれだけの入力作業をしなければなりません。よほど理解のある方ではないとまずやってくれません。
▽1回のアプローチごとに必要な入力作業
・キャンペーンメンバーにアプローチ結果を入力する
・リード/取引先責任者に活動履歴をつける
・(アポイントが取れたなら)商談をつくり、取引先責任者を紐付ける
・Chatterで報告・共有する
これを業務体験の流れに沿って並べるとこんな感じ。編集画面を開いて、入力して保存して、次の編集画面を開いて、、、の繰り返し。目眩がしそう。
じゃあどうするのか?
入力の負荷を極限まで下げます。
そこでフローというRPA機能の出番。うちの定着化の要です。
RPAでインサイドセールスの業務体験はどうなる?
さっきと同様の業務が、フローを使うとこうなります。めんどくさい繰り返しの部分を全部ロボットが自動でやってくれる。とってもラク。しかも間違えない。サボらない。もんく言わない。
実際にアプローチ結果を入力する画面はこんな感じ。
この画面で「次へ」を押すとロボット起動。自動的にキャンペーンメンバーを更新し、活動履歴をつくり、商談をつくり、取引先責任者の役割を紐付けて、Chatterに投稿までしてくれます。
インサイドセールスは入力を終えて、すぐに次のアプローチに移れる。
1回1回はわずかな時間短縮でも、複数人が毎日積み重なるとすごい時間短縮になります。しかもデータもきれいに正しく入る。いいことづくめ。
働き者なロボットの作り方
ロボットの裏側はこんな感じ。ノンプログラミング。マウス操作だけで作ります。
パートに分けて細かく見てみますと、
手順1.フロー画面を開く入り口をつくる
まずフロー画面を開くためのカスタム数式項目を作ります。
キャンペーンメンバーレコードのIDは後で使うので、適当な変数名(ここでは "CamM" )でIDを受け渡すようパラメータを記述しておきます。
HYPERLINK("/flow/MK_191001?CamM="& Id &"&retURL="& Id , "ACT")
このカスタム数式項目を、レイアウトに配置するとフロー画面に飛べるリンクができます。これをレポートに配置したりすると更に便利。
作成物
・起動用のカスタム数式項目
手順2.関係するレコードの値を探してくる
『レコードを取得』エレメントを配置して、後で使うレコードデータを変数に記録しておきます。今回は必要なのはキャンペーンメンバーとその親キャンペーン。必要な項目を指定して保存させます。
キャンペーンメンバーを取得する絞り込み条件に、さっきの"CamM”変数を使います。新規リソースとして変数を作っておき、この画面で指定します。
同様に親キャンペーンレコードも取ってきます。このとき指定するIDは、キャンペーンメンバーのレコードからついでに取っておきます。"Cam"というレコード変数に格納したので"{!Cam.CampaignId}"となります。
作成物
・ID格納用の変数リソース
・レコード格納用のレコード変数×2
・『レコードを取得』:キャンペーンメンバー
・『レコードを取得』:キャンペーン
手順3.アプローチ結果を入力する画面をつくる
『画面』エレメントを配置して、アプローチ結果を入力する画面を作ります。
この後でロボットが、キャンペーンメンバーの更新や、活動入力、商談生成に必要な情報をここで入力してもらいます。
入力してもらわなくてもわかる項目は思い切って省略。例えば、アプローチ日付とかアプローチしたユーザ名とか。それぞれ、この画面を入力完了した時間、この画面を操作しているユーザ名で代替できるのでわざわざ聞かない。
個人的には選択肢で入力してもらうときには、プルダウン形式よりもラジオボタン形式が好き。選択肢が一覧できて1クリックで入力できるので。こっちの方が入力負荷が低い。
作成物
・『画面』:必要な項目×複数
・(必要に応じて)選択肢、選択リスト選択肢セット×複数
手順4.活動履歴作成とキャンペーンメンバー更新
インサイドセールスのアプローチ活動1回につき必ず必要になる更新部分を作ります。活動履歴の作成とキャンペーンメンバーの更新。
新規作成なら『レコードを作成』、更新なら『レコードを更新』エレメントを使います。
レコードの更新や作成エレメントでは、どのオブジェクトの、どの項目を、どの値で入力するかを指定します。
手順3の画面で入力してもらった値や、キャンペーンとかから取得した値、決められた定数などを代入していきます。
▽代入する値の探し方
・画面で入力してもらった値:『画面コンポーネント』から選ぶ
・キャンペーンとかから取得した値:『レコード変数』から深堀りして選ぶ
・決められた定数:値を直接手打ちする
・ユーザ名や今の日付:『グローバル変数』から選ぶ
このとき、必須入力の項目が漏れてたりすると後でエラーになります。活動履歴だと「優先度(Priority)」「状況(Status)」「任命先(OwnerId)」とか。
作成物
・『レコードを作成』:活動履歴(Todo)
・『レコードを更新』:キャンペーンメンバー
手順5.アポが取れたときだけ商談をつくる
条件分岐するパートです。『決定』エレメントを使います。
今回であれば、画面で入力したアプローチ結果が「アポ獲得」だったときと、そうでないときで分岐させます。
※キャプチャ画面では、ナーチャリングだったときも分岐するように作ってますが今回の説明では割愛。
▽分岐と処理
アポ獲得 なら → 商談をつくる
その後、
取引先責任者 なら → 取引席責任者の役割もつくる
リード なら → (フローを終了する)
それ以外 なら → (フローを終了する)
更に細かい話ですが、商談を作るときは普通は取引先を紐付けます。このとき、キャンペーンメンバーが取引先責任者であれば取引先IDがすぐ取得できるのですが、リードだとどの取引先に紐付けていいかIDが取得できません。
そういう、代入する値が条件によって変わるときは『数式リソース』を使います。例えば上記のケースならこんな感じ。(※これはカスタム項目を参照しているのでコピペしても動作しないです)
if (
isblank ({!Cam.mp_Ralational_AccountID__c} ),
"0015F00001PWcyo" ,
{!Cam.mp_Ralational_AccountID__c}
)
//リードなら特定の取引先に紐付け、取引先責任者なら所属する取引先IDに紐付ける
フローを終了するときは、その先のエレメントを作らずに終端にすれば自動的に終了になります。
作成物
・『決定』アポが取れたかどうか?
・『決定』取引先責任者かリードか?
・『レコードの作成』:商談
・『レコードの作成』:取引先責任者の役割
手順6.アポが取れたときだけChatterで共有する
ここはプロセスビルダーで作っています。キャンペーンメンバーの『アプローチ結果』項目が『アポ獲得』になったら、『Chatterに投稿』のアクション発動。
特定のグループに投稿するようにすると、グループに登録しているみんなに通知できます。僕は「すべての投稿を通知」設定にしているので、メンバーがアポイントを獲得するとメールボックスとApple Watchにリアルタイムに通知が飛んできます。
嬉しいことは即座に称賛を伝えたいので、特に良いターゲット企業にアポが取れた時なんかはすぐにChatter返信します。この通知情報を元に、本部長もインサイドのメンバーに声掛けしたりしてます。
作成物
・プロセスビルダー
・通知用のChatterグループ
手順7.テストをして有効化
作ったフローやプロセスビルダーは、Sandboxとかでテストして問題なさそうなら有効化してリリースします。
フローでエラーが出ても、どこでエラーになったかのログがメールで通知されるのですぐ原因が特定できます。なので職場の理解度によってはスモールスタートで、実際に使いながらバグ取りという選択肢もありかも。
最後に:冷たい入力規則 vs 優しいフロー
現場担当者の入力負荷を下げるフロー機能を、実例と共に紹介してきました。
他に、データを正しく入力させるための機能としては『入力規則』とかもあります。ルールに沿った入力じゃなかったらその場でエラーを出して保存させないやつ。
それはそれでデータは正しくなりますが、入力側がラクになるかというとそうでもない。間違いをその場で指摘して差し戻してくれるだけ。なんか役所的で冷たい。
その点、フローは優しいのです。専用の入力画面で必要最小限の入力さえしてくれれば、その先はロボットが自動で入力を代行してくれる。
よく働いてくれる入力代行ロボ。こういうのが作れるようになるとSalesforce開発はすごくクリエイティブで楽しくて、現場に直接的に役立つものになる気がしています!