Salesforceのプロセスビルダーを利用するとChatterに投稿する機能を簡単に実装できます。
例えばカスタム項目Chatter共有にチェックをつけて保存したときにセールスのグループに共有する機能を実装しました。
こんな感じです。
Chatter投稿の実行条件を作成したタイミングではなく、項目が特定の値で更新されたらとすることで、一度必須項目のみ入力して時間のあるときに詳細を入力しChatterに共有するといったオペレーションが可能になります。
特定の条件が無い場合はチェックボックス型にしておくのがわかりやすくていいと思います。
自動投稿した内容にコメントを入れたりすることで情報共有がやりやすくなります。
ここで注意点です。Chatter共有にチェックをつけて保存するとセールスグループに自動投稿する仕組みが追加してみました。そんな組織でデータの一括更新が行われます。
その結果・・・こんなことになります。
過去に登録された取引先をChatter投稿する必要はなかったのですが、Chatter共有にチェックがある状態で保存すると実行の条件があるせいで大量に不要な投稿が行われてしまいました。
数十件程度だったら笑い話ですが、数百件、数千件でこれをやってしまうと悲しいことになると思います。こんな悲しい事態を発生させないためには、実行条件にある「レコードに指定の変更が行われた場合にのみアクションを実行しますか?」のオプションで「はい」にチェックを付けます。
このチェックをつけることでChatter共有のチェックがFalseからTrueになったタイミングでのみ実行されるようになります。データの一括更新作業に影響がでることはありません。
チェックが付いていたら更新してはいけないなどのルールで回避しようといった方法を考える場合もあるかもしれませんが、管理の引き継ぎなどでそのルールが引き継がれずデータの一括更新が行われてしまうといったリスクが考えられます。
特定の条件で自動実行する処理を実装するときはこの値変更の有無までチェックすることでより安全で使いやすいシステムにできると思います。これはプロセスビルダーだけではなくApexトリガでも同じだと思います。システムを運用していると新しい項目が追加されたりして過去データの更新が必要になることがかならずでてきます。そうしたときに自動実行機能があるから実施できませんということにならないように考慮しておく必要があります。
Chatterグループへの誤投稿の修復方法
残念なことにChatterグループへの大量誤投稿が行われてしまった場合、それを削除する必要があります。1人の作業者が手動で1件ずつ削除していった場合、2時間ぐらいで100〜200件ぐらいは削除できる...かもしれません。なので500件ぐらいなら4〜5時間ぐらいで削除できると思います。ですが実際の所そんな時間と気力がある人はあまりいないと思います。。そこで思いつくのはSOQLとApexをつかって一括削除する方法です。実際に試したことは無いのですがこれは絶対に辞めたほうがいいと思います。もしWHERE条件に失敗して組織のすべての投稿が削除された場合、取り返しがつきません。
カスタムレポートタイプを作成することでChatterグループの誤投稿を抽出するレポートを作成できます。
グループの名前、作成者、作成日などで絞り込むことで絞り込みができると思います。
自動投稿の場合は特定のキーワードが含まれています。それを条件に入れると絞り込みの精度が向上します。
これでレポートを用意できました。
削除するにはレコードIDが必要ですが、必要なのは『フィード投稿 ID』ではなく『フィード項目ID』の項目になります。(※ここまで『フィード投稿 ID』の方でキャプチャを取っていましたが、このタイミングで間違いに気づきました。。)
『0D5』で始まるIDが必要になります。
SOQLクエリでFeedItemオブジェクトの値を見てみるとこちらがレコードIDであることを確認できると思います。
また、フィード項目IDの値はレコードIDになりますのでURLに直接指定すると投稿ページに移動できます。
対象レコードIDを抽出できるレポートを作成できたら後はエクスポートしてデータローダで削除するだけです。
データローダでどのオブジェクトを指定するかはこちらが参考になります。
FeedItemを削除すればいいのですが、間違いが無いか一度にエクスポートなどで検証を行ってください。Chatter投稿を削除することはほぼありませんが、削除後復元は難しいと思いますので念入りに検証してからが良いと思います。
レポートで抽出すると対象の件数を確認できます。なので関係のないレコードが含まれていないかの確認ができますし、万が一過ちがあってもすべてが消えるといったことは回避できるはずです。
長くなりましたがChatterの大量誤投稿を行ってしまった場合はこんな感じで修復が行えます。
より便利なChatter投稿を行うために
最後にChatterの自動投稿でやっておきたい設定を紹介します。Chatterグループに自動で投稿したい場合は次の設定になると思います。
この場合、Chatterフィードから対象のレコードに移動することができません。なので投稿先を「このレコード」に指定して本文の中にグループメンションを追加します。
これでChatterグループにレコードへのリンクがある状態で投稿することが可能になります。
プロセスビルダーでChatter投稿機能を実装するときはこのあたりを押させておくといいと思います。