Spring'15からChatterMessageのトリガが作成できるようになりました。NGワードを判定したり、送信者にToDoを作成したりといった使い方ができると思います。
ChatterMessageのトリガを開発するにはプロファイルのシステム管理者権限にある『Chatter メッセージの管理』権限が必要になります。
権限のあるユーザのみ設定から『Chatter メッセージ トリガ』にアクセスできます。
権限があれば開発者コンソールなど通常のトリガと同じ手順で開発できます。
ChatterMessageオブジェクトについて
ChatterMessageトリガはSpring'15から作成できるようになりましたが、ChatterMessageのオブジェクトは以前から存在していました。
次のような構成となっています。
重要なのはChatterMessageとChatterConversationMemberの2つだと思います。ChatterMessageオブジェクトで送信者や送信日、メッセージの内容などの情報を持っています。
ChatterConversationMemberの方ではMemberIdという項目で送信相手のIDを持っています。ChatterMessageとChatterConversationMemberはConversationIdという項目で紐付いていました。
(ConversationIdで紐付いているのでサブクエリで取得できるかと考えたのですが、上手く行きませんでした。)
オブジェクトなのでSOQLを実行して参照することも可能です。
SELECT Id,ConversationId, SentDate, Body FROM ChatterMessage
更新はできないみたいですが削除は可能みたいです。
delete [SELECT Id, ConversationId, SentDate, Body FROM ChatterMessage]
こんな感じでChatterMessageオブジェクトにアクセスできるので、ChatterMessageトリガのテストクラスを作成するには、他のオブジェクトと同じようにINSERTでテストできるかと思っていました。
残念ながらこのオブジェクトはINSERTによるレコード作成は許可されていないみたいです。ChatterMessageのテストデータを作成するにはChatter in Apexを利用する必要があるみたいです。