TECHSCORE BLOG

クラウドCRMを提供するシナジーマーケティングのエンジニアブログです。

Salesforceを「ノーコード」で使いたおそう

「Salesforce」をご存知でしょうか?世界で最も有名なクラウド上で動作する統合CRMプラットフォームです。皆さんの企業でもSalesforceを導入しているという方は多いのではないでしょうか。

Salesforceは拡張性が非常に高く、プログラム開発を行えば何でもできてしまいます。ただ、一度プログラム開発をしてしまうと保守にコストを割かれたり、柔軟な変更ができなくなり、結果使いにくいシステムになるなんてことは、よく聞くお話です。

そんなSalesforceですが、実は「ノーコード」で、簡単に自分たちのやりたいことを実現できる機能がたくさん存在しています。特にその中でも「フロー」は、ノーコードでプロセスを自動化することに優れており、これさえあればプログラム開発は、もはや必要なしです!
弊社の実例をもとに、フローについてご紹介したいと思います。

矢熊 吉成(ヤグマ ヨシマサ)
Salesforceの業務に携わって約9年。営業/案件/コンサルティング/プロダクト企画/開発/保守/サポート/マーケティング/カスタマーサクセスの全てを見ている、いわゆるなんでも屋。Salesforce完結型のマーケティングツール「Synergy!LEAD」を担当しています。

自社のリードを自動的にマージするフローをつくってみた

弊社でもSalesforceを導入し、お問い合わせや資料請求フォームなどからお客様の情報がリードに日々100件前後蓄積されていきます。蓄積された情報の中には過去にやり取りをしている方も含まれているため、リードがどんどん重複していきます。
このような重複を放置していては、お客様がどのようなことに興味があるのか、過去どのようなご相談をされているのかを一元管理できず、マーケティングを行う上で支障が出てしまうため整理が必要です。
情報を整理(マージ)する作業について、Salesforceも機能を提供してはいるものの手作業で行う必要があるため人的コストがかかります。実際、弊社のマーケティングを担当する部門では、週単位でデータ整理をする当番を決めて、週に120分程度かけてマージを行っていました。このコストを「少しでも削減できないか」というのが取り組むきっかけでした。

要件の概要

自動的にマージする上でやりたいことは大きく以下の点です。

  • フォームから登録された際に特定の情報のみに対象を絞り込んでマージしたい
  • マージする際に、各項目の変更方法について判断し処理を行いたい
  • マージする対象のWeb行動履歴(これはキャンペーンに紐付いている)をマージ先に引き継ぎたい

これらの内容を実装するためにプログラム開発ではなくフローを利用して構築を行いました。フローを選定した理由は、今後私のようなSalesforceを詳しく知った人でなくとも、やり方さえわかればメンテナンスができる「保守性」を重視したからです。

なお、以下の解説ではSalesforceに関する用語や処理の詳細については割愛し、あくまで「フロー」でどんなことができるのかに着目しご説明します。

フローの全体像

1. フォームから登録された際に特定の情報のみに対象を絞り込んでマージしたい

以下のフローは、フォームからデータが登録された(リードが作成された)タイミングで動くようにしています。
データベースにある「トリガー」機能に似ており、データが作成・更新されたタイミングで自動的に処理をさせることが可能です。
既に登録されているデータの中から「メール」と「姓」が完全に一致する作成日の一番古いリードを抽出して、新たに登録されたデータのマージ先として記録をしています。

マージ先を抽出するためのフロー

2. マージする際に、各項目の変更方法について判断し処理を行いたい

以下のフローは、各項目でどの情報を優先するかを判定し、マージ先の情報を残すのか、新たに登録された情報で上書きするのかを細かく制御しています。フローでは、ほぼプログラムを書くのと同じようなことを、少しのキーボード操作とマウス操作で簡単に設定できます。Excelで数式を作成できるような方であれば、簡単に設定できてしまうほどの操作性です。
また「作成から30分後」とフローにあるように、データが作成・更新されてから一定時間経過後に実行させたり、日付/時間型のデータで指定した日時に実行させるようなことも可能です。

マージ先を抽出したあと、各項目の処理をするフロー

3. マージする対象のWeb行動履歴(キャンペーン)をマージ先に引き継ぎたい

Web行動履歴は、弊社が提供する「Synergy!LEAD」というSalesforceと連携するマーケティングツールを利用して取得しています。
Web行動履歴をマージする場合は、リードが登録されるまでに複数のWebページを訪れている可能性もあり、単純なデータの更新というわけには行きません。
以下のフローのように、複数あるデータをループさせてチェックして処理するようなこともできるようになっています。ほぼプログラムを作っているようなものですね。

複数のデータをループさせて処理を行うフロー

フローでできることとは?

以上の通り、プログラム開発で行うようなことをフローでは、ほぼマウス操作だけで実装できてしまいます。それに、日本語や文章で内容を簡単に補足することができるため、誰でもわかりやすく構築することが可能です。ここを見ている皆さんであれば、簡単に設定できてしまうと思います。
最近では私が担当するSalesforce構築案件も、プログラム開発ではなくフローを利用して構築することがほとんどです。それだけ自由度が高く使いやすいということです。

