Lab #4: Forms

View as Markdown

Overview

  • Learning Objectives: Configure forms ingestion for IT and HR service catalogs, understand the difference between catalog items and record producers, configure fillability overrides, manage form exclusions, and verify forms appear and are fillable in Moveworks
  • Estimated Time: 45 minutes (20 minutes Part 1 + 25 minutes Part 2)
  • Prerequisites:
    • Lab 0 complete (ServiceNow PDI set up)
    • Lab 1 complete (snow connector configured and tested)
    • IT Service Catalog with 6-8 catalog items in your PDI (provided by instructor)
    • HR Service Catalog with 5-6 catalog items and 2 Record Producers in your PDI (provided by instructor)

🛠️ 1: Walkthrough

1.1: Configure IT Service Catalog Ingestion

  1. Navigate to Forms > Import > Import Settings in Moveworks Setup
  2. Click New Ingestion
  3. Select Integration: Choose your snow connector
  4. Select Domain: Choose IT
  5. Under Filter Settings, select Default Filter
  6. Catalog IDs: Navigate to your PDI and go to sc_catalog.list to find the sys_id of the IT Service Catalog. Paste it here.
  7. Form Requester Field Names: Enter requested_for
  8. Click Save and then Run Ingestion
  9. Navigate to Forms > Ingested Forms and confirm the following forms appear:
Expected Form NameFillable?
Request New LaptopYes
Request Software AccessYes
Request VPN AccessYes
Order Office SuppliesYes
Conference Room BookingYes
Badge Access RequestYes
Request Production Server AccessYes (restricted to IT Dept)
Order Dev ToolsYes (restricted to Engineering)
  • Check Fillability: Click on Request New Laptop — verify it shows as fillable with variables (laptop_model, delivery_location, justification, needed_by_date, urgent)
  • Check User Criteria: Click on Request Production Server Access — verify it shows restricted access (IT Department only)
  • Test in Bot: Open the Moveworks bot in Teams/Slack and type "I need a new laptop" — Moveworks should surface the “Request New Laptop” form and begin conversational form filling

Note: Check that your connector is valid (Lab 1), the catalog sys_id is correct, and the catalog items are active in your ITSM.

1.2: Add the HR Service Catalog

Note: Adding a second catalog with a different domain demonstrates how Moveworks handles multi-domain form ingestion. IT and HR forms are configured independently so they can have different filtering and fillability rules.

  1. Navigate to Forms > Ingestion in Moveworks Setup
  2. Click Add Domain Configuration (or + Add if using the multi-domain view)
  3. Select Integration: Same snow connector
  4. Select Domain: Choose HR
  5. Under Filter Settings, select Default Filter
  6. Enter the Catalog ID for the HR Service Catalog — find it the same way as section 1.1: go to sc_catalog.list in your PDI and copy the sys_id for HR Service Catalog
  7. In the Form Requester Field Names field, enter opened_for — HR catalog items typically use opened_for instead of requested_for
  8. Click Save and Run Ingestion

1.3: Inspect Record Producers

After ingestion completes, go to Forms > Ingested Forms. You should now see both IT and HR forms. Look for the two Record Producers:

Form NameFillable?Why?
Report IT Issue (Optimal)Likely No — Deflects to portalRecord producer — client scripts may block native rendering
Report Issue (Non-Optimal)Likely No — Deflects to portalSame reason — plus poorly designed variables add complexity

Note: Why are Record Producers unfillable by default? Record producers often have client scripts that only run in the ITSM browser. Moveworks can’t execute those scripts in-chat, so it conservatively marks them as unfillable and deflects to the portal. You can override this in the next section.

1.4: Configure Fillability Overrides

To make the “Report IT Issue (Optimal)” record producer fillable in-chat:

  1. In Forms > Ingestion settings, scroll to the Advanced Deflection & Fillability section
  2. Find the field Form Filling Enabled Override
  3. This uses DSL (Domain Specific Language) rules. Enter a rule to target the specific form (find the sys_id by clicking the form in Forms > Ingested Forms and copying it from the details panel):
text
1form.sys_id EQ "<sys_id_of_Report_IT_Issue_Optimal>"
  1. Click Save and Re-run Ingestion
  2. Go back to Forms > Ingested Forms“Report IT Issue (Optimal)” should now show as Fillable

Note: Only override fillability for record producers where the client scripts are non-essential (cosmetic, auto-fill, or visual-only). If a script performs critical validation, leave the form as deflected — the user will complete it in the ITSM portal instead.

Fillability Override Reference:

SettingValueWhat It Does
Form Filling Enabled Overrideform.sys_id EQ ""Forces a specific unfillable form to become fillable in-chat
Form Filling Disabledform.sys_id EQ ""Forces a specific fillable form to deflect to the ITSM portal instead
Mark All Eligible Forms FillableEnableMakes all forms that pass fillability checks available for in-chat filling (use with caution)
Form Deflection EnabledEnableWhen forms can’t be filled in-chat, show a redirect link to the ITSM portal instead of hiding the form entirely

1.5: Exclude Specific Forms

