見出し画像

ローコード開発でここまでできた!Salesforce入力モレが減る"最強の画面"

気がつけばSalesforce歴8年の上村です。Salesforceって営業にデータを入力してもらえないと単なる金食い虫。多くのアドミンさんが苦戦するあるある課題の1つは「いかにして現場にデータを入力してもらうか」のようです。

現場にデータを入力してもらうことで営業活動をシステム上に写像する『デジタルツイン』の話別のnoteに詳しく書きましたが、データ入力を促進する現実的な処方箋は『データ入力インターフェイスの工夫』だと思っています。

入力インターフェイスとなると、画面開発が必要では、、?となりますが、コードを書かないローコード開発でも相当な工夫ができます。僕はプログラミングはほとんどできませんが、このローコード開発を使って便利な画面や自動化処理を作るのが大好きです。うちの会社では30以上の便利なフローが日々動いています。

今回は、現場にデータを入力してもらえずに悲しい思いをしている『宝の持ち腐れSalesforce』が息を吹き返す一助になればと思い、実際にうちの会社で秋に導入したばかりの「商談更新画面」の事例を紹介したいと思います。

その前に、ローコード開発機能ってどれのこと?

Salesforceの開発機能をざっくり分類するとこんな感じかと思います。コードを一切書かなくてもマウスでポチポチ設定するだけで使えるのがノーコード。エクセル数式やフローチャートレベルのコードやロジックを設定すれば使えるのがローコード。本格的にコードを書くのはプロコード、という感じです。

画像1

ちなみに、ガートナーによると2024年までにノーコードやローコード開発が世の中のシステム開発の65%以上を占めると予想されているとか。企業内業務システムとかは特に素早い開発やカスタマイズが求められるので適しているのでしょうね。何より習得がラクですし。

ローコード開発でつくる、日々の商談更新・活動入力をモレなく行ってもらう「最強の一括入力画面」

標準通りにSalesCloudを使っているならば、営業は取引先とのやり取りを進めるたびに「商談」の各種項目を更新し、「活動」を入力しなければなりません。

商談項目に多くを盛り込みすぎて「巻物」のようになっている商談画面をよく見かけます。実際、うちも項目はかなり多いです。そして項目が増えることで、入力する側としては「どこまで入力すればいいの?」と迷ってしまったり、めんどくさがって入力が停滞します。

そこで、うちではこんな「専用の一括入力画面」を作ることにしました。

画像2

この「専用の一括入力画面」には以下のような入力項目が1ページにまとめて表示されます。

▼活動を新規登録するための項目
・件名
・日付
・コメント
・同行者
などなど
▼商談を更新するための項目
・フェーズ
・優先度
・完了予定日
・次のステップ
・関連する取引先責任者

・顧客のビジネス課題
・顧客の利用用途
・予算
・競合有無
・決裁者・決裁プロセス

・提案書等のファイル添付
などなど

上記のような入力項目が、この専用画面には合計で38コあります。これらを全部表示してしまうと普通の画面と同じく巻物化しちゃうので、表示項目を動的に制御しています。実際に表示されるのは10〜15コ程度です。どのように表示項目を減らしているのかというと、

▼今は入力しなくていい項目
・フェーズが1の商談で、フェーズ2以降に入力すべき項目
・失注時にのみ、入力すべき項目
→これらは、「該当するフェーズになるまでは非表示」になります
▼1度入力すればそのあとはあまり更新しない項目
・決裁者
・コンペになってる競合
・想定予算
→これらは「既に入力されている場合は非表示」になります
▼特定のケースでのみ入力が必要になる項目
・複数人で訪問した時にのみ入力する同行者項目
・新たな担当者と接触した時にのみ入力する関連取引先責任者項目(下図)
→これらは、「画面内のチェックボックスをつけた時のみ表示」されます

note用素材 (1)

こんな形で「いまこの商談で必要な入力項目」だけを、商談も活動もまとめて1ページに表示することで、入力がラクになるようにしています。

実際に使われたの?定着したの?

これ、過去に対応してきたケースとはちょっと勝手が違いました。以前インサイド用の画面開発をしたときは、インサイドは自分の部下なので、彼らには「上司権限」で強制力を持って指示することができましたし、人数も数名なので個別にフォローすることもできました。

今回は営業メンバー。自分とは異なる部署なので強制力が効きません。該当社員も数十人いるので個別フォローもなかなか難しい。30分しか時間がない営業向けの説明会で、この部分に与えられた時間は5分だけ。さてどうしよう。

とはいえ、くどくど説明しなくても1回試してもらえれば「こっちの方がラクだ!」と感じてもらえる自信はありました。なので、いかにして今までの慣れたやり方、慣れた画面を捨てて1回試してもらうか。

結果、取ったアプローチはシンプル。「1週間以内に、サンプル商談を登録して、試しにこのボタンから活動入力、商談更新をしてみてください」と促しました。

note用素材 (3)


新しい専用画面は受け入れられるかなぁと一抹の心配はありましたが、蓋を開けてみれば下図のような感じに。説明会から10日ほどで全営業活動の98%の入力は「専用画面から」の入力に切り替わりました。その後1ヶ月経っても、2ヶ月経っても元の運用に戻ることはなく使い続けてくれています。

