mcpField
S
service-omni-presence-user-config-deploy

service-omni-presence-user-config-deploy

github.com/forcedotcom其他1.1k85 次安装1 天前更新
代码仓库

关于 service-omni-presence-user-config-deploy

此 Salesforce skill 将 Omni-Channel 状态配置及其拒绝原因作为单个 Metadata API 包部署,并分配给指定 Agent。它适用于需要一致设置拒绝与会后工作字段的渠道配置流程。

主要功能

  1. 01原子部署配置与拒绝原因
  2. 02符合验证规则的整条记录配置
  3. 03按用户名或用户 ID 分配
  4. 04报告幂等部署状态
  5. 05生产环境写入保护

适用场景

  1. 01设置 Agent 的拒绝与会后工作行为
  2. 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.md
scripts/
deploy-and-report.sh
scripts/tests/
_bootstrap.py
test_presence_user_config_contracts.py

详细介绍

service-omni-presence-user-config-deploy

在一个原子化的 Metadata API 包中部署 Omni PresenceUserConfig(即决定如何向 Agent 提供工作的“presence configuration”),以及它引用的 PresenceDeclineReason。Decline、auto-accept、decline-reason 和 ACW 字段带有跨字段验证器——启用 Decline 时必须关闭 Auto-Accept,启用 Decline Reason 时必须开启 Decline,且 ACW 计时器必须与其最长时间配对——因此只能通过一次完整记录写入正确设置,不能逐个字段设置。此技能会编码出一致的记录,并将其分配给指定的 Agent。它在 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 字符 User Id(005…),用于分配;Id 会解析为 username(metadata 按 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)。

前提条件和安全性

  • 目标 org 已通过 sf CLI 验证身份,具有 Service Cloud 许可证,且 sf CLI 版本 ≥ 2.139.6。
  • 已启用 Omni-Channel 基础设置(service-omni-base-settings-configure)。
  • 任何 PRESENCE_STATUS_ON_DECLINE 都必须已存在(service-omni-presence-status-deploy)。
  • 适用三方 safe_to_write 生产环境防护机制。

运行

deploy-and-report.sh 会将两个组件写入临时 DX 项目,并通过一次调用进行部署:

  1. PresenceDeclineReason:<reason> — 拒绝原因(仅标签)。
  2. PresenceUserConfig:<config> — 容量 + 标签、enableAutoAccept=false、enableDecline=true、enableDeclineReason=true、declineReasons=<reason>、hasAfterConvoWorkTimer=true、afterConvoWorkMaxTime=<ACW_SECONDS>、可选的 presenceStatusOnDecline,以及为已解析 Agent 设置的 assignments/users。

各元素严格按 XSD 顺序输出。幂等性由每个组件的 Metadata API files[].state 提供(Unchanged→复用、Changed→更新、Created→创建);部署以 --async 运行,并轮询至终止状态。

行为

完整记录 + 一致性。 始终以符合验证规则的组合输出记录,因此重新部署会干净地无操作,而不是产生可能触发跨字段规则的字段差异。

非破坏性。 只写入指定的配置和拒绝原因;不会触及 org 中的其他 presence 配置和拒绝原因。会为已解析的 Agent 声明分配关系;此技能不会移除其未添加的用户(重新部署时会声明此配置的完整分配集合)。

输出约定

单个 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。

限制

  • 每次调用只能处理一个 presence configuration。
  • 编码的是 steel thread 中的 decline+ACW 代表配置文件;其他字段组合需要分叉 XML 模板。
  • 不会在 ServiceChannel 上设置渠道级 After-Conversation-Work 计时器(这是另一项配置),也不会部署 ServicePresenceStatus,或通过权限集授予状态访问权限。

参考资料

文件阅读时机
references/api-notes.mdPresenceUserConfig 跨字段验证器、XSD 元素顺序、拒绝原因打包,以及 ACW 字段配对
scripts/tests/_bootstrap.py契约测试套件加载的测试引导程序,用于定位技能根目录并运行其 shell 入口点
scripts/tests/test_presence_user_config_contracts.py更改部署脚本后运行,以验证防护、整条记录、成员关系和输出契约

评论

支持 Markdown