ブログ

Salesforceフローで実現する安全なデータ管理 – レコード削除制御の実装方法

#Salesforce #データ管理 #レコード削除

積極採用中
セミナー情報

営業活動の記録が詰まった商談データ。その一つ一つが組織の貴重な資産です。でも、時にはうっかり大切なデータを削除してしまいそうになることはありませんか?
特にクローズした商談は、売上実績の分析や監査で必要になることも多く、安易な削除は避けたいものです。

以前は、このようなデータの削除制御を実装するには、Apexによる開発が必要でした。しかし、今ではSalesforceフローを使って、管理者が簡単に実装できるようになっています。しかも、単に削除を防ぐだけでなく、ユーザーに分かりやすいエラーメッセージを表示することもできます。

この記事では、フローを使って「クローズ済み商談の削除を防ぐ」機能を実装する方法をご紹介します。手順はとてもシンプルですが、効果は絶大。データの整合性を保ちながら、ユーザーにも優しい仕組みを作っていきましょう。

ビジネスプロセスを守るレコード削除制御


データの削除は、一度実行してしまうと取り返しがつきません。特に商談データは、組織の売上実績や営業活動の履歴を示す重要な記録です。クローズした商談には、成約に至るまでの経緯や、最終的な取引条件など、ビジネスの意思決定に欠かせない情報が詰まっています。

商談データの保護が特に重要なのは、以下のようなケースです。
売上実績の分析や予測に使用される場合。過去の成約パターンは、将来の売上予測の重要な指標となります。クローズした商談が誤って削除されると、分析の精度に影響を与えかねません。
監査やコンプライアンスの要件を満たす必要がある場合。特に上場企業や規制の厳しい業界では、取引記録の保持が義務付けられていることもあります。
このような状況で、データの削除を適切に制御する仕組みが必要になります。従来は、この制御をApexで実装する必要がありましたが、Salesforceフローを使うことで、次のような利点が得られます。

開発者に依頼することなく、管理者が直接実装できます。急な要件変更にも、素早く対応することが可能です。
ユーザーに分かりやすいエラーメッセージを表示できます。なぜ削除できないのか、その理由を明確に伝えることで、ユーザーの混乱を防ぎます。
レコードの状態に応じて、きめ細かな制御が可能です。商談のフェーズや金額、関連する取引先の状況など、様々な条件に基づいて削除の可否を判断できます。
実装の手間も最小限で済みます。画面上での設定だけで、堅牢な削除制御の仕組みを作ることができるのです。
では次章から、具体的な実装方法を見ていきましょう。

フローによる削除制御の基本


フローでレコードの削除を制御するには、レコードトリガーフローを使用します。この仕組みを理解するところから始めましょう。

レコードトリガーフローの基本的な考え方

レコードトリガーフローは、レコードの作成や更新、削除といったイベントをトリガーとして実行されます。削除制御の場合、レコードが削除される直前にフローが起動し、削除を許可するか否かの判断を行います。
このとき重要なのが、削除を試みたユーザーへのフィードバックです。単に削除を防ぐだけでなく、なぜ削除できないのか、どうすれば良いのかを伝えることで、ユーザーの混乱を防ぐことができます。

削除条件の設計ポイント

フローで削除制御を実装する際は、以下の点に注意して設計を行います。
まず、どのような状態のレコードを保護する必要があるのかを明確にします。商談であれば、フェーズや金額、最終更新日など、様々な条件が考えられます。これらの条件は、組織のビジネスプロセスや規定に基づいて決定します。
次に、条件の組み合わせを考えます。たとえば、「クローズ済みかつ成約金額が一定以上」といった複合的な条件も設定できます。この際、条件が複雑になりすぎると保守が難しくなるため、必要最小限の条件設定を心がけましょう。

カスタムエラーメッセージの設計

カスタムエラーメッセージは、ユーザーとのコミュニケーションの要となります。メッセージの内容は以下の3点を含めると効果的です。

  • 何が問題なのか(例:「クローズ済みの商談は削除できません」)
  • その理由(例:「売上実績の記録として保持が必要なため」)
  • 対処方法(例:「削除が必要な場合は、システム管理者にお問い合わせください」)

