service-itsm-swarming-configure について
Salesforce の Swarming 機能を有効にし、Teams をコラボレーションツールに設定するスキルです。headless-360 API で現在の設定を確認し、変更を段階ごとに検証します。
主な機能
- 01Swarming の状態確認
- 02Swarming の有効化と検証
- 03コラボレーションツール設定の取得
- 04コラボレーションツールを Teams に設定
活用シーン
- 01Salesforce 組織で Swarming を有効化
- 02Swarming の連携ツールに Teams を設定
MCP 対応
headless-360 の dispatch ツールで Salesforce API を呼び出し、操作結果を検証します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill service-itsm-swarming-configureインストール後、Claude Code で/service-itsm-swarming-configureを入力して読み込まれたか確認します。
詳細
Employee Service(ITSM)での Swarming の有効化
Salesforce Go の機能 「Swarming」(service-cloud-swarming)を有効にします。これは、サービス担当者が適切な協力者や対象分野の専門家を招集し、インシデントをリアルタイムで解決できるようにする機能です。すべての操作は headless-360 経由で実行されます。
1 回に 1 つのステップだけ実行してください。 これらのステップでは、実際に状態を変更する API 呼び出しが行われます。操作を 1 つ実行して結果を表示し、成功したことを確認してから次に進んでください。複数のセットアップ呼び出しを 1 つの並列ブロックにまとめて実行しないでください。
対象範囲
- 対象:機能有効化 Connect API による
service-cloud-swarmingGo 機能の有効化、その後の機能状態の確認、および「Select a Collaboration Tool」選択リスト(「Set Teams as Collaboration Tool for Swarming」チェックリスト項目の API レベルの対象)の組織値 Connect API によるTeamsへの設定。 - 対象外:Microsoft Teams ITSM の基本的な Salesforce Go ページのトグル(
ITSMTeamsEnabled)と Azure/Entra アプリ登録 —service-itsm-teams-configureを使用してください(Go ページによると、Swarming の前提条件として Teams がすでに設定されている必要があります)。通知チャネルの設定(Notifications/TeamsNotifications)— この機能とは別の事項です。ポータル/サイトの作成 —experience-portal-createを使用してください。
このスキルが解決する問題
「Set Teams as Collaboration Tool for Swarming」は、Teams ITSM Go ページ(service-cloud-itsm-teams-integration の機能ページ)の「Set Up Salesforce IT Desk」チェックリスト項目の 1 つですが、最初に有効化する必要がある別の Go 機能 service-cloud-swarming によって制御されています。このスキルは Swarming を有効化する専用の手段です。これにより、service-itsm-teams-configure は機能有効化のロジックを重複させずに、このスキルに処理を委任できます。
ワークフロー
ステップ 1 — 現在の機能状態を確認する
mcp__headless-360__dispatch(
method: "POST",
url: "/services/data/v67.0/connect/setup/discovery/features/status",
body: { "featureApiNames": ["service-cloud-swarming"] }
)
レスポンスの形式:
{
"items": [
{
"apiName": "service-cloud-swarming",
"status": "ENABLED", // or "NOT_ENABLED" / "DISABLED"
"blockedByApexLock": false,
"dependencyStatuses": [],
"enableBlockedReasons": [],
"disableBlockedReasons": []
}
]
}
注記: このエンドポイントは状態を読み取る操作ですが、POST のみを受け付けます。queryParams を指定した GET は 405 METHOD_NOT_ALLOWED "Allowed are POST" を返します。
status がすでに "ENABLED" の場合は、ステップ 3(確認)に進みます。再度有効化しないでください。
enableBlockedReasons が空でない場合は、ステップ 2 を試みる前に、その理由をユーザーに伝えてください。
ステップ 2 — 機能を有効化する
mcp__headless-360__dispatch(
method: "POST",
url: "/services/data/v67.0/connect/setup/discovery/feature/service-cloud-swarming/enable",
body: {}
)
実環境で確認済み:正常に 201 {"success":true} が返ります(Teams の機能有効化とは異なり、テストではこの呼び出しで「成功しているのに 500 が返る」という問題は発生しませんでした。ただし、Go の機能有効化呼び出しは全般的に不安定な場合があるため、必ず後で状態を再確認してください)。
ステップ 3 — 確認する
mcp__headless-360__dispatch(
method: "POST",
url: "/services/data/v67.0/connect/setup/discovery/features/status",
body: { "featureApiNames": ["service-cloud-swarming"] }
)
status: "ENABLED" が返ることを確認してください。
ステップ 4 — 現在のコラボレーションツールの値を確認する
mcp__headless-360__dispatch_readonly(
method: "GET",
url: "/services/data/v67.0/setup/org/values/SWARM_COLLABORATION_TOOL"
)
レスポンスの形式 — 4 つの値フィールドのうち、値が設定されるのは 1 つだけです:
{ "booleanValue": false, "dateValue": null, "numberValue": null, "stringValue": "None" }
stringValue には現在の選択リストの値が格納されます。"None"、"Slack"、または "Teams" です。これは、setup-connect-api の get-org-value/update-org-value/verify-org-value-update の各ステップで説明されている、同じ Java enum で制御される組織値エンドポイントの一種です。valueName には、SWARM_COLLABORATION_TOOL(SCREAMING_SNAKE_CASE)という Java の enum 定数名をそのまま指定する必要があります。SwarmCollaborationTool のような camelCase の推測値は使用できません。
すでに "Teams" の場合は、ステップ 6(報告)に進みます。書き込みを再実行しないでください。
ステップ 5 — コラボレーションツールを Teams に設定する
mcp__headless-360__dispatch(
method: "PATCH",
url: "/services/data/v67.0/setup/org/values/SWARM_COLLABORATION_TOOL",
body: { "orgValue": "Teams" }
)
実環境で確認済み:200 { "stringValue": "Teams", ... } が返ります。これは、Swarming Go 機能ページの「Select a Collaboration Tool」ドロップダウンに対応する API レベルの書き込みです。Teams ITSM Go ページの「Set Teams as Collaboration Tool for Swarming」チェックリスト項目にある「Go to Feature Page」ボタンからリンクされるのと同じ設定です。有効な orgValue 文字列は "None"、"Slack"、"Teams" です。
その後、ステップ 4 を再実行して stringValue == "Teams" であることを確認してください。
Step 6 — ユーザーに報告する
service-cloud-swarming 機能のステータスと SWARM_COLLABORATION_TOOL
の値の両方を報告し、「Set Teams as Collaboration Tool for Swarming」が完全に自動化されたことを確認します —
機能の有効化が前提条件であり、組織値への PATCH がチェックリスト項目への実際の書き込みです。
無効化(要求された場合)
mcp__headless-360__dispatch(
method: "POST",
url: "/services/data/v67.0/connect/setup/discovery/feature/service-cloud-swarming/disable",
body: {}
)
その後、Step 1 を再実行して確認します。
コラボレーションツールの選択もリセットする場合(任意 — 機能を無効にしても自動ではリセットされません):
mcp__headless-360__dispatch(
method: "PATCH",
url: "/services/data/v67.0/setup/org/values/SWARM_COLLABORATION_TOOL",
body: { "orgValue": "None" }
)
注意事項
| 問題 | 詳細 |
|---|---|
「Set Teams as Collaboration Tool for Swarming」は Teams 側のエンドポイントではなく、SWARM_COLLABORATION_TOOL を使って書き込みます | このチェックリスト項目は Teams ITSM Go ページではなく、Swarming Go 機能ページ自体(/lightning/setup/page/feature/service-cloud-swarming/home、「Select a Collaboration Tool」ドロップダウン)にあります。Teams ITSM Go ページのチェックリスト項目は、「Go to Feature Page」を介してそのページに移動するためのディープリンクにすぎません。書き込み API は、本文が {"orgValue": "Teams"} の PATCH /services/data/v67.0/setup/org/values/SWARM_COLLABORATION_TOOL です — setup-connect-api の get-org-value/update-org-value ステップの一部です。実環境で確認済みです。GET は PATCH の前に {"stringValue":"None"}、後に {"stringValue":"Teams"} を返しました。 |
valueName には camelCase ではなく、正確な Java enum 定数を指定する必要があります | /setup/org/values/{valueName} エンドポイントは OrgValues.valueOf(valueName) を直接呼び出す(Enum.valueOf)ため、ui.services.utils.OrgValueUtil.OrgValues で宣言された SCREAMING_SNAKE_CASE の定数名をそのまま指定する必要があります — 例:SWARM_COLLABORATION_TOOL。SwarmCollaborationTool や SwarmingCollaborationTool のような camelCase の推測値は、400 ILLEGAL_QUERY_PARAMETER_VALUE "No enum constant ui.services.utils.OrgValueUtil.OrgValues.<guess>" を返します。この特定のエラーは、エンドポイント/仕組みは正しいものの、大文字小文字または名前が誤っていることを示します。読み取り専用の get-service-itsm-teams-collaboration-app-settings エンドポイント(GET /connect/it-service/collaboration-app-settings/{targetApplication})はこの設定とは無関係です — 読み取り専用であり(POST/PATCH/PUT は 405 を返します)、機能の状態に関係なく空の settings: [] を返します。 |
features/status は POST 専用です | /connect/setup/discovery/features/status に queryParams を指定して GET を実行すると、405 METHOD_NOT_ALLOWED "Allowed are POST" が返されます — 常に featureApiNames を含む JSON 本文を指定して POST してください。 |
swarming-connect-api SOR は無関係です | headless-360 の swarming-connect-api SOR は、swarming の会話内での Slack メッセージング(Slack メッセージの投稿/更新/削除、リアクション、ファイルのアップロード、チャンネル/ユーザーの検索)に関するものであり、swarming で使用するコラボレーションツール(Teams、Slack、Chatter)を設定するものではありません。このスキルの対象範囲と混同しないでください。 |
| Swarming を使うには先に Teams が必要です | Go ページでは、「Set Teams as Collaboration Tool for Swarming」は Teams ITSM の設定 内 の手順として示されています — このスキルの前、または同時に service-itsm-teams-configure を使って service-cloud-itsm-teams-integration を有効にしてください。 |
| バージョンプレフィックスが必要です | headless-360 の dispatch/dispatch_readonly は API バージョンを解決しません — 常に /services/data/vXX.0/... の完全なプレフィックスを指定してください。 |
関連スキル
| スキル | 代わりに使用する場合/併用する場合 |
|---|---|
service-itsm-teams-configure | Microsoft Teams ITSM の基本統合と Azure/Entra の設定を有効にする場合 — Swarming の前提条件です。「Set Teams as Collaboration Tool for Swarming」チェックリスト項目は、このスキルに委ねられます |
| 通知チャネルの設定 | Notifications/TeamsNotifications の設定を有効にすることは、この機能とは別の事項です(専用の子スキルはまだありません) |
service-itsm-channels-coordinate | Teams、Slack、Swarming、Notifications、Portal を横断するトップレベルメニュー |