✅【動作確認済み】ApexでChatterに@メンション付き投稿を行うユーティリティクラスの実装と活用方法
Salesforceにおいて、ユーザーやChatterグループに@メンション付きの投稿を自動化したいケースは多々あります。この記事では、ConnectApiを利用した@メンション投稿ユーティリティクラスの実装を紹介し、実際の使用例を含めて解説します。テスト済みのコードをそのまま活用できるため、すぐに導入が可能です。
🔧 実装済みコード:PCS_ChatterMentionUtilクラス(変更不要)
以下は、ConnectApiを活用して、指定のユーザーまたはChatterグループに対してメンション付きで投稿するApexユーティリティクラスです。
public with sharing class PCS_ChatterMentionUtil { /** * 指定したグループまたはユーザーに @メンション付きで投稿するメソッド * @param targetId 通知先の User または Chatter Group の ID * @param text 投稿に含める本文メッセージ */ public static void postWithMention(Id targetId, String text) { // ▼ 投稿先 Feed の構築 ConnectApi.FeedItemInput feedInput = new ConnectApi.FeedItemInput(); ConnectApi.MessageBodyInput bodyInput = new ConnectApi.MessageBodyInput(); bodyInput.messageSegments = new List(); // ── テキストセグメント (メンションの前) ConnectApi.TextSegmentInput beforeText = new ConnectApi.TextSegmentInput(); beforeText.text = '完了通知: '; bodyInput.messageSegments.add(beforeText); // ── メンションセグメント本体 ConnectApi.MentionSegmentInput mentionSeg = new ConnectApi.MentionSegmentInput(); mentionSeg.id = targetId; bodyInput.messageSegments.add(mentionSeg); // ── メンション後に続くテキスト ConnectApi.TextSegmentInput afterText = new ConnectApi.TextSegmentInput(); afterText.text = '\n' + text; bodyInput.messageSegments.add(afterText); // ▼ FeedInput 構成 feedInput.body = bodyInput; feedInput.feedElementType = ConnectApi.FeedElementType.FeedItem; feedInput.subjectId = targetId; // ▼ 投稿実行(現在のユーザコンテキストで) ConnectApi.ChatterFeeds.postFeedElement(null, feedInput); } }
🧪 使用例:実際にメンション付き投稿を行う
以下のように、Apexクラスやトリガーから PCS_ChatterMentionUtil.postWithMention() を呼び出すことで、ユーザーまたはChatterグループへの@メンション投稿が実行されます。
🧑💼 ユーザーへの通知例
Id userId = '005xxxxxxxxxxxx'; // メンションしたいユーザーのID String message = 'レコード処理が正常に完了しました。ご確認ください。'; PCS_ChatterMentionUtil.postWithMention(userId, message);
👥 Chatterグループへの通知例
Id groupId = '0F9xxxxxxxxxxxx'; // ChatterグループのID String groupMessage = 'バッチ処理が完了しました。関係者の皆様に共有いたします。'; PCS_ChatterMentionUtil.postWithMention(groupId, groupMessage);
✅ メリットと利用シーン
利点 | 説明 |
---|---|
📣 明確な通知手段 | メンションを使うことで確実にユーザーへ通知可能 |
🔄 ワークフローへの統合 | Apexクラス・バッチ処理・トリガーから呼び出し可能 |
🛠 ノーコーディングな修正不要 | 汎用的なメソッドなので再利用性が高い |
🧪 テスト済み | ConnectApiベースで動作検証済みの安定コード |
まとめ
Salesforce上での**@メンション投稿の自動化**は、業務通知やプロセス完了連携の精度を大幅に向上させます。本記事で紹介した PCS_ChatterMentionUtil クラスは、ConnectApiの公式機能を活用した**テスト済み・実用性の高い実装**です。是非プロジェクトに導入して、通知の効率化を図ってください。
コメント
コメントを投稿