では、具体的にフローはどのような種類があるのかを説明します。

自動起動フロー

データの作成や更新、時刻に関わらず任意のタイミングで実行できるものが自動起動フローです。一番基本的なフローになります。
Salesforceのボタンに紐付けることができたり、Apex(Salesforceの開発プログラム)、REST APIなどから呼び出すことも可能です。私がよく使うのは各フローのサブフロー(共通して繰り返し使えるような処理を別途定義)を作成する際に利用します。

レコードトリガーフロー

Salesforceにデータが「作成された」「更新された」または「削除された」タイミングで実行できるフローです。
さらに、Salesforceではデータがデータベースに「保存される前」と「保存された後」のどちらに実行するかを選択できるため、より柔軟に処理を実行することができることも特徴の一つです。

「保存される前」には、登録されたデータに対して変更を加えるための処理を行うことができます。

「保存される前」の実装例
・登録された金額と数量から合計金額を自動計算する
・重複しているデータがあるかを検索して、重複先の情報を記録する(今回のマージ処理で実装した内容)
…etc

「保存された後」には、登録されたデータが関連する、または、全く関係しないデータに対して処理を行えたり、メールを通知するなど様々な処理を行うことができます。

「保存された後」の実装例
・登録されたデータを削除する
・登録された情報を、関係者にメールにて通知する
・マージ先データの各項目に変更を加えて更新する(今回のマージ処理で実装した内容)
…etc

スケジュールトリガーフロー

定期的に動く処理を実装したい場合に利用するフローです。1回のみ、毎日、毎週、から指定することができます。
利用用途としては、日々のバッチ処理として利用するケースが多いと思われます。これをプログラム開発するとなると、バッチ用のクラスを用意して、本体の実装とテストコードを作成したりと手間が多いですが、フローでは直感的に実装できますし、テスト機能もついていますので簡単に確認や修正を行うことができます。

画面フロー

フローを対話的に進めたい場合や、フォームを用意しSalesforceへの入力を補助する場合に利用するフローです。
自由なレイアウトでは作れないものの、Salesforceの情報を検索できる「ルックアップ」項目や「スライダー」項目、「ファイルのアップロード」項目など、かなり自由に設定することができます。例えば、Experience Cloudを利用しているような場合、簡単な入力フォームであれば、画面フローを使って構築することができます。

画面フローでフォームを作成するときの設定画面

フローの制限

フローは非常に強力な機能ですが、Salesforceの制限に注意をしておかなければなりません。
フローに関する制限事項は、Salesforceのヘルプページにしっかり記載されていますので、実装の際にはよくご確認ください。
特に「一般的なフローの制限」や「トランザクション単位のフローの制限」は非常に重要なポイントです。

自社のリードを自動的にマージするフローをつくってみた効果は?

2021年末頃に作成したフローですが、リリース当時はいくつか問題はあったものの、フローで実装したおかげで修正をスムーズに行うことができました。フローでは、問題が発生した場合に視覚的に「どこで」「なぜ」エラーが起きたのかを示してくれる機能が備わっていますので原因の特定が容易で、修正ポイントがすぐに分かります。

リードを自動的にマージしても、手動マージの件数を「0」にすることはできませんでしたが、週に60件程度の手動マージ件数が10件程度に削減され、手動マージ作業にかかる時間は120分程度だったものが、現在は20分程度と6分の1にまで削減することができたようです。

ちょっとした作業は、少しずつの積み重ねが非常に大きくなってしまいがちです。フローでは少しのことは簡単に自動的に処理ができるようになりますので、そういったところから改善を進めていくのはいかがでしょうか?

まとめ

世はまさに 「ノーコード」時代

「ノーコード」という言葉は、昨今テレビCMでも聞くようになってきました。

ただし、今後ノーコードな開発が主流となったとしても、エンジニアのように専門的なスキルをもった方々が必要になることは変わらないと考えています。
では、ノーコードが何をもたらすかというと、非エンジニアであっても手の届く範囲からシステムを構築することができ、簡単にシステムを改善することができる環境が整ったというところにメリットがあると思います。

これまでの多くの開発は、すべての要件を網羅するシステムを構築すべく、最初から大規模な開発を行っていたと思います。その結果、柔軟性が低く利便性の良くないシステムが出来上がり、課題の多いシステムをなんとか運用しているという事例をたくさん見てきています。
ノーコードな開発が広がることで、非エンジニアの方でもシステムを簡単かつ直感的に理解することができるようになり、少しずつでもシステムをより良くすることができるようになるでしょう。最初は小さくはじめて、徐々に自分たちが利用したいシステムにすることこそが、ノーコードの本質だと考えています。

Salesforceは、なんでもできてしまうクラウドシステムです。だからこそ、Salesforceの特徴に合わせて自分たちの業務を改良し、Salesforceの標準機能やフローを駆使して、少しずつ便利に運用していきましょう!