エラーメッセージは簡潔かつ明確に。専門用語は避け、一般のユーザーにも分かる言葉で表現することを心がけます。

エラー表示の選択肢

フローのカスタムエラーでは、エラーメッセージの表示方法を選択できます。主な選択肢は以下の2つです。
レコードページのウィンドウでの表示: ユーザーの作業の文脈を保ったまま、エラーを通知できます。一般的なユースケースではこちらが推奨されます。
画面フローでの表示:より詳細な説明や、代替手段の提示が必要な場合に適しています。

次章では、これらの基礎知識を踏まえて、実際の実装手順を見ていきましょう。

クローズ済み商談の削除制御を実装する

では、実際にクローズ済み商談の削除を制御するフローを作成していきましょう。手順を追って実装していきます。

フローの作成と基本設定

まず、新しいフローを作成します。Setupメニューから「フロー」に移動し、「新規フロー」ボタンをクリックします。

表示された選択肢から「レコードトリガーフロー」を選択します。このタイプのフローが、レコード削除時の制御に最適です。

トリガー条件の設定

フローの基本情報を設定していきます。

  • オブジェクトの選択で「商談」を指定します
  • 「レコードが削除された」を実行条件として選択します
  • 実行要件は「レコードが条件を満たす場合のみ実行」を選びます

判定ロジックの実装

次に、クローズ済み商談かどうかを判定する条件を設定します。決定要素を追加し、以下の条件を設定します。


Copy
{!$Record.StageName} EQUALS "Closed Won" OR {!$Record.StageName} EQUALS "Closed Lost"

この条件式で、商談がクローズ(成約または不成立)状態にあるかどうかを判定します。

カスタムエラーの設定

判定結果が真の場合のパスに、カスタムエラー要素を追加します。

エラーメッセージは以下のように設定します。

  • 表示場所:「レコードページのウィンドウで」を選択
  • エラーメッセージ:このクローズ済み商談は削除できません。売上実績の記録として保持が必要なため、クローズ済みの商談は削除することができません。削除が必要な場合は、システム管理者にご相談ください。

    フローの有効化と動作確認

    設定が完了したら、フローを保存して有効化します。動作確認は以下の手順で行います。

      1. テスト用の商談レコードを2つ作成します

    ・1つ目:フェーズが「商談進行中」
    ・2つ目:フェーズが「成立」

      1. それぞれの商談で削除を試みます

    ・進行中の商談:通常通り削除できることを確認
    ・クローズ済みの商談:設定したエラーメッセージが表示されることを確認

    このように、段階的なテストを行うことで、意図した通りの動作を確認できます。

    補足:エラーメッセージのカスタマイズ

    エラーメッセージは、必要に応じてカスタマイズできます。たとえば、

    • 商談金額に応じて異なるメッセージを表示
    • 多言語環境の場合、ユーザーの言語設定に応じたメッセージを表示
    • 社内の申請プロセスへのリンクを含める

    など、組織の要件に合わせた調整が可能です。

    まとめ

    フローによるレコード削除制御の実装について、具体的な手順を見てきました。開発の知識がなくても、管理者がポイントを押さえることで、効果的なデータ保護の仕組みを作ることができます。

    この機能は、クローズ済み商談以外にも様々な場面で活用できます。例えば、

    • 進行中の案件に関連する取引先の削除を防止する
    • 特定の承認プロセスが完了したレコードの削除を制御する
    • 月次や年次の締め処理後のデータ変更を防ぐ

    重要なのは、単にデータの削除を防ぐだけでなく、なぜ削除できないのかをユーザーに分かりやすく伝えること。適切なメッセージを表示することで、ユーザーの混乱を防ぎ、データ管理の意識向上にもつながります。

    フローによる削除制御の実装は、Salesforceの基本機能だけで実現できる、シンプルかつ効果的なデータ保護の手段です。組織のデータ管理ポリシーに合わせて、ぜひ活用を検討してみてください。

    <Salesforce>
    弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
    >>セミナー一覧はこちら

    また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
    >>Salesforceについての詳細はこちら
    >>Salesforceの導入支援実績はこちらからご覧いただけます!

    医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
    >>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