service-omni-supervisor-surface-deploy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

service-omni-supervisor-surface-deploy

service-omni-supervisor-surface-deploy

Populate the Omni-Channel Supervisor surface — the action buttons and tabs a supervisor sees — on an existing
OmniSupervisorConfig
.
OmniSupervisorConfigAction
and
OmniSupervisorConfigTab
are createable child sObjects (
OmniSupervisorConfigId
, a
*Type
picklist, and
DisplayOrder
), so the surface is populated with plain Data API inserts against the parent config's Id rather than by re-deploying the whole
OmniSupervisorConfig
metadata document. That keeps this leaf independent of
service-omni-supervisor-config-deploy
(which owns the user/queue companions inside the metadata file) and lets it run idempotently — it inserts only the types that are missing.
为已有的
OmniSupervisorConfig
填充全渠道主管(Omni-Channel Supervisor)的界面——即主管可见的操作按钮和标签页。
OmniSupervisorConfigAction
OmniSupervisorConfigTab
是可创建的子sObject(包含
OmniSupervisorConfigId
*Type
选择列表和
DisplayOrder
字段),因此无需重新部署整个
OmniSupervisorConfig
元数据文档,只需针对父配置的ID通过普通Data API插入即可填充界面。这使得该组件独立于
service-omni-supervisor-config-deploy
(后者负责元数据文件中的用户/队列关联配置),并且可以幂等运行——仅插入缺失的类型。

Inputs

输入参数

bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
  • org-alias
    (required) — must resolve via
    sf org display --target-org <alias>
    .
  • config_developer_name
    (optional) — the
    OmniSupervisorConfig.DeveloperName
    to populate. Omit it when the org has exactly one config; the skill resolves it. With multiple configs and no name, the skill blocks and lists them.
Env overrides (both CSV of picklist values; defaults are the reference-free standard set):
  • SUPERVISOR_ACTIONS
    — default
    AllAgents.ChangeQueues,AllAgents.ChangeSkills,AllAgents.ChangeGroups,AllAgents.AssignLearning,QueuesBacklog.ManageQueues
    .
  • SUPERVISOR_TABS
    — default
    Wallboard,Agents,QueuesBacklog,AssignedWork,SkillsBacklog
    .
  • PLAN_ONLY=1
    — report intent (existing vs. requested) and stop before any write.
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
  • org-alias
    (必填)——必须可通过
    sf org display --target-org <alias>
    解析。
  • config_developer_name
    (可选)——要填充的
    OmniSupervisorConfig.DeveloperName
    。当组织中仅有一个配置时可省略,该工具会自动解析。若存在多个配置且未指定名称,工具会终止运行并列出所有配置。
环境变量覆盖(均为选择列表值的CSV格式;默认值为无需外部引用的标准集合):
  • SUPERVISOR_ACTIONS
    ——默认值
    AllAgents.ChangeQueues,AllAgents.ChangeSkills,AllAgents.ChangeGroups,AllAgents.AssignLearning,QueuesBacklog.ManageQueues
  • SUPERVISOR_TABS
    ——默认值
    Wallboard,Agents,QueuesBacklog,AssignedWork,SkillsBacklog
  • PLAN_ONLY=1
    ——仅报告操作意图(现有配置与请求配置的对比),在执行任何写入操作前停止。

Preconditions and safety

前置条件与安全机制

  • Target org authenticated via
    sf
    CLI, Service Cloud license present,
    sf
    CLI ≥ 2.139.6.
  • An
    OmniSupervisorConfig
    exists — provisioned by
    service-omni-supervisor-config-deploy
    . If none exists (or the named one is absent), the skill blocks with a
    target_skill
    pointer.
  • Production guardrail: the script computes
    safe_to_write
    as
    IsSandbox
    OR
    TrialExpirationDate != null
    OR
    OrganizationType
    in {Developer Edition, Base Edition}, and blocks with no override when it is false.
  • 目标组织已通过
    sf
    CLI完成认证,具备Service Cloud许可证,且
    sf
    CLI版本≥2.139.6。
  • 已存在
    OmniSupervisorConfig
    ——由
    service-omni-supervisor-config-deploy
    提供。若不存在(或指定的配置不存在),工具会终止运行并指向对应的
    target_skill
  • 生产环境防护:脚本会计算
    safe_to_write
    ,当组织为
    IsSandbox
    (沙箱)或
    TrialExpirationDate
    不为空,或
    OrganizationType
    属于{Developer Edition, Base Edition}时,
    safe_to_write
    为true;否则工具会终止运行且无覆盖选项。

Run

运行方式

