AI-Assisted Catalog Builder
SkillDev toolsAI-assisted catalog builder that generates catalog items, refines content, configures variables, sets up fulfillment workflows, and manages catalog categories from natural language descriptions
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the AI-Assisted Catalog Builder skill
What this skill tells your AI
The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/catalog/catalog-builder-ai/SKILL.md and read by ahel’s review.
Overview
This skill provides an AI-driven approach to building ServiceNow Service Catalog items from natural language descriptions:
- Generating catalog item records with refined titles, descriptions, and metadata from brief user prompts
- Creating and configuring catalog variables (text, reference, select, checkbox, multi-row variable sets)
- Setting up fulfillment workflows using Flow Designer or execution plans
- Configuring catalog UI policies and client scripts for dynamic form behavior
- Organizing items into categories and subcategories
- Generating user-facing content with clear instructions and help text
- Setting up approval rules and pricing configurations
When to use: When service owners or catalog administrators need to rapidly create catalog items from business descriptions, or when standardizing catalog item quality through AI-assisted content generation.
Prerequisites
- Roles:
catalog_admin,catalog_manager, oradmin - Plugins:
com.glideapp.servicecatalog(Service Catalog),com.glide.hub.flow_designer(Flow Designer) - Access: Write access to
sc_cat_item,item_option_new,sc_category,catalog_ui_policy - Knowledge: Service Catalog concepts, variable types, fulfillment process design
- Related Skills:
catalog/item-creationfor manual item creation,catalog/variable-managementfor variable details,catalog/approval-workflowsfor approvals
Procedure
Step 1: Parse the Natural Language Request
Analyze the user's description to extract:
- Service name: What the catalog item provides
- Target audience: Who will request this item (all users, IT staff, managers)
- Required information: What data needs to be collected (variables)
- Fulfillment process: What happens after submission (approvals, tasks, automation)
- Cost/pricing: Whether the item has a price or is free
- Category placement: Where the item belongs in the catalog hierarchy
Example Input: "Create a catalog item for requesting a new laptop. Users should pick between Mac and Windows, choose a size, provide business justification, and get manager approval. IT should get a task to procure and configure it."
Step 2: Identify or Create the Catalog Category
MCP Approach:
Tool: SN-Query-Table
Parameters:
table_name: sc_category
query: title=Hardware
fields: sys_id,title,description,parent,active,icon
limit: 5
If the category does not exist, create it:
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 Approach:
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"
}
Step 3: Generate the Catalog Item Record
MCP Approach:
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 Approach:
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"
}
Step 4: Create Catalog Variables
Generate variables based on the information requirements identified in Step 1.
Select Box Variable -- Operating System:
MCP Approach:
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: ""
Then create the choices:
Tool: SN-Create-Record
Parameters:
table_name: question_choice
data:
question: "<variable_sys_id>"
text: "MacOS (MacBook Pro)"
value: "mac"
order: 100
Reference Variable -- Cost Center:
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"
Multi-Line Text -- Business Justification:
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)"
Common variable types reference:
| Type Code | Type Name | Use Case |
|---|---|---|
| 1 | Yes/No | Boolean toggles |
| 2 | Multi-line text | Descriptions, justifications |
| 3 | Multiple choice | Select from predefined options |
| 5 | Select box | Dropdown selection |
| 6 | Single-line text | Short text input |
| 7 | CheckBox | Multi-select toggles |
| 8 | Reference | Link to another table record |
| 9 | Date | Date picker |
| 10 | Date/Time | Date and time picker |
| 14 | IP Address | Network configuration |
| 18 | Lookup select box | Dynamic lookup |
| 20 | Container start | Variable grouping |
| 24 | Masked | Passwords, secrets |
Step 5: Configure Catalog UI Policies
MCP Approach:
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: ""
Step 6: Configure Catalog Client Scripts
MCP Approach:
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;
}
Step 7: Set Up the Fulfillment Flow
MCP Approach:
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"
Then add approval and task creation actions as described in genai/flow-generation.
Step 8: Link Fulfillment Flow to Catalog Item
MCP Approach:
Tool: SN-Update-Record
Parameters:
table_name: sc_cat_item
sys_id: "<cat_item_sys_id>"
data:
workflow: "<flow_sys_id>"
REST Approach:
PATCH /api/now/table/sc_cat_item/<cat_item_sys_id>
Body: {
"workflow": "<flow_sys_id>"
}
Step 9: Refine Content with AI
Enhance the generated catalog item content:
- Title optimization: Make it action-oriented ("Request a New Laptop" vs "Laptop")
- Description enrichment: Add clear expectations, timeline, and requirements
- Variable help text: Generate contextual tooltip text for each variable
- Confirmation message: Create a post-submission confirmation message
MCP Approach:
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.
Step 10: Validate and Publish
Verify the complete catalog item configuration:
MCP Approach:
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
Check for completeness:
- All required variables present and correctly typed
- UI policies configured for conditional logic
- Fulfillment flow linked and published
- Category assignment correct
- Item set to active
Tool Usage
| Tool | Purpose | When to Use |
|---|---|---|
| SN-Query-Table | Find categories, existing items, variable patterns | Discovery and validation |
| SN-Create-Record | Create items, variables, UI policies, flows | Building catalog components |
| SN-Update-Record | Refine content, link flows, activate items | Iteration and publishing |
| SN-Get-Table-Schema | Discover variable types and field options | Understanding available configurations |
| SN-Get-Record | Retrieve single item or variable details | Detailed inspection |
Best Practices
- Use action-oriented item names -- "Request a New Laptop" is clearer than "Laptop"
- Write descriptions for end users -- avoid technical jargon, explain the process
- Set delivery time expectations -- always provide realistic fulfillment timelines
- Make only essential fields mandatory -- too many mandatory fields reduce adoption
- Group related variables using container start/end for visual organization
- Add help text to every variable -- reduce support tickets with clear guidance
- Test the ordering experience -- impersonate an end user to verify the flow
- Use reference qualifiers to limit reference variable results to relevant records
- Configure mobile availability when appropriate for field workers
- Create in a scoped update set before modifying production catalog
Troubleshooting
| Issue | Cause | Resolution |
|---|---|---|
| Item not visible in catalog | Inactive or missing category assignment | Check active=true and sc_cat_item_category records |
| Variables not showing on form | Wrong cat_item reference or inactive | Verify variable's cat_item matches item sys_id |
| Fulfillment flow not triggering | Flow not linked or in draft status | Update sc_cat_item.workflow and publish the flow |
| UI policy not applying | Condition syntax error or wrong scope | Test conditions manually, verify applies_to field |
| Variable choices missing | Choices linked to wrong question | Verify question_choice.question references correct variable |
| Price not displaying | price field format incorrect | Use decimal format: "1299.99" |
Examples
Example 1: Software License Request
Input: "Create a catalog item for requesting software licenses. Users pick the software from a list, enter the number of licenses, provide justification, and it needs director approval for items over $500."
Generated components: Catalog item with reference variable to u_software_catalog, integer variable for quantity, multi-line text for justification, conditional approval flow based on calculated cost.
Example 2: New Hire Onboarding Bundle
Input: "Build a catalog item for new hire onboarding. HR fills in the start date, department, manager, required equipment, and building access. It should create tasks for IT, Facilities, and HR."
Generated components: Catalog item with date, reference (department, manager), multi-checkbox (equipment), and select box (building) variables. Fulfillment flow creates parallel tasks for three groups.
Example 3: Conference Room Booking
Input: "Make a catalog item for booking conference rooms with date, time, room selection, attendee count, and AV requirements."
Generated components: Catalog item with date/time variables, reference to cmn_location with room qualifier, integer for attendees, checkbox group for AV options (projector, video conferencing, whiteboard).
Related Skills
catalog/item-creation- Manual catalog item creation patternscatalog/variable-management- Detailed variable configurationcatalog/approval-workflows- Approval rule configurationcatalog/request-fulfillment- Fulfillment process designgenai/flow-generation- Flow Designer automation for fulfillmentcatalog/ui-policies- Catalog form dynamic behavior
Signals
- GitHub stars
- 37
- Forks
- 13
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
catalog-builder-ai- Source
- github.com/happy-technologies-llc/happy-platform-skills