Sometimes you need to exclude specific forms from ingestion entirely (e.g., deprecated items, internal-only forms, or the intentionally bad “Report Issue (Non-Optimal)” record producer).

  1. In Forms > Ingestion settings for the IT domain, find the Disallowed Form IDs field
  2. Enter the sys_id of “Report Issue (Non-Optimal)” — find it in your PDI at sc_cat_item_producer.list, click the form, and copy the sys_id
  3. Click Save and Re-run Ingestion
  4. Verify in Forms > Ingested Forms that “Report Issue (Non-Optimal)” no longer appears
FieldWhen to Use
Disallowed Form IDsExclude specific forms by sys_id. Takes priority over all other filter settings — even whitelisted forms. Use for deprecated or broken catalog items.
Whitelist sys_idsForce specific forms to be ingested regardless of filter rules. Useful for forms outside the selected catalog that you still want available.

1.6: Advanced Filtering — Custom Query Filter

Instead of the Default Filter, you can use an Advanced Filter with a custom query.

  1. Switch the Filter Type from Default Filter to Advanced Filter
  2. Enter a custom query filter. For example:
text
1active=true^categoryISNOTEMPTY^sys_class_name=sc_cat_item

This example ingests only active, categorized, standard catalog items (excluding record producers and order guides).

Use Advanced Filters carefully. The Default Filter mirrors your ITSM portal’s visibility rules, which is correct for most orgs. Advanced Filters give full control but can miss forms or over-ingest if the query isn’t right. Stick with Default Filter unless you have a specific need.

  1. After testing, switch back to Default Filter for this lab — Advanced Filters are shown here for awareness

1.7: Handling Client Scripts

If a form has client scripts that prevent native rendering, you can tell Moveworks to ignore specific scripts:

  1. In Forms > Ingestion settings, find Script IDs to Ignore
  2. Enter the sys_id(s) of the client scripts to skip (find these in your ITSM’s script list for the catalog item)
  3. After re-ingestion, the form may become fillable in-chat since the blocking scripts are ignored

Note: Which scripts are safe to ignore?

  • Safe: Scripts that auto-populate fields or toggle field visibility (cosmetic only)
  • Not safe: Scripts that validate input formats or calculate values from other fields
  • When in doubt: Leave the script active — the form will deflect to the portal instead

✅ 2: Verification & Next Steps

  1. Ingested Forms Check:
    • IT catalog items: 6-8 forms (minus any excluded)
    • HR catalog items: 5-6 forms
    • “Report IT Issue (Optimal)”: shows as Fillable (after override)
    • “Report Issue (Non-Optimal)”: Not listed (excluded via Disallowed Form IDs)
  2. Access Control Check:
    • Log into the Moveworks bot as a user NOT in the IT Department or Engineering group
    • Search for “production server access” — it should not appear
    • Search for “new laptop” — it should appear and be fillable
  3. Record Producer Check:
    • Search for “report IT issue” in the bot
    • Moveworks should begin conversational form filling (since you enabled the override)
    • Complete the form and verify a new Incident record is created in your ITSM (not a RITM — because this is a record producer)

🪞 3: Reflecting on This Configuration

Through this guide, you’ve learned the following:

  • How to configure forms ingestion for a single service catalog using a catalog sys_id
  • How to configure multi-domain forms ingestion (IT + HR with separate settings)
  • The difference between catalog items (fillable by default) and record producers (may require override)
  • How Moveworks handles record producers differently from catalog items — and when to override fillability
  • How user criteria carries over — restricted forms are only shown to authorized users in Moveworks
  • How to use Disallowed Form IDs and Whitelists to control which forms are ingested
  • How to use Advanced Filters for granular control over form selection
  • How to handle client scripts that block native in-chat rendering using Script IDs to Ignore
  • How requester field mapping can differ by domain (requested_for vs. opened_for)
  • How to verify ingested forms in Ingested Forms and test them through the bot

⚙️ 4: Configuration Details

Use the tables below to fill in the required fields accurately.

IT Service Catalog

Field NameAction / Value to Enter
IntegrationSelect your snow connector
DomainIT
Filter TypeDefault Filter
Catalog IDsPaste the sys_id of IT Service Catalog from your PDI
Form Requester Field Namesrequested_for (auto-populates the requester on submitted forms)
Whitelist sys_idsLeave empty
Disallowed Form IDsLeave empty

HR Service Catalog

Field NameAction / Value to Enter
IntegrationSelect your snow connector
DomainHR
Filter TypeDefault Filter
Catalog IDsPaste the sys_id of HR Service Catalog
Form Requester Field Namesopened_for

Forms Ingestion Settings Reference

SettingWhereWhat It Controls
Catalog IDsDefault FilterWhich service catalogs to pull forms from
Disallowed Form IDsFilterExclude specific forms (highest priority)
Whitelist sys_idsFilterForce-include specific forms regardless of filter
Advanced Filter (sysparm_query)Advanced FilterCustom query for form selection
Form Filling Enabled OverrideDeflection & FillabilityForce unfillable forms (e.g., record producers) to be fillable
Form Filling DisabledDeflection & FillabilityForce fillable forms to deflect to portal
Form Deflection EnabledDeflection & FillabilityShow portal link for unfillable forms instead of hiding them
Script IDs to IgnoreAdvancedSkip specific client scripts that block native rendering
Form Requester Field NamesIntegrationWhich field to auto-populate with the requesting user
Extra sys_class NamesAdvancedIngest forms from custom tables extending sc_cat_item