bash
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
It resolves the parent config, reads the surface rows already present, inserts only the missing action/tab types (appending
DisplayOrder
after the current maximum), and emits JSON to stdout.
bash
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
脚本会解析父配置,读取已存在的界面行,仅插入缺失的操作/标签页类型(将
DisplayOrder
设置为当前该类型的最大值加1),并向标准输出打印JSON结果。

Behavior

行为特性

Reference-free types only. The companion rows expose no reference field, so only self-contained types can be inserted headlessly. The skill accepts the standard set (
SAFE_ACTIONS
/
SAFE_TABS
in
references/api-notes.md
) and blocks up front on any type that needs an external reference —
*.CustomAction
,
*.AWSDashboard
,
FlexipageType
,
AIAgents
,
AgentforceSDR
— pointing you to Setup. Requesting a type outside the supported vocabulary also blocks before any write.
Idempotency. The requested types are diffed against the rows already on the config; existing types are reported as
reused
and never re-inserted, missing types are inserted and reported as
created
.
status
is
created
when anything was inserted, otherwise
reused
. Re-running the skill unchanged makes no writes.
Ordering. New rows are appended:
DisplayOrder
starts one above the current maximum for that companion type, preserving any ordering already configured in Setup.
仅支持无需外部引用的类型。关联行未暴露引用字段,因此仅能无交互插入自包含类型。工具接受标准集合(
references/api-notes.md
中的
SAFE_ACTIONS
/
SAFE_TABS
),并且会提前终止运行如果请求的类型需要外部引用——如
*.CustomAction
*.AWSDashboard
FlexipageType
AIAgents
AgentforceSDR
——并引导用户前往Setup进行配置。若请求的类型不在支持范围内,也会在执行任何写入操作前终止运行。
幂等性。会将请求的类型与配置中已有的行进行对比;已存在的类型会被标记为
reused
且不会重新插入,缺失的类型会被插入并标记为
created
。当有任何类型被插入时,
status
created
,否则为
reused
。重复运行相同的工具不会执行任何写入操作。
排序规则。新行会被追加:
DisplayOrder
从当前该关联类型的最大值加1开始,保留已在Setup中配置的任何排序。

Output contract

输出约定

A single JSON object to stdout.
status
is one of
created
,
reused
,
blocked
, or (with
PLAN_ONLY=1
)
action_needed
. The object also carries
config
(
developer_name
,
id
),
actions
and
tabs
(each with
requested
,
created
,
reused
,
count
),
manual_actions
, and
blocking_issue
(
null
unless
status: blocked
).
Org-side spot-check:
sql
SELECT OmniSupervisorActionType, DisplayOrder FROM OmniSupervisorConfigAction WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder
SELECT OmniSupervisorTabType,    DisplayOrder FROM OmniSupervisorConfigTab    WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder
向标准输出打印单个JSON对象。
status
的值为
created
reused
blocked
,或(当设置
PLAN_ONLY=1
时)
action_needed
。该对象还包含
config
developer_name
id
)、
actions
tabs
(各自包含
requested
created
reused
count
)、
manual_actions
,以及
blocking_issue
(当
status: blocked
时不为
null
,否则为
null
)。
组织端校验查询:
sql
SELECT OmniSupervisorActionType, DisplayOrder FROM OmniSupervisorConfigAction WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder
SELECT OmniSupervisorTabType,    DisplayOrder FROM OmniSupervisorConfigTab    WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder

Limitations

局限性

  • Populates only the reference-free standard action and tab types. Custom actions, FlexiPage tabs, AWS dashboards, and AI-agent surfaces need an external reference and must be configured in Setup.
  • Does not create, rename, or delete the parent
    OmniSupervisorConfig
    , its user/queue companions, or supervisor users/permission sets.
  • Does not remove surface rows — it only adds missing ones (no destructive reconciliation).
  • 仅填充无需外部引用的标准操作和标签页类型。自定义操作、FlexiPage标签页、AWS仪表板和AI-agent界面需要外部引用,必须在Setup中配置。
  • 不创建、重命名或删除父
    OmniSupervisorConfig
    及其用户/队列关联配置,也不创建主管用户或分配权限集。
  • 不删除界面行——仅添加缺失的行(无破坏性协调)。

References

参考文档

FileWhen to read
references/api-notes.md
The full
OmniSupervisorActionType
/
OmniSupervisorTabType
vocabulary, which types are reference-free, and companion-row insert semantics
文件阅读场景
references/api-notes.md
完整的
OmniSupervisorActionType
/
OmniSupervisorTabType
词汇表、无需外部引用的类型列表,以及关联行插入语义