SOEのひとりごと

Salesforce管理者兼エンジニアのSOEがつぶやいてます

【Salesforce管理業務改善】ノーコードでSalesforce内のフローで発生したエラーを収集する方法

はじめに

Salesforceの管理業務において、フローの開発や編集にはデバッグが欠かせません。しかし、通常のインタビューモードではリリース後のユーザ側で発生しているエラーを把握することができません。また、イベントモニタリングを利用するためには追加の費用がかかる場合もあります。そこで、本記事では、お金をかけずにエラーを収集し、ユーザ側で発生しているエラーを把握するための効果的な手法について検証しました。

リリース後のエラー解析課題

Salesforceの管理業務において、フローの開発や編集にはデバッグが欠かせません。しかし、通常のインタビューモードではリリース後のユーザ側で発生しているエラーを把握することができず、その原因を特定することが難しいという課題があります。

エラー収集のための効果的な手法の検討

イベントモニタリングを使わずにフロー実行時のエラーを収集するには、フローないの要素で接続可能な障害パスを利用するのが容易な実現方法になりそうです。

やり方は非常に簡単で、レコード作成だったり更新の要素のように、障害パスの接続が可能なものから、障害発生時の処理として、オブジェクトにエラーメッセージをレコードとして記録するといった動きになります。

これにより、コストをかけずにエラー収集を実現しました。
収集したエラーデータを分析し、ユーザ側で発生しているエラーの傾向やパターンを可視化することで、問題の特定や改善に役立てることも可能になりますので、よければよければ真似して下さい。

実際に作成したもの

ここからはスクショメインとなりますが、作成したものを共有いたします。

画像
img1.フローのサンプル

フローはサブフローとして作成しています。
これにより、他のフローへの追加が容易なモジュール的な機能としてリリースしております。

画像
img2.使い方の例

実際にサンプルにimg1で準備したエラー収集用のサブフローを追加してみました。
追加方法はimg2の通り、障害発生時のパスとしてつかするだけです。

画像
img3.サブフローの設定画面

要素の設定画面も非常にシンプルで、InputErrorMessageには、フローのエラーメッセージが格納される {!Flow.FaultMessage}を入力し、InputFlowNameには収集元のフローの名前やAPI名を追加するようにしています。
※現在Salesforceではフロー上で呼び出し元の参照名等を取得する機能はない認識です。

画像
img4.レポートでの出力結果確認

最後にエラーメッセージを格納しているオブジェクトをレポートで確認してみました。
※カラムは現在表示されているものだけを私の環境では追加して使用しております。
※オブジェクトは専用のカスタムオブジェクトを準備しております。

画像の通り、インタビュー上で表示されるエラーが格納されます。

まとめ

いかがでしたでしょうか?

シンプルなエラー収集手法を導入することにより、エラーデバッグの効率化と品質向上につながる仕組みができました。これにより、リリース後のユーザ側で発生しているエラーを素早く把握し、問題解決に取り組むことができます。また、現在の手法をさらに拡張し、エラーデバッグに関するさまざまな要素を収集・分析することで、より詳細な情報や洞察を得ることができるようになります。
※他のCRMプラットフォームやシステムでも同じようにできると思います。

感想等お待ちしております🙇‍♂️