用途:在 Salesforce org 上创建 N 个 Omni-Channel 坐席用户,使 Omni-Channel 有可路由的工作对象。由 service-omni-channel-setup-coordinate 在启用 Omni-Channel 后调用;分配权限集与加入队列是独立技能。
主要能力:用户名按 Organization.Id 派生的 8 位后缀确定性生成(agent{i}.<suffix>@example.com),检测基于 SOQL,仅插入缺失索引,因此可幂等重跑。密码由 Anonymous Apex 的 System.setPassword 设置。
输入:org-alias(必填,需能通过 sf org display 解析);用户数量(可选,默认 3,范围 1..10);Profile 名称(可选,默认 Standard User,协调器会覆盖为 Service Cloud profile)。用户名与密码不接受操作者提供。
用法:
只读预览
bash scripts/detect-and-create.sh plan <org-alias> [count] [profile-name]
检测、执行安全校验后仅插入缺失用户
bash scripts/detect-and-create.sh run <org-alias> [count=3] [profile-name="Standard User"] 入口为 detect-and-create.sh,不要直接调用内部脚本 run-create.sh。
前置与安全:需 sf CLI ≥ 2.139.6、已认证目标 org(My Domain URL)、存在 Service Cloud 许可,执行用户具备 PermissionsModifyAllData 与 PermissionsManagePasswordPolicies。生产保护:safe_to_write 为 IsSandbox 或 TrialExpirationDate 非空或 OrganizationType 属于 Developer/Base Edition,否则阻止且不可覆盖。密码处理为 fail-closed:若无法证明无活动 TraceFlag,则不生成密码,用户保持 ACTIVE 并标记 password_status:"reset_required"。
输出:单个 JSON,status 为 created/partial/reused/action_needed/blocked,含 detect、create、reused_users、created_count、reused_count、total_present_after、users_needing_password_reset、action_required、safe_to_write。生成的密码仅出现在该 JSON 中,需以 0600 权限写入受限文件并在分发后删除。
限制:用户名模式与 org 后缀固定不可配置;仅创建坐席用户,不删除、停用或修改现有用户;并发运行的去重依赖用户名唯一约束与 DUPLICATE_USERNAME 重试。