> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.moveworks.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.moveworks.com/_mcp/server.

# Lab #4a: Basic Forms

## Overview

* **Learning Objectives:** Configure forms ingestion for an IT service catalog, set up mirrored permissions and permission rules for forms, verify ingested forms appear correctly in Moveworks, and test conversational form filling through the AI Assistant
* **Estimated Time:** 20 minutes
* **Prerequisites:**
  * [Pre-Req: Update Sets](/ai-assistant/getting-started/labs/moveworks-setup/lab-prereq-installing-moveworks-update-sets-dd2f30af516547c9) complete (user criteria permissions installed)
  * [Lab 0](/ai-assistant/getting-started/labs/moveworks-setup/lab-0-setup-lab-environments-c7504a812c093d1e) complete (ServiceNow training instance set up)
  * [Lab 1](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f) complete (`snow` connector configured and tested)
  * [Lab 2](/ai-assistant/getting-started/labs/moveworks-setup/lab-2-user-identity-service-account-300eacfcba9e6007) complete (user identity and service account configured)
  * Two IT service catalogs in your ServiceNow training instance (provided by instructor): **Service Catalog** and **Technical Catalog**

***

## 🛠️ 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 Connector:** Choose your `snow` connector

**Note:** This must be the same connector you configured in [Lab 1](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f). If you followed the instructions exactly, it should be named `snow`.

4. **Name of the ingestion:** Enter a descriptive name for this ingestion configuration — for example, `servicenow_forms_IT`

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/d74125506bcbe8f834a2b5ebdb78c5557c8047654f347bf2002e12fa63a9a1e9/docs/assets/images/setup-labs/lab4a_ingestion_name.png)

5. **Select Form Catalogs:** Select the two IT catalogs and assign each one the `IT` domain. Check the box next to each catalog and set its **Select Domain** dropdown to `IT`:

| **Catalog**       | **Sys ID**                         |
| ----------------- | ---------------------------------- |
| Technical Catalog | `742ce428d7211100f2d224837e61036d` |
| Service Catalog   | `e0d08b13c3330100c8b837659bba8fb4` |

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/15679a863c785ac1fd0a3bf4a19b47706e75f54a6cbbfde2e7007daad03ed779/docs/assets/images/setup-labs/lab4a_select_form_catalogs.png)

6. **Provide Sample URL Templates:** Enter a form URL template from your ServiceNow training instance. The URL template must include `{form_id}` which refers to the form's ID. Use the following format:

```plain text
https://[your-instance-name].lab.service-now.com/sp?id=sc_cat_item&sys_id={form_id}
```

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/b569dd0e2ade25732922bb88befa364602fe678dd41851567d4d2f02c3356840/docs/assets/images/setup-labs/lab4a_sample_url_template.png)

7. **Review Samples:** Moveworks will display a preview of the forms it found from your selected catalogs. Verify that forms are populating in this view — the count should be greater than zero. The exact number will vary depending on your training instance, but you should expect to see forms from both the Technical Catalog and Service Catalog.

**If no forms appear in the review,** go back and verify the previous wizard steps:

1. Your `snow` connector is valid and connected (configured in [Lab 1](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f))
2. Both the **Technical Catalog** and **Service Catalog** are checked with the domain set to `IT`
3. The sample URL template includes `{form_id}` and uses your correct instance name

Once the forms load successfully, click **Confirm Ingestion** in the bottom right.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/46abaaf731b7178dd447ed256df55f31987622dd79d80b5323e9f1ab130df5b6/docs/assets/images/setup-labs/lab4a_review_samples.png)

### 1.2: Configure Form Permissions

**If you completed [Lab 3: Enterprise Search](/ai-assistant/getting-started/labs/moveworks-setup/lab-3-configuring-enterprise-search-de072ea4565053c4),** this page should already be partially configured with the `snow` connector selected. If you have not completed Lab 3, stop here and complete it first — the Mirror Permissions configuration is a shared prerequisite for both Enterprise Search and Forms.

