mcpField
S
service-itsm-swarming-configure

service-itsm-swarming-configure

github.com/forcedotcom生産性1.1k1.2k 回インストール1 日前に更新
リポジトリ

service-itsm-swarming-configure について

Salesforce の Swarming 機能を有効にし、Teams をコラボレーションツールに設定するスキルです。headless-360 API で現在の設定を確認し、変更を段階ごとに検証します。

主な機能

  1. 01Swarming の状態確認
  2. 02Swarming の有効化と検証
  3. 03コラボレーションツール設定の取得
  4. 04コラボレーションツールを Teams に設定

活用シーン

  1. 01Salesforce 組織で Swarming を有効化
  2. 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-swarming Go 機能の有効化、その後の機能状態の確認、および「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-configureMicrosoft Teams ITSM の基本統合と Azure/Entra の設定を有効にする場合 — Swarming の前提条件です。「Set Teams as Collaboration Tool for Swarming」チェックリスト項目は、このスキルに委ねられます
通知チャネルの設定Notifications/TeamsNotifications の設定を有効にすることは、この機能とは別の事項です(専用の子スキルはまだありません)
service-itsm-channels-coordinateTeams、Slack、Swarming、Notifications、Portal を横断するトップレベルメニュー

コメント