> This page is for Assistant Platform.

> 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 #7: Basic Forms

> **Info**
>
> ## 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 active, plus up to 48 hours for form ingestion
> * **Prerequisites:**
>   * [Lab #6](/ai-assistant/getting-started/labs/moveworks-setup/lab-6-enterprise-search) complete (Mirror Permissions configured)
>   * The **Service Catalog** and **Technical Catalog** in your ServiceNow instance (both ship with ServiceNow)

---

## 🛠️ 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**
>
> Use the connector you created in [Lab #3](/ai-assistant/getting-started/labs/moveworks-setup/lab-3-connectors-api-playground) (`snow`).

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

![](/_fern-files/_img/d74125506bcbe8f834a2b5ebdb78c5557c8047654f347bf2002e12fa63a9a1e9.webp)

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` |

![](/_fern-files/_img/15679a863c785ac1fd0a3bf4a19b47706e75f54a6cbbfde2e7007daad03ed779.webp)

6. **Provide Sample URL Templates:** Enter a form URL template for your ServiceNow instance. The template must include `{form_id}`, which Moveworks replaces with each form's ID. Use this format:

**`text`**

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

![](/_fern-files/_img/b569dd0e2ade25732922bb88befa364602fe678dd41851567d4d2f02c3356840.webp)

7. **Review Samples:** Moveworks shows a preview of the forms it found in your selected catalogs. Confirm the count is greater than zero and that forms from both the Technical Catalog and Service Catalog appear. The exact number varies by instance.

> **Error**
>
> **If no forms appear in the review,** go back and verify the previous wizard steps:
>
> 1. Your `snow` connector is valid and connected ([Lab #3](/ai-assistant/getting-started/labs/moveworks-setup/lab-3-connectors-api-playground))
> 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.

![](/_fern-files/_img/46abaaf731b7178dd447ed256df55f31987622dd79d80b5323e9f1ab130df5b6.webp)

### 1.2: Configure Form Permissions

> **Note**
>
> Lab #6 already configured Mirror Permissions for the `snow` connector. Forms and Enterprise Search share that configuration.

1. In Moveworks Setup, navigate to **Resource Permissions > Mirror Permissions**. The `snow` connector should already be selected from Lab #6.

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 #6)

![](/_fern-files/_img/785aa63fd494c7a8b61bf5fa62ed51ae2f35a8b5433af518137855ac22c937c6.webp)

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

> **Note**
>
> **Without Fetch Form Access Controls enabled, form ingestion doesn't run.** Permissions must be configured before Moveworks can index your catalog items.

4. Navigate to **Resource Permissions > Permission Rules** and add a permission rule with these 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 your connector name (`snow`).

> **Note**
>
> **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.

![](/_fern-files/_img/7c4d2c58d059c982081869bd3ded9545cab18c230c875a10d6c1c4e9a514c24f.webp)

> **Warning**
>
> **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 appear on the **Imported Forms** page or in 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. In Moveworks Setup, navigate to **AI Assistant > Plugin Management**
2. Locate the **Forms** plugin and confirm it is set to `TRUE`

> **Note**
>
> **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.

![](/_fern-files/_img/38856def8b612c17c23f24dcef7d4856e6c93168fbfeb5bf224f2520a41d8673.webp)

> **Warning**
>
> **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:** In Moveworks Setup, navigate to **Forms > Import > Imported Forms** (the page is titled **Ingested forms**). After ingestion completes, you should see:
   * **Total forms imported:** the number of forms ingested from both catalogs (more than 100 on a stock instance)
   * **Fillable forms count:** how many of those forms can be filled in chat
   * **Last Import / Next Import:** when the most recent ingestion ran and when the next one is scheduled

![](/_fern-files/_img/f9bc5a9d3b69fd0101565d5158b11600e7656baa82778b57458e4f913385789e.webp)

The list should include forms from both catalogs across many categories. Some examples (your full list will be longer):

| **Form Name**   | **Catalog**       | **Category**        | **Fillable?** |
| --------------- | ----------------- | ------------------- | ------------- |
| Standard Laptop | Service Catalog   | Hardware            | Yes           |
| Camtasia        | Service Catalog   | Software            | Yes           |
| Corp VPN        | Service Catalog   | Security and Access | Yes           |
| VM Provisioning | Technical Catalog | Services            | Yes           |

2. **Check fillability:** Search for **Standard Laptop** and confirm it shows as fillable with no optimization errors.

![](/_fern-files/_img/d64bc90e82dbacca4eadc66b0e42b9d97ecba4517b79d09c91be9930f6acb3d8.webp)

> **Note**
>
> **Forms not appearing?** Check that your connector is valid ([Lab #3](/ai-assistant/getting-started/labs/moveworks-setup/lab-3-connectors-api-playground)), the catalogs are selected, and **Fetch Form Access Controls** is enabled in Mirror Permissions.

3. **AI Assistant check:** Open the Moveworks AI Assistant and type `I need a standard laptop`. Moveworks should surface the **Standard Laptop** form, which shows **form finding** works. **Submission won't complete yet.** You configure that with ticketing in [Lab #8](/ai-assistant/getting-started/labs/moveworks-setup/lab-8-ticketing-core), which explains why in its "Revisiting Lab #7" section.

> **Success**
>
> **Next:** [Lab #8: Ticketing (Core)](/ai-assistant/getting-started/labs/moveworks-setup/lab-8-ticketing-core)
>
> For multi-domain catalogs, fillability overrides, and exclusion rules, see [Optional Lab: Advanced Forms](/ai-assistant/getting-started/labs/moveworks-setup/optional-advanced-forms).

---

## 🪞 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 on the **Imported Forms** page and test them through the Moveworks AI Assistant
* That some forms can be filled in chat while others can't

---

## ⚙️ 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                                                                                                  |