SuperAPI AI 工具集

service-omni-queue-deploy

部署与运维

查看项目

更新于 10-15 21:44

技能介绍

用途:在 Salesforce 组织中验证某个可路由 sObject(Case、Incident、MessagingSession、VoiceCall)是否已有 Type='Queue' 的 Group 及其 QueueSobject 绑定,复用已有队列;配合 --create-if-missing 可在无绑定时经 Metadata API 创建队列(Group + QueueSobject),并可选将 QueueRoutingConfigId 对齐到调用方指定的 QRC。该技能按 QueueSobject.SobjectType 绑定而非名称发现队列,因为真实组织中队列命名不一致(如 CaseQueue、messagingqueue、Omni_Demo_Cases_Queue),功能关联在于绑定而非 DeveloperName。它由 service-omni-channel-setup-coordinate 调用;队列成员是独立叶子技能 service-omni-queue-members-assign,对齐的 QRC 来自 service-omni-queue-routing-config-deploy。

用法:bash scripts/verify-and-align.sh <org-alias> [Case|Incident|MessagingSession|VoiceCall] [routing_config_dn] [queue_developer_name] [--create-if-missing]。org-alias 必填;sobject_type 可选,默认 Case;routing_config_dn 可选,传入时强制对齐该 QRC,Case 省略时默认 Case_Routing_Config,其他 sObject 省略时仅报告现有绑定;queue_developer_name 为可选第 4 位置参数,指定要操作的队列或创建名称;--create-if-missing(或 QUEUE_CREATE_IF_MISSING=1)在无绑定时创建队列,标签默认由 DeveloperName 加空格生成,可用 QUEUE_LABEL 覆盖。

执行流程:先经 EntityDefinition 确认 sObject;再按 QueueSobject WHERE SobjectType 发现,命中则复用,未命中且带 --create-if-missing 则创建,否则阻塞并给出 Setup 点击路径;随后读取队列的 QueueRoutingConfigId 与完整 QueueSobject 列表;传入 routing_config_dn 时解析其 Id 并在漂移时 PATCH Group.QueueRoutingConfigId;最后重新查询确认收敛并输出 JSON。

前置与安全:目标组织需经 sf CLI 认证(My Domain URL)、具备 Service Cloud 许可、sf CLI ≥ 2.139.6;目标 sObject 须已在组织启用(写入前经 EntityDefinition 验证,缺失时给出功能启用点击路径,如 Incident 需 Incident Management、MessagingSession 需 Enhanced Messaging);传入的 QRC 必须已存在(按 DeveloperName 解析),否则阻塞并指向 service-omni-queue-routing-config-deploy;适用三方 safe_to_write 生产保护。

行为特点:以发现优先于命名;创建幂等,Metadata 部署按 fullName upsert,不会重复创建,且不删除已有 QueueSobject 行;Case 强制对齐 Case_Routing_Config,其他 sObject 无协调方 QRC 时报告已绑定值(source: discovered);多个不同队列绑定同一 sObject 且无规范名或显式 queue_developer_name 时阻塞要求消歧;PATCH 保留队列 Id,不删除重建。

输出:单个 JSON 对象,含 status(created | reused | updated | blocked)、sobject_type、developer_name、queue_created、id、queue_routing_config_id、queue_routing_config_developer_name、queue_routing_config_source(forced | discovered)、queue_sobjects、before 快照、manual_actions、blocking_issue。

限制:仅支持 Case、Incident、MessagingSession、VoiceCall,扩展需新增 dispatcher 分支;从不删除队列或其 QueueSobject 行,也不修改队列成员;创建仅提供最小队列形态,不设置 doesIncludeBosses、邮件路由地址等特殊字段。