mcpField
C
catalog-builder-ai

catalog-builder-ai

github.com/happy-technologies-llc开发4142 次安装2 天前更新
代码仓库

关于 catalog-builder-ai

catalog-builder-ai 是面向 ServiceNow 服务负责人和目录管理员的技能,可将自然语言需求转为配置好的 Service Catalog 项目,涵盖内容、变量、策略和履行流程。

主要功能

  1. 01生成目录项目记录和内容
  2. 02配置目录变量及选项
  3. 03设置履行流程与审批
  4. 04创建 UI 策略和客户端脚本
  5. 05按类别组织项目
  6. 06验证并发布目录项目

适用场景

  1. 01根据业务描述构建目录项目
  2. 02统一项目字段与用户帮助文本
  3. 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日期/时间日期和时间选择器
14IP 地址网络配置
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 优化内容

完善生成的目录项内容:

  1. 优化标题:采用以操作为导向的标题(“申请新笔记本电脑”比“笔记本电脑”更清晰)
  2. 丰富描述:明确说明预期、时间安排和要求
  3. 变量帮助文本:为每个变量生成相关的工具提示文本
  4. 确认消息:创建提交后的确认消息

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获取单个项目或变量的详细信息详细检查

最佳实践

  1. 使用以操作为导向的项目名称 ——“申请新笔记本电脑”比“笔记本电脑”更清晰
  2. 面向最终用户撰写描述 ——避免使用技术术语,并说明流程
  3. 说明预计交付时间 ——始终提供合理的履行时间安排
  4. 只将必要字段设为必填 ——必填字段过多会降低使用率
  5. 使用容器起始/结束标记将相关变量分组,便于直观组织
  6. 为每个变量添加帮助文本 ——通过清晰的指引减少支持工单
  7. 测试订购体验 ——模拟最终用户,验证流程
  8. 使用引用限定条件,将引用变量的结果限制为相关记录
  9. 在适合现场工作人员的情况下,配置移动端可用性
  10. 修改生产目录前,先在带作用域的更新集中创建

故障排除

问题原因解决方法
目录中看不到项目项目未激活或缺少类别分配检查 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 - 目录表单动态行为

评论

支持 Markdown