Salesforceのフローオーケストレーションを作成してみよう

Salesforceのフローオーケストレーションについてご紹介します。

フローオーケストレーションとは?

皆さんはSalesforceのフローオーケストレーションという機能をご存じでしょうか。複数のフローを組み合わせることで、1つのフローオーケストレーションというトランザクションの中で複雑なビジネスプロセスを管理することが可能です。フローオーケストレーションは有料の機能で、1回のトランザクションごとにお金がかかる従量課金制のような形式となっています。

フローとの違い

フローとの違いですが、フローはレコードを中心とした処理を実行するのに対し、フローオーケストレーションではユーザーを中心に設計されている点です。画面フローを例に挙げると、画面フロー単体では、レコードページに配置してユーザーに入力させるものですが、フローオーケストレーションでは、画面フローをどのユーザーに割り当てるかを動的に決定することが可能であり、ユーザーに焦点が当たっています。
また、もう一点の違いとして、フローオーケストレーションではフローオーケストレーションユーザーと呼ばれる無料ライセンスのユーザーも、一部制限はありますが機能を利用できることです。

フローオーケストレーションユーザーとは

上述のフローオーケストレーションユーザーというライセンスについてですが、これは無料ライセンスで、フローオーケストレーションを利用することを主目的としたユーザーに割り当てるためのライセンスです。基本的にSalesforce内のレコードを参照することなどはできませんが、フローオーケストレーション内で画面フローが割り当てられた際に、一部レコードの情報を参照して承認を行うなどの作業を行うことが可能です。レコードを参照できる範囲についての詳細な情報は、Salesforceに問い合わせて確認する必要があります。

フローオーケストレーションの仕組み

続いて、フローオーケストレーションの仕組みについて説明します。

フローオーケストレーションで配置する要素はフェーズと決定の2種類だけです。決定の要素は、フローと同じく条件ごとに処理を分岐させるためのものです。

フェーズは複数の処理をまとめたもので、ここで画面フローや、自動起動フローなどを選択することで、実際に行う処理を設定します。以上の二つのコンポーネントを組み合わせることで、複雑な業務の流れを1つのトランザクションで管理します。

実際に作成してみる

実際にフローオーケストレーションを作成して動かしてみます。ここでは、Trailheadの「フローオーケストレーションを使用して複雑なプロセスをオーケストレーションする」という記事を参考に、内容をやや簡素化して作成します。
作成するシナリオとしては、求人応募があった際に採用担当者が一次選考を行い、合格すれば次の選考を案内するメールを応募者に送信したうえで、二次選考担当者に選考があることを通知し、不合格となれば不採用であることを応募者にメールで送信するというシナリオです。

フローの作成

フローオーケストレーションはフローを組み合わせて作成するため、作成する前にプロセス全体を整理し、どのようなフローが必要かを判断してから作成することが重要です、今回は、一次選考の画面フロー(応募者へのメールまで行う)、二次選考の画面フロー、二次選考担当者へのカスタム通知フローの3つを作成します。フローのキャプチャは添付しますが、詳細な内容は割愛します。

一次選考画面フロー

二次選考画面フロー

二次選考担当者に通知フロー(自動起動フロー)

フローオーケストレーションの作成

プロセスに必要なフローが作成できたため、フローオーケストレーションの作成に進みます。
フローオーケストレーションの作成は、フローと同じく[設定]>[フロー]>[新規フロー]から作成可能です。
FlowBuilderの画面で「レコードトリガ―オーケストレーション」と検索すると、以下のようにヒットすると思いますので、選択します。

今回は応募者レコードが作成された際に動作し、一次面接の担当者に一次面接の画面フローを割り当てるため、フローオーケストレーションの開始条件は以下のように設定します。

続いて、フェーズ要素を作成します。今回は、選考段階ごとにフェーズを分けて作成するため、「一次選考」という名称でフェーズを作成します。フェーズをクリックすると、「ステップを追加」というボタンが出るため、このボタンを押下します。すると、ステップの種別を選択する必要がありますが、今回は画面フローを使用するため、「対話型ステップ」を選択します。

上記画面で、ステップの詳細を選択します。
ステップの開始タイミングは、今回は「フェーズ開始されたら、ステップが開始されます」を選択します。
実行するアクションは、作成した「一次選考画面フロー」を選択します。アクションを完了する個人を選択で、どのユーザー、またはキューに画面フローを割り当てるかを選択することができます。今回は、「田中 花子」というユーザーを選択します。
アクションを完了する場所を選択では、画面フローを表示させる場所を選択します。今回は、トリガーとなった応募者レコード画面に表示させたいため、応募者レコードのIDを設定します。

続いて、決定要素を追加します。
決定要素は、フローと全く同じ使い方で利用可能です。今回は、画面フローから情報を受け取り、応募者が一次面接合格か否かで分岐させます。

最後に、二次選考フェーズを作成します。
このフェーズでは、まず二次選考担当者に通知を行いたいので、新規ステップから「バックグラウンドステップ」を選択し、先ほど作成した自動起動フローを選択します。

続いて、対話型ステップから二次選考画面フローを選択します。ここでは、一次選考とは別の「山田 太郎」というユーザーを選択します。
以上で、フローオーケストレーションの作成は完了です。

実際に動かしてみる

では、作成したフローオーケストレーションを実際に動かしてみましょう。

フローオーケストレーションを使用する際には、フローオーケストレーションの中で使用する画面フローを表示させるための「オーケストレーション作業コンポーネント」というコンポーネントをレコード画面に配置する必要があります。フローオーケストレーションで画面フローが割り当てられた場合、割り当てられたユーザーにのみこのコンポーネントに画面フローが表示されるようになります。

上記データで新規応募者レコードを作成し、まずは「田中 花子」でログインした際に一次選考の画面フローが表示されるか確認してみます。(メールアドレスは隠しています。)

問題なく表示されました。

今回は、以上のように合格としてその後の動作を確認します。

すると、カスタム通知の自動起動フローが動作し、二次選考の担当者である山田 太郎さんにカスタム通知が送信されました。この通知をクリックすることでレコード画面に遷移することも可能です。

また、メール送信のアクションにより、応募者のメールアドレスには以上のようなメールが届きました。

そして、山田 太郎のアカウントでレコード画面に遷移すると、二次選考画面フローが表示されました。
以上で今回作成したオーケストレーションは終了です。

終わりに

本記事ではフローオーケストレーションの概要の説明と、簡単な実装例を紹介しました。今回のような実装例であれば、フローオーケストレーションを使用しなくても実装できそうですが、より複雑な業務プロセスを管理する際には、フローオーケストレーションの有用性がより際立つと思います。
また、初めにも説明しましたが、フローオーケストレーションの長所でもあり短所でもある点として、無料ライセンスのユーザーでもフローオーケストレーション内であればデータを参照したり、承認などの操作を行うことができる分、トランザクションの実行ごとに利用料がかかるということがあります。フローオーケストレーション内での簡単な操作で事足りるユーザーが多いようであれば、ライセンス料金とフローオーケストレーション利用料を比較し、場合によってはフローオーケストレーションを利用することで費用を抑えることもできるかもしれません。便利なツールというだけでなく、費用削減の面でもフローオーケストレーションという選択肢を持っておくと今後役に立つかもしれません。