1. Navigate to `Resource Permissions > Mirror Permissions` in **Moveworks Setup**. You should see the `snow` connector already selected from Lab 3.

2. Confirm the following checkboxes are selected:
   * **Fetch Form Access Controls** — ingests user criteria for catalog items (required for forms)
   * **Fetch Knowledge Base Access Controls** — ingests user criteria for knowledge articles (configured in Lab 3)

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/785aa63fd494c7a8b61bf5fa62ed51ae2f35a8b5433af518137855ac22c937c6/docs/assets/images/setup-labs/lab4a_member_permissions_snow.png)

3. Click **Save** if you made any changes.

**Note:** Without **Fetch Form Access Controls** and **Evaluate User Criteria** enabled, form ingestion will not run. Permissions must be configured before Moveworks can index your catalog items.

4. Navigate to the **Permission Rules** page under `Resource Permissions`. Add a new permission rule with the following values:

| **Field**           | **Value**    |
| ------------------- | ------------ |
| **Strategy Config** | Rebac Config |
| **Integration Id**  | `snow`       |
| **Resource Type**   | form         |
| **Action**          | ACTION\_VIEW |

Leave all other fields blank.

**Note:** The **Integration ID** must match the connector you selected in the previous steps. If you followed the instructions exactly, this should be `snow`.

**Key Concept:** While Mirror Permissions is specific to ServiceNow, **Permission Rules** apply across all integrated systems to maintain a consistent security posture. This rule tells Moveworks to use ReBAC to evaluate who can view forms from your ServiceNow connector.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/7c4d2c58d059c982081869bd3ded9545cab18c230c875a10d6c1c4e9a514c24f/docs/assets/images/setup-labs/lab4a_permission_rules_rebac.png)

**Form ingestion and indexing must complete before proceeding.** After saving your permissions configuration, Moveworks will begin ingesting forms and their access controls. This process must finish before forms will appear in `Ingested Forms` or the AI Assistant. Refer to the [Moveworks Ingestion Schedule](/ai-assistant/enterprise-search/indexed-search/moveworks-ingestion-schedule) documentation for expected timelines.

### 1.3: Enable the Forms Plugin

While waiting for ingestion to complete, enable the Forms plugin so the AI Assistant can surface forms to users.

1. Navigate to `AI Assistant > Plugin Management` in **Moveworks Setup**
2. Locate the **Forms** plugin and ensure it is set to **TRUE**

**Note:** Plugin Management controls all built-in plugin capabilities for the AI Assistant. Each plugin accepts a DSL rule to define which users have access. For this lab, leave the DSL rule empty to grant access to all users.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/38856def8b612c17c23f24dcef7d4856e6c93168fbfeb5bf224f2520a41d8673/docs/assets/images/setup-labs/lab4a_plugin_management_forms.png)

**This step is required for forms to work in the AI Assistant.** Even after enabling the plugin, ingestion and indexing must still complete before forms will appear. Do not proceed to verification until ingestion has finished.

***

## ✅ 2: Verification & Next Steps

1. **Ingested Forms Check:** Navigate to `Forms > Import > Imported Forms` in **Moveworks Setup**. After ingestion completes, you should see:
   * **Total forms imported** — the number of forms ingested from both catalogs (e.g., 119)
   * **Fillable forms count** — how many of those forms are fillable in-chat (e.g., 94 / 119)
   * **Last Import / Next Import** — the timestamps showing when the most recent ingestion ran and when the next one is scheduled

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/f9bc5a9d3b69fd0101565d5158b11600e7656baa82778b57458e4f913385789e/docs/assets/images/setup-labs/lab4a_ingested_forms_list.png)

The forms list should include entries from both the Service Catalog and Technical Catalog across many categories. Here are some examples — your full list will be larger:

