Mark Hammer's blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Chatterで招待したメールアドレスの一覧を知りたい

Chatterには、Salesforce ライセンスを持たないユーザでも使用できるようユーザを招待する機能があります。
わざわざ有償ライセンスを割り当てなくても、Chatterでやり取りができるようになる便利な機能ですが、招待したユーザの一覧を見る機能はありません。
そのため、「いつ、だれを招待したか」、「招待した人のうちだれが参加していないのか」がSalesforce画面を見るだけでは分からない、という問題があります。

Chatterで招待したメールアドレスの一覧を見るには

Chatterで招待したメールアドレス、及び誰が招待したかの情報は、Chatter 招待(CollaborationInvitation)オブジェクトに格納されています。
つまり、Chatter 招待(CollaborationInvitation)オブジェクトをデータローダでエクスポートすることで、「いつ、だれを招待したか」、「招待したユーザのうちだれが参加していないのか」が分かるようになります。*1

Chatter 招待(CollaborationInvitation)オブジェクトにある項目のうち、特に有用と思われる項目は以下です。

  • INVITEDUSEREMAIL:招待した人のメールアドレス
  • INVITERID:招待したユーザのID
  • CREATEDDATE:招待した日時(UTC表記)
  • SHAREDENTITYID
    • 「顧客を招待」の場合、招待したChatterグループのID
    • 「同僚を招待」の場合、招待したユーザのID
  • STATUS:招待後の状況
    • Sent:招待を送ったが、参加していない
    • Accepted:参加している
    • Canceled:招待を送った後にキャンセルした(後述)

おまけ:Chatterの招待をキャンセルする方法

先述の通り、Salesforceの画面からは「いつ、だれを招待したか」、「招待した人のうちだれが参加していないのか」を知ることができません。
招待した人の一覧が画面で確認できないため、招待を送った後に「メールアドレスを間違えて他人に送ってしまった」となっても、画面上からキャンセルをすることができません。
しかしながら、Chatter 招待(CollaborationInvitation)オブジェクトのSTATUS項目には、「Canceled」という値があります。

実は、Chatter 招待(CollaborationInvitation)オブジェクトはデータローダからDeleteをすることができます。
そして、Delete実行後に対象レコードのStatusは「Canceled」に変わります。
もちろん、Statusが「Canceled」に変わった招待のメールに書かれたURLからは、ユーザ登録ができないようになっています。

Chatter招待キャンセル後に招待用URLにアクセスした画面

おわりに

今回はChatterで招待したメールアドレスの一覧取得、及びChatter招待のキャンセル方法を記載しました。
試していませんが、Chatter 招待(CollaborationInvitation)オブジェクトからデータ取得し、選択したレコードに対しdelete()コールを発行できる画面を作成できれば、キャンセル機能付きのChatterで招待したメールアドレスの一覧画面をカスタムで作成することは可能だと思います。

この投稿が何らかのお役に立つことができれば幸いです。

*1:ウィークリーエクスポートではエクスポートできません。