Low-Code/No-Code Advent Calendar 2018 23日目、本日はかしゆかの誕生日です、ほんとにおめでとうございます! めっちゃアウェイのところへやってきましたが、かしゆかの誕生日を祝う気持ちはどこでも一緒です、どうぞよろしくお願いいたします。
さて、Salesforce はご存知でしょうか。Sales CloudやService Cloudなど、CRMやコールセンターなどの SaaSとして提供されているアプリケーションサービスです。Salesforceには、Lightning Platform(旧名 Force.com)というaPaaS
(Application Platform as a Services)を包含していて、標準的な機能のカスタマイズや拡張はもちろん、一から新しいアプリケーションを開発することもできます。また、その開発されたアプリケーションはAppExchange(旧名:AppStore - Appleさんに名前上げたあれ)で公開し、販売することができます。
ビジネス向けaPaaSの仕組みを持つLightning Platformですので、各処理にドリブンして様々な機能をキックすることができます。今回はその中からプロセスビルダーを使って、取引先の担当者の誕生日がかしゆかと同じかどうかを確認して、同じだったらそれを通知する仕組みを「ノーコード」で実現してみます。
ここで実現できることは、Salesforce開発環境で利用できます。サインアップすれば、誰でも無償でお使いいただけますので、試してみてください。
プロセスの自動化
ビジネスアプリケーションでありがちなのは、何かの値を変更したら、それを受け取って、別のデータを更新したり、通知したり、別の機能を呼び出したりして、ビジネスプロセスを自動化していくことでしょう。
Salesforceでは、プロセスを自動化する機能として、「プロセスビルダー」と「ワークフロー」があります。人手を介するような「承認」が必要なプロセスには、「承認プロセス」もあります。使い方によって、これらを選別して利用します。
プロセスビルダーとワークフロー、どちらを使えばいいの?というときもありますが、プロセスビルダーでは次のようなときに利用します。
- 任意のオブジェクト種別のレコードを作成する。
- レコードとその親のみでなく、あらゆる関連レコードを更新する。
- クイックアクションを使用して、レコードの作成、レコードの更新、または活動の記録を行う。
- プロセスを別のプロセスから呼び出す。
- フローを起動する。このアクションはワークフローでスケジュールできません。
- メールを送信する。
- Chatter への投稿
- 承認を受けるレコードを送信する。
ワークフローでは、項目自動更新、外部システムへのアウトバウンドメッセージを行う場合に利用します。
プロセスビルダーを使ってみよう
Salesforceの設定画面から、プロセスビルダーを呼び出してみます。「クイック検索」のボックスに「プロセス」とか「ビルダー」「プロセスビルダー」打ち込むとアクセスがカンタンです。「プロセスの自動化」という中に「プロセスビルダー」があります。これをクリックします。
すでに作成されているものがあれば、このようにプロセスの一覧が表示されます。結構謎な感じですが、「Trailhead」とか Salesforce社のハンズオンをやってると、似たような感じにきっとなります。「高額交際費API」とかめっちゃ気になりますね。
そのあたりのことは一旦忘れて、右上の「新規」ボタンをクリックして、プロセスを実際に作っていくこととしましょう。
プロセスを作成する
プロセスの名前などを決めます。「プロセス名」や「説明」は好きにわかりやすいように付けます。API参照名は、Salesforce独自のApex
言語や他の機能から呼び出すときの参照値となりますので、これもわかりやすくしておきましょう。残念ながら、この名前の付け方は意味不明です。
プロセスを開始するタイミングは、このプロセスを始動するきっかけはなんですか、を指定します。今は、「レコード(保管されているデータのこと)の変更」とプラットフォームイベントで呼び出される場合、それから他のプロセスビルダーで作ったプロセスから呼び出される場合になります。
IT関係者だと見覚えのよくある、フローチャート的な何かがでてきます。直感でひらめいたとおりの動き方をします。まずは、きっかけとなるオブジェクト(データベースでいうテーブル、データを保管する箱の最小単位)を指定します。
Salesforceでは、顧客担当者情報を入れるオブジェクトを「取引先責任者」という名前にしています。オブジェクトからそれを選択し、「レコードを作成または編集したとき」にしておきます。すべてのデータを最初からすべて入れるわけではなく、あとで更新する可能性がありますので、今回はこちらのほうが使い勝手が良いでしょう。
保存すると、また元のフローチャートの画面に戻ってきますから、分岐部分の「+ 条件を追加」を押してみます。
条件名は好きにして良いですが、まぁこんな感じですかね。取引先責任者には「誕生日」という項目がありますので、その項目が「1988/12/23」だったらということにします。
なお、この項目名、真面目に入れる場合にはAPI参照値
を入れないといけないのですが、クリックして選択できます。なので、この項目の中から検索したり、階層を選んだりして「誕生日」を選択すればよいだけです。便利(当然か)。
最後に「ルール適用時のアクション」を入れます。先程の分岐条件にマッチしたときに、何をするのかを定義する部分ですね。まずは、どのようなアクションを行うのかを選択します。次の9つから選択できます。今回はChatterに投稿してほしいので、「Chatter に投稿」を選択しました。
個々のアクションで入力すべきものは変わりますが、Chatterに投稿する場合には、「どこへ投稿するのか」と「メッセージ」を決めます。アクション名は分かりやすく、好きなものをどうぞ。ここで、「メッセージ」のところに「先込み項目」というものがあります。該当のレコードと関連する項目を指定すると、その内容で変更をしてくれるようになります。今回は、顧客担当者の名前を入れておきたいので、「姓」を選択しました。その結果が「{![Contact].LastName}になっています。Contact
(取引先責任者)内のLastName
(姓)を意味してるの、雰囲気でもわかりますね。あとは、メッセージを入れてきます。気持ち的には素晴らしいというか、羨ましいです。
ここまでの内容すべて「保存」したあとに、右上の「有効化」ボタンをクリックします。すると、このプロセスが実行状態になります。
で、実際に取引先責任者を作って、「誕生日」を「1988/12/23」にして保存すると...。
該当の取引先責任者のChatterへ、このように投稿がなされる...ということになります。やった、かんたんにできましたね?
まとめ
このように、Salesforceでは、プロセスを自動化するためにプロセスビルダーなどの機能を標準で持っています。これらは、ノーコードで開発を行うことができますので、開発者でなくとも、かんたんにビジネスアプリケーションを開発することができる仕組みとなっています。これは、お便利ですね。