| **Form Name**           | **Catalog**       | **Category**        | **Fillable?** |
| ----------------------- | ----------------- | ------------------- | ------------- |
| Standard Laptop         | Service Catalog   | Hardware            | Yes           |
| Camtasia                | Service Catalog   | Software            | Yes           |
| Order Office Supplies   | Service Catalog   | Hardware            | Yes           |
| Corp VPN                | Service Catalog   | Security and Access | Yes           |
| VM Provisioning         | Technical Catalog | Services            | Yes           |
| Request VPN Access      | Service Catalog   | Access              | No            |
| Conference Room Booking | Service Catalog   | Access              | No            |
| Badge Access Request    | Service Catalog   | Access              | No            |

2. **Check Fillability:** Search for **Standard Laptop** in the search bar — verify it shows as fillable with no optimization errors.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/d64bc90e82dbacca4eadc66b0e42b9d97ecba4517b79d09c91be9930f6acb3d8/docs/assets/images/setup-labs/lab4a_form_detail_fillable.png)

**Note:** If forms are not appearing, check that your connector is valid ([Lab 1](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f)), the catalogs were selected correctly, and **Fetch Form Access Controls** is enabled in Mirror Permissions.

3. **AI Assistant Check:** Open the Moveworks AI Assistant in your browser and type `"I need a standard laptop"` — Moveworks should surface the "Standard Laptop" form. That's the expected outcome here: **form finding** is working. **Form filling and submission won't complete yet** — you'll wire those up by configuring ticketing in [Lab 5](/ai-assistant/getting-started/labs/moveworks-setup/lab-5-ticketing-core-fd612bf27c8a9dfd), which explains the split in its "Revisiting Lab 4a" section.

**Next:**

* If you want hands-on practice with **advanced forms configuration** (multi-domain HR catalog, fillability overrides, exclusion rules), continue to [Lab #4b — Advanced Forms](/ai-assistant/getting-started/labs/moveworks-setup/lab-4b-advanced-forms-2366b248a64a162d) *(Optional)*.
* Otherwise, jump to [Lab #5 — Ticketing (Core)](/ai-assistant/getting-started/labs/moveworks-setup/lab-5-ticketing-core-fd612bf27c8a9dfd) to wire up the ticket-filing path that makes the forms from Lab #4a actually submittable.

***

## 💡 3: Reflecting on This Configuration

Through this lab, you've learned the following:

* How to configure forms ingestion using catalog sys\_ids
* How to ingest from multiple catalogs (Service Catalog and Technical Catalog) in a single domain
* How to configure mirrored permissions to ingest form access controls from ServiceNow
* How permission rules (ReBAC) ensure the AI Assistant respects source system user criteria
* How to verify ingested forms in **Ingested Forms** and test them through the Moveworks AI Assistant
* That some forms are fillable in-chat while others are not

**Something to think about:** You can now search for and find forms in the AI Assistant — but can you actually *submit* a fillable form end-to-end? Try it. If not, what might be missing?

When you're ready to dive deeper, Lab 4b covers advanced forms configuration — including HR catalogs, record producers, and fillability overrides. We'll open up Lab 4b after **Webinar 3**, where we'll walk through ticketing and concierge together. Stay tuned!

***

## ⚙️ 4: Configuration Details

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

### IT Service Catalog

| **Field Name**                 | **Action / Value to Enter**                                                                                  |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Integration**                | Select your `snow` connector                                                                                 |
| **Domain**                     | `IT`                                                                                                         |
| **Filter Type**                | Default Filter                                                                                               |
| **Catalog IDs**                | `742ce428d7211100f2d224837e61036d` (Technical Catalog), `e0d08b13c3330100c8b837659bba8fb4` (Service Catalog) |
| **Form Requester Field Names** | `requested_for` (auto-populates the requester on submitted forms)                                            |
| **Whitelist sys\_ids**         | Leave empty                                                                                                  |
| **Disallowed Form IDs**        | Leave empty                                                                                                  |