note用素材 (2)

入力インターフェイスが良ければ使い続けてくれる。改めて、使う側にとって便利なUIを作ることが、定着化の最大の処方箋だと思っています。


専用画面の裏側、ローコード開発の実態(フロー開発をしたことがある人向け)

画像6

※複数のオブジェクトを一括更新させるフロー画面の基本的な作り方はインサイドセールス用の専用入力画面を紹介したこちらのnoteに詳しく書いてあるので、フロー画面を作ったことがない方はそちらへ。

ここではフロー画面を開発したことがある方向けに、インサイド用画面では搭載していなかった2つの工夫の裏側を。

1.フロー画面内で、選択リスト項目の初期値を動的セット

このフローでは項目によって「初期値をセットしておく項目」と「空欄で表示される項目」を分けています。例えば、常に新規情報が入る「活動の件名」「活動コメント」などは空欄です。「活動日」などはtoday()を初期値にセットします。「完了予定日」「次回アクション日」などは「現在商談に入力されている値」を初期値にセットします。多くの項目はこの「現在商談に入力されている値」を設定するパターンになります。(下図のイメージ)

画像8

ただ、テキスト項目や日付項目は普通に初期値を設定できるのですが「選択リスト」の場合は動的に初期値をセットすることができません。結果、「フェーズ」項目などがうまく表示できません。ここでひと工夫が必要になります。

今回は、QuickChoiceというフロー画面コンポーネントを使っています。これを使うと、初期値を動的にセットすることができ、指定した項目の、指定したレコードタイプで制御された選択肢セットをそのまま使うことができます。

画像9

今回、「UNOFFICIAL SF」というリソース群をはじめて知りましたが、かゆいところに手が届くような便利なコンポーネントが無償配布されています。「関連リスト」の表示レコードを絞り込んだり、表示項目をカスタマイズできるDATATABLEV2とか。これを使うと取引先レコードに「商談中の商談」だけを表示する関連リストを表示させたりできる。カスタマイズの幅が広がります。

https://unofficialsf.com/


2.フロー画面要素の表示項目を動的制御

フローコンポーネントの「コンポーネント単位の表示設定」で条件式を書いて制御しています。例えば、

▼フェーズ3で入力すべき「先方の運用体制」項目の場合
・フェーズが1,2のときは非表示
・フェーズが3のときは常に表示
・フェーズ4以上のときは、この項目が未入力のときのみ表示
・画面内にある「全ての商談項目を表示する」にチェックが入ってたら表示

画像7

こういった条件設定を38コの項目全てに設定してあるので「いまこの商談で必要な入力項目」だけが表示されるようになっています。

ただこれも、続くフロー要素でひと工夫が必要です。「商談レコードの更新」時には、画面コンポーネント情報を使って商談を更新するのですが、そのまま画面コンポーネントの値を代入するとうまくいきません。

例えば「決裁者」項目が既に入力済みでフェーズが進行している場合、専用入力画面上は非表示になります。このとき、「決裁者」項目の画面コンポーネントの値はnullになるので、このまま「レコードの更新」要素が動くと「決裁者」項目が空欄に戻ってしまいます。

これを防ぐために数式リソースを作っておき、画面上で非表示なら「元の値のまま」、表示されてたら「画面の入力値で上書き」と分岐するようにしておきます。

if (
  isblank ({!input_ph5_InternalProcess}), /* もし入力画面で非表示だったら */
  {!getOppty.ph5_InternalProcess__c}, /* 元の値のままにする */
  {!input_ph5_InternalProcess} /* 画面に入力された値で上書きする */
)

1つ1つは数式レベルのコード、フローチャートレベルのロジックですが、色々なケースによって細かく分岐するように組んであります。



現場部門の人にこそ、ローコード開発でスキルアップ

ローコード開発の価値は、圧倒的なスピード感と敷居の低さだと思っています。最近はDXをバズワードに、業務のデジタル化・IT活用が重要視されていますが、これをスピーディに実現するためには業務アプリケーションを内製カスタマイズできる体制があるととても便利です。

内製開発体制がない場合、どうなってしまうのか。自分たちが使う業務アプリケーションを「ちょっとカスタムしたい」と思ったとき、その必要性を都度都度情シスに説明して、更に外注ベンダーにも説明して、見積もりを取って、稟議書を出して承認を受けて開発するというプロセスが必要にならざるをえなくなります。そうなると、「ちょっとしたカスタム」を試みるくらいなら「不便でも諦める、我慢する」を選択してしまうかもしれません。

ローコードなら、きちんとしたコードは書けないけれど数式やフローチャートくらいなら書けるという知識量で、それなりに便利に動く業務システムを開発することができます。この敷居の低さは大きな機会だと思います。

僕自身はマーケティング部門の責任者をしていますが、営業やマーケティング部門が使うPardotやSalesforceを直接自分でカスタマイズできるからこそ、現場のニーズに合ったものを作れますし、スピーディなカスタマイズができています。エンジニアではなく現場部門の人にこそ「ローコード開発」スキルは相性がいいと思っています。

IT活用・データ活用の重要性がどんどん増し続ける昨今。1人でも多くの現場部門の人が、「ローコード開発」という新しい機会を活用して、業務に貢献できる幅を広げられたらいいなと思っています。