ChatterグループにDataloaderでメンバを追加する方法

こんにちは、扉です。
Salesforceを2019年の8月から使い始めたので、半年くらい使用しています。
正直、、、
難しい!!!笑
ぼくはSalesforce保守として仕事をしております。
実際にその日、営業に出た営業マンがその1日の終わりに、どんな活動をしたのか、どこの取引先に行ったのか、どんな案件で売り上げがどのくらいの確率でいくら出るのか、そういった内容をSalesforceにデータを入れます。
その際に、エラーが起きてうまくデータが入らない、こういった条件でレポートを作成したいがどうすれば良いのかと営業の方から電話が来たときの対応もぼくの仕事です。
ご存知かもしれませんが、IT業界ではこの部分を下流工程と呼びます。
運用保守と言われるところですね。
実査にシステムを使用している側にいる事で、システムの理解を深めることやユーザがどのようにシステムと関わっているのかを知る事が重要。
なので、大抵の年次の若い人が最初に通る道です。
あとはSalesforceと外部サービスを連携する時の要件定義も行ったりもします。
なのでぼくの仕事は上流から下流まで一通り全てやります!!!
小規模な仕事を沢山こなさなければならないので、結構大変ではあります。
で、今回は仕事中に直面したエラーをご紹介。
よくありそうなエラーだったので。。。
本記事のテーマ

★ChatterグループにDataloaderでメンバを追加する方法
では、早速いきましょう!!
ChatterグループにDataloaderでメンバを追加する方法

結論から言いますと、
そのグループ内でロールがマネージャ設定されているユーザでないとメンバの追加、削除は行えない
⇨DataloaderへログインするユーザをChatterグループ内にメンバとして入れて、マネージャ設定を行いましょう
Daraloaderで投入しようとする時、用意する項目は少なくとも2項目です。
○必要な項目
- Chatter グループ ID (CollaborationGroupId)
- ユーザ ID (MemberId)
・Chatter グループ ID (CollaborationGroupId)
Chatterに存在するグループを一意に決めるID(主キー)
→メンバを追加したいグループのID
・ユーザ ID (MemberId)
ユーザを一意に決めるID
→グループに追加したいユーザのID
この2つの項目が最低限あれば、Chatterグループにメンバを追加できます。
また、ロール(CollaborationRole)の設定も任意でできます。
CollaborationRole: グループメンバーのロール。この項目がインサートファイルに含まれない、または、指定されていない場合、ユーザはグループマネージャではなく、グループメンバーとして設定されます。
そのユーザをマネージャとして設定したい場合は、
CollaborationRole を ”Admin”
と記載すれば良いです。
そうする事でそのユーザはグループ内でメンバの追加や削除を行えます。
DataloaderでInsert

上記を理解した上で、いざDataloaderでInsertを行うと…

insufficient access rights on cross-reference id
というエラーが。
Salesforceを調べると、こんなリファレンスが。

今回は一番下の
・レコードに割り当てられているレコードタイプへのアクセス権がない
が原因であると推測しました。
実際、
DataloaderへのログインユーザのアカウントがそのChatterグループのメンバでなかった事が判明。
そのため、メンバの追加を行う事ができませんでした。
そりゃ、そのグループに所属していないユーザがそのグループのメンバ追加や削除できるわけがないですよね笑(スーパーユーザは話が別です)
という事で、
DataloaderへログインするユーザはそのChatterグループ内に所属しているユーザで行いましょう。
もしくはそのグループ内に所属しているメンバのユーザでDataloaderへログインしましょう。
今回は、DataloaderへログインするユーザをスーパーユーザのアカウントでChatterグループ内に追加しました。
DataloaderでInsert(2回目)
さぁ、これで準備完了!
もう一度Dataloaderでメンバの追加をしようとすると、
またしてもエラー!!!
さっきと同じエラーがまた表示されました。

Chatterグループ内にDataloaderへログインするアカウントをメンバ追加したのになぜだ…
と思いつつ、画面を触っていたら気付きました。
DataloaderへログインするユーザがそのChatterグループ内でマネージャとして設定されていない事が原因であると気づきました。
マネージャの設定がされていないユーザがグループ内のメンバ追加や削除は行えない
というChatterの仕様を完全に忘れていました。
スーパユーザでDataloaderへログインするユーザにマネージャの設定を行いました。
DataloaderでInsert(3回目)
3度目の正直!
DataloaderでInsertを行うと…

成功!!!
やりました(笑)
まとめ

一言でまとめると、
そのグループ内でロールがマネージャ設定されているユーザでないとメンバの追加、削除は行えない
という事です。(結構当たり前の事ですが、Dataloaderだと)
なのでエラーが出てきたときに、確認する観点は、
Dataloaderへログインするユーザを下記設定にする
- 対象のChatterグループ内にメンバとして追加してますか
- ロールの設定をマネージャにしてますか
この2点ですね。