service-omni-presence-user-config-deploy について
Salesforce のスキルで、Omni-Channel のプレゼンス設定と拒否理由を 1 つの Metadata API パッケージとしてデプロイし、指定したエージェントに割り当てます。拒否と会話後作業の項目を整合性を保って設定するチャネル構成フロー向けです。
主な機能
- 01設定と拒否理由の一括デプロイ
- 02検証規則に沿ったレコード全体の設定
- 03ユーザー名またはユーザー ID による割り当て
- 04冪等なデプロイ状態の報告
- 05本番環境への書き込みガード
活用シーン
- 01エージェントの拒否と会話後作業の動作設定
- 02チャネル構成時のプレゼンス設定の割り当て
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill service-omni-presence-user-config-deployインストール後、Claude Code で/service-omni-presence-user-config-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-notes.mdscripts/deploy-and-report.shscripts/tests/_bootstrap.pytest_presence_user_config_contracts.py詳細
service-omni-presence-user-config-deploy
Omni PresenceUserConfig(エージェントへの作業の提示方法を制御する「プレゼンス設定」)と、それが参照する PresenceDeclineReason を、1 つの Metadata API パッケージでアトミックにデプロイします。Decline/自動承諾/辞退理由/ACW フィールドにはフィールド間バリデーターがあります。Decline を有効にするには自動承諾を無効にする必要があり、辞退理由を設定するには Decline を有効にする必要があります。また、ACW タイマーには最大時間を指定する必要があります。そのため、これらのフィールドは個別ではなく、レコード全体を一度に書き込む方法でのみ正しく設定できます。このスキルは整合性のあるレコードを作成し、指定されたエージェントに割り当てます。service-omni-agent-users-create/service-omni-presence-status-deploy の後に実行され、service-omni-channel-setup-coordinate によって担当者エクスペリエンスのステップとして呼び出されます。
入力
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name] [agent_usernames_csv]
org-alias(必須)。config_developer_name(任意、デフォルトはOmni_Demo_Presence_Config)。agent_usernames_csv(任意)。割り当てる Username(…@…)および/または 15/18 文字のユーザー ID(005…)をカンマ区切りで指定します。ID は Username に解決されます(メタデータでは Username を使って割り当てます)。AGENT_USERNAMES_CSVでも設定できます。空の場合、設定はユーザー割り当てなしでデプロイされます。
環境変数による上書き:DECLINE_REASON_LABEL(デフォルトは Training)、DECLINE_REASON_DEVELOPER_NAME(デフォルトはラベルから生成)、CAPACITY(デフォルトは 5、1~100)、ACW_SECONDS(デフォルトは 60、10~3600)、PRESENCE_STATUS_ON_DECLINE(任意の ServicePresenceStatus DeveloperName)。
前提条件と安全性
- 対象の組織が
sfCLI で認証済みであり、Service Cloud ライセンスを持ち、sfCLI が 2.139.6 以上であること。 - Omni-Channel の基本設定が有効であること(
service-omni-base-settings-configure)。 PRESENCE_STATUS_ON_DECLINEを指定する場合、そのステータスがすでに存在すること(service-omni-presence-status-deploy)。- 3 方向の
safe_to_write本番環境ガードが適用されます。
実行
deploy-and-report.sh は 2 つのコンポーネントを一時的な DX プロジェクトに生成し、1 回の呼び出しでデプロイします。
PresenceDeclineReason:<reason>— 辞退理由(ラベルのみ)。PresenceUserConfig:<config>— 容量とラベル、enableAutoAccept=false、enableDecline=true、enableDeclineReason=true、declineReasons=<reason>、hasAfterConvoWorkTimer=true、afterConvoWorkMaxTime=<ACW_SECONDS>、任意のpresenceStatusOnDecline、および解決されたエージェントのassignments/users。
要素は厳密な XSD 順序で出力されます。冪等性は、コンポーネントごとの Metadata API files[].state(Unchanged→再利用、Changed→更新、Created→作成)によって実現されます。デプロイは --async で実行され、終端状態になるまでポーリングされます。
動作
レコード全体の整合性。 レコードは常にバリデーターに適合する組み合わせで出力されるため、再デプロイはフィールド差分によってフィールド間ルールに抵触することなく、クリーンな no-op になります。
非破壊的。 書き込まれるのは指定された設定と辞退理由だけです。組織内の他のプレゼンス設定や辞退理由には一切触れません。割り当ては解決されたエージェントに対して宣言されます。このスキルは追加していないユーザーを削除しません(再デプロイでは、この設定の割り当てセット全体を宣言します)。
出力形式
単一の JSON オブジェクト:status は created | updated | reused | blocked のいずれか、config({developer_name, label, capacity, acw_seconds, state})、decline_reason({developer_name, label, state})、assigned_usernames、deploy_id、manual_actions、blocking_issue。
制限事項
- 1 回の実行につき、プレゼンス設定は 1 つです。
- steel thread の辞退+ACW 担当者プロファイルを設定します。それ以外のフィールドの組み合わせが必要な場合は、XML テンプレートをフォークしてください。
ServiceChannelのチャネルレベルの After-Conversation-Work タイマーは設定しません(別の設定項目です)。また、ServicePresenceStatusのデプロイや、権限セットによるステータスアクセス権の付与も行いません。
参考資料
| ファイル | 読むタイミング |
|---|---|
references/api-notes.md | PresenceUserConfig のフィールド間バリデーター、XSD 要素の順序、辞退理由のパッケージ化、ACW フィールドのペアリングについて確認する場合 |
scripts/tests/_bootstrap.py | コントラクトテストスイートがスキルのルートを特定し、シェルのエントリーポイントを実行するために読み込むテストのブートストラップ |
scripts/tests/test_presence_user_config_contracts.py | デプロイスクリプトの変更後に実行し、ガード、レコード全体、メンバーシップ、出力の各コントラクトを検証する場合 |