关于 catalog-builder-ai
catalog-builder-ai 是面向 ServiceNow 服务负责人和目录管理员的技能,可将自然语言需求转为配置好的 Service Catalog 项目,涵盖内容、变量、策略和履行流程。
主要功能
- 01生成目录项目记录和内容
- 02配置目录变量及选项
- 03设置履行流程与审批
- 04创建 UI 策略和客户端脚本
- 05按类别组织项目
- 06验证并发布目录项目
适用场景
- 01根据业务描述构建目录项目
- 02统一项目字段与用户帮助文本
- 03配置请求审批和履行流程
MCP 相关
该技能介绍使用 SN-Query-Table、SN-Create-Record 和 SN-Update-Record 等 MCP 工具,查询并创建 ServiceNow 目录记录、变量、策略和流程。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill catalog-builder-ai安装后在 Claude Code 中输入/catalog-builder-ai确认已加载。
详细介绍
AI 辅助目录构建器
概述
此技能提供了一种由 AI 驱动的方法,可根据自然语言描述创建 ServiceNow 服务目录条目:
- 根据简短的用户提示生成目录条目记录,并完善标题、描述和元数据
- 创建并配置目录变量(文本、引用、选择、复选框、多行变量集)
- 使用 Flow Designer 或执行计划设置履行工作流
- 配置目录 UI 策略和客户端脚本,实现动态表单行为
- 将条目整理到类别和子类别中
- 生成包含清晰说明和帮助文本的用户可见内容
- 设置审批规则和定价配置
适用场景: 服务负责人或目录管理员需要根据业务描述快速创建目录条目,或通过 AI 辅助内容生成来统一目录条目质量时。
前提条件
- 角色:
catalog_admin、catalog_manager或admin - 插件:
com.glideapp.servicecatalog(服务目录)、com.glide.hub.flow_designer(Flow Designer) - 访问权限: 对
sc_cat_item、item_option_new、sc_category、catalog_ui_policy的写入权限 - 知识: 服务目录概念、变量类型、履行流程设计
- 相关技能:
catalog/item-creation(手动创建条目)、catalog/variable-management(变量详情)、catalog/approval-workflows(审批)
操作步骤
第 1 步:解析自然语言请求
分析用户的描述,提取以下信息:
- 服务名称: 目录条目提供什么服务
- 目标受众: 谁会申请此条目(所有用户、IT 人员、经理)
- 所需信息: 需要收集哪些数据(变量)
- 履行流程: 提交后会发生什么(审批、任务、自动化)
- 成本/定价: 条目是否收费
- 类别位置: 条目应位于目录层级中的何处
输入示例:“创建一个用于申请新笔记本电脑的目录条目。用户应能选择 Mac 或 Windows、选择尺寸、填写业务理由,并获得经理审批。IT 应收到一项采购和配置任务。”
第 2 步:查找或创建目录类别
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: sc_category
query: title=Hardware
fields: sys_id,title,description,parent,active,icon
limit: 5
如果类别不存在,请创建:
Tool: SN-Create-Record
Parameters:
table_name: sc_category
data:
title: "Hardware"
description: "Hardware procurement and provisioning requests"
parent: "<parent_category_sys_id>"
active: true
icon: "fa-laptop"
REST 方式:
GET /api/now/table/sc_category?sysparm_query=title=Hardware&sysparm_fields=sys_id,title,description,parent,active&sysparm_limit=5
POST /api/now/table/sc_category
Body: {
"title": "Hardware",
"description": "Hardware procurement and provisioning requests",
"parent": "<parent_category_sys_id>",
"active": "true"
}
第 3 步:生成目录条目记录
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: sc_cat_item
data:
name: "New Laptop Request"
short_description: "Request a new laptop for business use"
description: |
<p>Use this form to request a new laptop computer. Available options include
Mac and Windows configurations in standard and premium tiers.</p>
<h4>What you will need:</h4>
<ul>
<li>Your preferred operating system (Mac or Windows)</li>
<li>Screen size preference</li>
<li>Business justification for the request</li>
</ul>
<h4>What happens next:</h4>
<ol>
<li>Your manager will review and approve the request</li>
<li>IT Procurement will order the hardware (3-5 business days)</li>
<li>IT Support will configure and deliver the laptop (1-2 business days)</li>
</ol>
category: "<category_sys_id>"
active: true
availability: on_desktop_and_mobile
order: 100
delivery_time: "5 business days"
price: "0"
billable: false
workflow: "<flow_sys_id>"
REST 方式:
POST /api/now/table/sc_cat_item
Body: {
"name": "New Laptop Request",
"short_description": "Request a new laptop for business use",
"description": "<p>Use this form to request a new laptop...</p>",
"category": "<category_sys_id>",
"active": "true",
"availability": "on_desktop_and_mobile",
"delivery_time": "5 business days"
}
第 4 步:创建目录变量
根据第 1 步中确定的信息需求生成变量。
选择框变量 -- 操作系统:
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: item_option_new
data:
cat_item: "<cat_item_sys_id>"
name: "os_preference"
question_text: "Operating System"
type: 3
mandatory: true
order: 100
tooltip: "Select your preferred operating system"
default_value: ""
choice_table: ""
choice_field: ""
然后创建选项:
Tool: SN-Create-Record
Parameters:
table_name: question_choice
data:
question: "<variable_sys_id>"
text: "MacOS (MacBook Pro)"
value: "mac"
order: 100
引用变量 -- 成本中心:
Tool: SN-Create-Record
Parameters:
table_name: item_option_new
data:
cat_item: "<cat_item_sys_id>"
name: "cost_center"
question_text: "Cost Center"
type: 8
mandatory: true
order: 300
reference: "cmn_cost_center"
reference_qual: "active=true"
多行文本 -- 业务理由:
Tool: SN-Create-Record
Parameters:
table_name: item_option_new
data:
cat_item: "<cat_item_sys_id>"
name: "business_justification"
question_text: "Business Justification"
type: 2
mandatory: true
order: 400
tooltip: "Explain why you need this laptop (minimum 50 characters)"
常见变量类型参考:
| 类型代码 | 类型名称 | 用途 |
|---|---|---|
| 1 | 是/否 | 布尔值切换项 |
| 2 | 多行文本 | 描述、理由 |
| 3 | 多选 | 从预定义选项中选择 |
| 5 | 选择框 | 下拉选择 |
| 6 | 单行文本 | 短文本输入 |
| 7 | 复选框 | 多选切换项 |
| 8 | 引用 | 链接到另一个表的记录 |
| 9 | 日期 | 日期选择器 |
| 10 | 日期/时间 | 日期和时间选择器 |
| 14 | IP 地址 | 网络配置 |
| 18 | 查找选择框 | 动态查找 |
| 20 | 容器起始 | 变量分组 |
| 24 | 掩码 | 密码、机密信息 |
第 5 步:配置目录 UI 策略
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: catalog_ui_policy
data:
catalog_item: "<cat_item_sys_id>"
short_description: "Show accessories when laptop type selected"
applies_to: "item"
active: true
on_load: true
reverse_if_false: true
conditions: "os_preference=mac"
script_false: ""
script_true: ""
第 6 步:配置目录客户端脚本
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: catalog_script_client
data:
cat_item: "<cat_item_sys_id>"
name: "Validate business justification length"
type: onSubmit
active: true
ui_type: 0
script: |
function onSubmit() {
var justification = g_form.getValue('business_justification');
if (justification && justification.length < 50) {
g_form.showFieldMsg('business_justification',
'Please provide a more detailed justification (at least 50 characters)', 'error');
return false;
}
return true;
}
第 7 步:设置履行流程
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: sys_hub_flow
data:
name: "Laptop Request Fulfillment"
description: "Handles approval and task creation for laptop requests"
trigger_type: "SERVICE_CATALOG"
table: "sc_req_item"
status: "draft"
run_as: "system"
然后按照 genai/flow-generation 中的说明添加审批和任务创建操作。
第 8 步:将履行流程关联到目录条目
MCP 方式:
Tool: SN-Update-Record
Parameters:
table_name: sc_cat_item
sys_id: "<cat_item_sys_id>"
data:
workflow: "<flow_sys_id>"
REST 方式:
PATCH /api/now/table/sc_cat_item/<cat_item_sys_id>
Body: {
"workflow": "<flow_sys_id>"
}
步骤 9:借助 AI 优化内容
完善生成的目录项内容:
- 优化标题:采用以操作为导向的标题(“申请新笔记本电脑”比“笔记本电脑”更清晰)
- 丰富描述:明确说明预期、时间安排和要求
- 变量帮助文本:为每个变量生成相关的工具提示文本
- 确认消息:创建提交后的确认消息
MCP 方法:
Tool: SN-Update-Record
Parameters:
table_name: sc_cat_item
sys_id: "<cat_item_sys_id>"
data:
sc_template: |
Thank you for your laptop request. Your order {{number}} has been submitted.
Expected delivery: {{delivery_time}}.
Your manager will be notified for approval shortly.
步骤 10:验证并发布
验证完整的目录项配置:
MCP 方法:
Tool: SN-Query-Table
Parameters:
table_name: item_option_new
query: cat_item=<cat_item_sys_id>^ORDERBYorder
fields: name,question_text,type,mandatory,order,active
limit: 50
检查完整性:
- 所有必填变量均已添加,且类型正确
- 已配置用于条件逻辑的 UI 策略
- 已关联并发布履行流程
- 类别分配正确
- 项目已设为活动状态
工具使用
| 工具 | 用途 | 使用时机 |
|---|---|---|
| SN-Query-Table | 查找类别、现有项目和变量模式 | 探索和验证 |
| SN-Create-Record | 创建项目、变量、UI 策略和流程 | 构建目录组件 |
| SN-Update-Record | 优化内容、关联流程并激活项目 | 迭代和发布 |
| SN-Get-Table-Schema | 发现变量类型和字段选项 | 了解可用配置 |
| SN-Get-Record | 获取单个项目或变量的详细信息 | 详细检查 |
最佳实践
- 使用以操作为导向的项目名称 ——“申请新笔记本电脑”比“笔记本电脑”更清晰
- 面向最终用户撰写描述 ——避免使用技术术语,并说明流程
- 说明预计交付时间 ——始终提供合理的履行时间安排
- 只将必要字段设为必填 ——必填字段过多会降低使用率
- 使用容器起始/结束标记将相关变量分组,便于直观组织
- 为每个变量添加帮助文本 ——通过清晰的指引减少支持工单
- 测试订购体验 ——模拟最终用户,验证流程
- 使用引用限定条件,将引用变量的结果限制为相关记录
- 在适合现场工作人员的情况下,配置移动端可用性
- 修改生产目录前,先在带作用域的更新集中创建
故障排除
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 目录中看不到项目 | 项目未激活或缺少类别分配 | 检查 active=true 和 sc_cat_item_category 记录 |
| 表单上未显示变量 | cat_item 引用错误或变量未激活 | 确认变量的 cat_item 与项目的 sys_id 匹配 |
| 履行流程未触发 | 未关联流程或流程处于草稿状态 | 更新 sc_cat_item.workflow 并发布流程 |
| UI 策略未生效 | 条件语法错误或作用域不正确 | 手动测试条件,并确认 applies_to 字段 |
| 未显示变量选项 | 选项关联到了错误的问题 | 确认 question_choice.question 引用了正确的变量 |
| 未显示价格 | price 字段格式不正确 | 使用小数格式:“1299.99” |
示例
示例 1:软件许可证申请
输入:“创建一个用于申请软件许可证的目录项。用户从列表中选择软件,输入许可证数量,填写申请理由;金额超过 500 美元的项目需要主管审批。”
**生成的组件:**包含引用变量(指向 u_software_catalog)、用于数量的整数变量、用于申请理由的多行文本变量,以及根据计算金额触发的条件审批流程的目录项。
示例 2:新员工入职套餐
输入:“构建一个用于新员工入职的目录项。HR 填写入职日期、部门、经理、所需设备和楼宇门禁信息。该目录项应为 IT、设施管理和 HR 创建任务。”
**生成的组件:**目录项包含日期、引用(部门、经理)、多选复选框(设备)和选择框(楼宇)变量。履行流程会为三个团队创建并行任务。
示例 3:会议室预订
输入:“创建一个用于预订会议室的目录项,包含日期、时间、会议室选择、参会人数和视听设备要求。”
**生成的组件:**目录项,包含日期/时间变量、带有会议室限定条件的 cmn_location 引用、参会人数整数变量,以及包含视听选项(投影仪、视频会议、白板)的复选框组。
相关技能
catalog/item-creation- 手动创建目录项的模式catalog/variable-management- 变量配置详解catalog/approval-workflows- 审批规则配置catalog/request-fulfillment- 请求履行流程设计genai/flow-generation- 用于请求履行的 Flow Designer 自动化catalog/ui-policies- 目录表单动态行为