# Catalog Builder Ai

> AI-assisted catalog builder that generates catalog items, refines content, configures variables, sets up fulfillment workflows, and manages catalog categories from natural language descriptions

- **Type:** Skill
- **Install:** `agentstack add skill-happy-technologies-llc-happy-platform-skills-catalog-builder-ai`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Happy-Technologies-LLC](https://agentstack.voostack.com/s/happy-technologies-llc)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [Happy-Technologies-LLC](https://github.com/Happy-Technologies-LLC)
- **Source:** https://github.com/Happy-Technologies-LLC/happy-platform-skills/tree/main/skills/catalog/catalog-builder-ai

## Install

```sh
agentstack add skill-happy-technologies-llc-happy-platform-skills-catalog-builder-ai
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# AI-Assisted Catalog Builder

## 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`, or `admin`
- **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-creation` for manual item creation, `catalog/variable-management` for variable details, `catalog/approval-workflows` for 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: ""
    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": "",
  "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: |
      Use this form to request a new laptop computer. Available options include
      Mac and Windows configurations in standard and premium tiers.
      What you will need:
      
        Your preferred operating system (Mac or Windows)
        Screen size preference
        Business justification for the request
      
      What happens next:
      
        Your manager will review and approve the request
        IT Procurement will order the hardware (3-5 business days)
        IT Support will configure and deliver the laptop (1-2 business days)
      
    category: ""
    active: true
    availability: on_desktop_and_mobile
    order: 100
    delivery_time: "5 business days"
    price: "0"
    billable: false
    workflow: ""
```

**REST Approach:**
```
POST /api/now/table/sc_cat_item
Body: {
  "name": "New Laptop Request",
  "short_description": "Request a new laptop for business use",
  "description": "Use this form to request a new laptop...",
  "category": "",
  "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: ""
    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: ""
    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: ""
    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: ""
    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: ""
    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: ""
    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 "
  data:
    workflow: ""
```

**REST Approach:**
```
PATCH /api/now/table/sc_cat_item/
Body: {
  "workflow": ""
}
```

### Step 9: Refine Content with AI

Enhance the generated catalog item content:

1. **Title optimization**: Make it action-oriented ("Request a New Laptop" vs "Laptop")
2. **Description enrichment**: Add clear expectations, timeline, and requirements
3. **Variable help text**: Generate contextual tooltip text for each variable
4. **Confirmation message**: Create a post-submission confirmation message

**MCP Approach:**
```
Tool: SN-Update-Record
Parameters:
  table_name: sc_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=^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

1. **Use action-oriented item names** -- "Request a New Laptop" is clearer than "Laptop"
2. **Write descriptions for end users** -- avoid technical jargon, explain the process
3. **Set delivery time expectations** -- always provide realistic fulfillment timelines
4. **Make only essential fields mandatory** -- too many mandatory fields reduce adoption
5. **Group related variables** using container start/end for visual organization
6. **Add help text to every variable** -- reduce support tickets with clear guidance
7. **Test the ordering experience** -- impersonate an end user to verify the flow
8. **Use reference qualifiers** to limit reference variable results to relevant records
9. **Configure mobile availability** when appropriate for field workers
10. **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 patterns
- `catalog/variable-management` - Detailed variable configuration
- `catalog/approval-workflows` - Approval rule configuration
- `catalog/request-fulfillment` - Fulfillment process design
- `genai/flow-generation` - Flow Designer automation for fulfillment
- `catalog/ui-policies` - Catalog form dynamic behavior

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Happy-Technologies-LLC](https://github.com/Happy-Technologies-LLC)
- **Source:** [Happy-Technologies-LLC/happy-platform-skills](https://github.com/Happy-Technologies-LLC/happy-platform-skills)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-happy-technologies-llc-happy-platform-skills-catalog-builder-ai
- Seller: https://agentstack.voostack.com/s/happy-technologies-llc
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
