> 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 #5: Ticketing (Core)

## Overview

* **Learning Objectives:** How to configure, modify, validate, and test ServiceNow IT Ticketing within Moveworks
* **Estimated Time:** 45 minutes
* **Prerequisites:**
  * [Lab 1](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f) complete (snow connector configured)
  * [Lab 2](/ai-assistant/getting-started/labs/moveworks-setup/lab-2-user-identity-service-account-300eacfcba9e6007) complete (users ingested into Moveworks)
  * ServiceNow IT ticketing endpoint access (incident, sc\_request, sc\_req\_item)

***

### Key Concepts

Moveworks manages the full lifecycle of a ticket, from creation to resolution. The core ticketing configuration involves:

* **Table Mappings:** The configuration that tells Moveworks which tables to interact with (e.g., `incident` for breaks/fixes or `sc_req_item` for requests).
* **Routing Conditions:** Logic that directs a user's request to a specific workflow (e.g., routing a "Concierge" intent to a standard ticket generation flow).
* **Table Actions:** The specific capabilities enabled for the Moveworks AI Assistant, such as the ability to "Query" (look up), "Update" (add comments), or "Resolve" a ticket.
* **Service Portal URL:** The base web address of your ITSM portal. Moveworks appends ticket IDs to this URL to provide users with direct "View in Portal" links.

**Relevant Documentation:**

* [Moveworks Help: Concierge & Ticketing Capabilities Overview](https://help.moveworks.com/service-management/concierge-assistant)
* [Moveworks Help: Configuring Ticketing for ServiceNow](https://help.moveworks.com/service-management/concierge-assistant/moveworks-setup-ticketing/new-ticketing-journeyconfigure-ticketing-for-servicenow)
* [Moveworks Help: Ticket Data Object](https://help.moveworks.com/service-management/core-platform/moveworks-data-objects#ticket)
* [Moveworks Help: Handoff Overview](https://help.moveworks.com/service-management/live-agent-handoff-assistant)

***

## 🛠️ 1: Walkthrough

**Save after every change.** Moveworks Setup does not auto-save. Any time you add or modify a field on a page, you must explicitly click **`Save`** before navigating away — otherwise your changes will be lost. This is the most common mistake in this lab. Save reminders are highlighted throughout the steps below.

### 1.1: Initial Setup

1. Navigate to **`Ticketing > Ticketing Configuration > New ticketing configuration`**

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/07185839099a8a08e802de50c899ae7d1460367a00b4a9f6b49e9da0f65724a3/docs/assets/images/setup-labs/lab5_29472106-ea98-4af3-8a57-c8ae713237d5_setup_new_ticketing.png)

2. Click **`Get Started`**

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

3. Select **`ServiceNow`** as the source system

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

4. Start by selecting the **`Connector Selection`**

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/2af6673203858063c6ce0b7b09f49810ec8b38e9dbf135706a07ed64cb814d71/docs/assets/images/setup-labs/lab5_6fa95469-9612-4a25-ba03-20a631abcf81_start_connector.png)

5. Select **`snow`** as the **`connector`** & **`primary system`**

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/da4cab6c0478ad366e862f487584097f6492ef2ccc142f87c94a679165e03ca5/docs/assets/images/setup-labs/lab5_715e4f89-68d6-4085-a36e-9597a86825f3_ticketing_connector_primary_system.png)

6. Give your configuration a name

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/65e133524feae8f0357aec11c1258e10991de28d7c0be3dd9ab63e60d6f0f310/docs/assets/images/setup-labs/lab5_2c703c12-6a33-4e57-9c3f-53bf1de751f7_image.png)

   **Save your configuration name** before continuing.

7. Click the `Back` button in bottom left hand side, and click the **`Setup Defaults`** button at the top of the page to establish the pre-configured ticketing types.

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/1229b84d6af899f84a5a4f657d5a90370e826694e38e55eee9be118db180d3a7/docs/assets/images/setup-labs/lab5_25bb3952-2898-41ab-b937-b7c140052f4d_ticketing_setup_defaults.png)

8. Navigate to the newly generated **`Table mappings`** page

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/cd9008c2ca434843392cfd8a7d09fc71b9913c8a7c2796725cb1235225850334/docs/assets/images/setup-labs/lab5_3321ef40-a974-4081-a469-7579ec2b822c_table_mapping_nav.png)

9. By default, Moveworks will be integrated with the following tables within a ServiceNow instance. Select the **`Incident`** table by clicking the UI box:

   **Note:** Each ticket destination (table) will include a note at the bottom about what functionality is configured. For Incidents, we can see that the following functionality comes pre-configured:

   * **Query:** Allows requestors to search for their existing tickets
   * **Create:** Enables requestors to initiate new tickets
   * **Update:** Permits requestors to add comments to active tickets
   * **Resolve:** Grants requestors the ability to close their own tickets

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/826f92b16fa79e501ba2fcf44018f2d2d9e999291739780380564c1278687f68/docs/assets/images/setup-labs/lab5_2cf557a5-de32-4150-a957-f5adcfcf1f5e_ticketing_incident_table.png)

10. After clicking into the Incident section, we will see the table definition.

    | Field Name            | Use                                                                                                                                  |
    | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
    | Table Name            | Table name within the Moveworks UI                                                                                                   |
    | Table Label           | Name of the table in the integrated ITSM                                                                                             |
    | Domain                | The associated enterprise domain that the ticket falls under (IT, HR, Finance, etc)                                                  |
    | Ticket Type           | The ticket type within Moveworks (Mirrors ServiceNow: Incident, Request, Request Item, Task, etc)                                    |
    | Prefix ID             | Matches to the prefix within the target system (INC, REQ, RITM, etc)                                                                 |
    | Requestor Column Name | The associated ticket metadata field that represents the user who opened the ticket. often `caller_id`, `requested_for`, `opened_by` |

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/4c2ba2efac3aecb87b2e145eeec135ca0d7db6ba370afe1ffcdadf4af942bbdc/docs/assets/images/setup-labs/lab5_2fd68598-0926-4da0-a496-ca02bb3f48c0_ticketing_incident_define_table_view.png)

11. Navigate to the **`Query`** page and review the **`States Configuration`**

    **Note:** The default State mappings within Moveworks will map to the defaults in the ServiceNow PDI environment. When integrating with a live environment, always ensure that you check the additional states in the source ITSM, and map any outstanding states into Moveworks.

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/d9efb9551baf6a12f1b626c4be163c3f9c2e7bdc82500fa64b60c77db22a80c6/docs/assets/images/setup-labs/lab5_4900e020-d308-49db-aa5e-8f06057dae07_ticketing_state_mappings.png)

12. Next, we will add **`custom_data`** fields to the **`Query`** mapping.

***

**Note:** When instantiating ticketing for an organization, the configuration will start with a list of default fields. If the client requires us to operate on fields that do not exist out of the box, we can add additional fields as `custom_data`. These can then be leveraged as reference values for downstream ticketing workflows.

13. Based on our requirements, we will add the following **`custom_data`** fields to the **`Query`** ticket mapping:

    ```
    "custom_data.u_environment": "$TRIM($TEXT((u_environment).value OR ''))",
    "custom_data.u_vip_support": "$TRIM($TEXT((u_is_vip).value OR ''))",
    ```

    **Note:** In the **`Query`** configuration, all fields on the **left** are the Moveworks defined fields, while all fields on the **right** are the field name from the source system.
    Reference the [Ticket Data Object](https://help.moveworks.com/service-management/core-platform/moveworks-data-objects#ticket) page on the Moveworks Help Site to understand all of the fields available on the Moveworks Ticket object by default.

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/91bc34980b33611ae05cbe2314b76294b2a2ce4e5567cedde59dd4271846cfa4/docs/assets/images/setup-labs/lab5_b5c40f46-1a6f-41c5-98c2-88eadc798f54_add_custom_data.png)

**Save your Query mapping** before continuing.

14. Scroll down to the **`Input fields in Mapper`** section and add the **`u_environment`** and **`u_is_vip`** fields

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/83f286790e9d4e97e678b17d0ea38e1d9d16a74b4e4de0bb3360d83a5bee828f/docs/assets/images/setup-labs/lab5_931edfb0-3eef-4855-922b-cbcd919b78ae_add_u_fields_to_input_mapper.png)

**Save your Input fields** before continuing.

15. Add one of the **`custom_data`** fields as a default value that will be populated when Moveworks **`Creates`** an **`Incident`** ticket within **`ServiceNow`**

    1. Select **`Create`** and add the field **`u_environment`** with the value **`prod`**, as shown below:
       * `"u_environment": "\"prod\""`

    **Note:** When configuring **WRITE** tables (Create, Update, Resolve, Reopen), the formatting tells Moveworks whether to use a fixed value or a variable you've already defined in your query configuration.

    ### **1. Using Moveworks Variables**

    To use data already stored in the Moveworks "data bank," use a **single pair of quotes**. The "value" on the right must match the "key" you defined in your ingestion script.

    * **Syntax:** `"target_field": "stored_variable"`
    * **Example:** `"assignment_group": "assignment_group"`
      > *In this case, Moveworks looks at your ingestion code, finds the key **`"assignment_group"`**, and pulls the result of that **`$TRIM(...)`** logic.*

    ### **2. Using Static Raw Strings**

    To write a specific piece of text that **isn't** a variable, you must escape the quotes or use single quotes — both are valid in Bender.

    * **Syntax:** `"target_field": "\"Fixed Value\""` or `"target_field": "'Fixed Value'"`
    * **Example:** `"short_description": "\"New Ticket from Moveworks\""` or `"short_description": "'New Ticket from Moveworks'"`

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/75912726f0ec00f42907ca829cc71b780a4b5bd38cb206c6085e3b75ee15f445/docs/assets/images/setup-labs/lab5_b3aaff42-bd44-45f3-b9e3-22f29e42a2d3_create_ticket_payload_update.png)

**Save your Create mapping** before continuing.

16. Next, navigate to the `Resolve` table and update the **`close_code`** field:

    * `"close_code": "\"Resolved by caller\""`

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/eab9c6527b89fed8b767547111083d07c8001d87e50fb491190e5f3cc0b503b9/docs/assets/images/setup-labs/lab5_9b8d94da-dfc7-4bac-a071-77c310e7728f_resolve_update.png)

**Save your Resolve mapping** before continuing.

17. Select **`Next`**, review the Routing & Workflow conditions (no updates needed at this time), then **`Save`**

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/e15dc7f124193c29efba4334b6e031f25ed0ca12cbf4fe6569e6e2a04b3b0a82/docs/assets/images/setup-labs/lab5_0d65ca81-9c5f-4322-bd09-087509f4a2ae_table_mappings_next.png)

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/798c31f5db91b80ad232f1d4186f84d77cafc166feb8e2e9cfc6e1f8ea922a59/docs/assets/images/setup-labs/lab5_51168cb5-d3a4-4d20-b6da-891f01e3290c_routing_and_workflow_save.png)

**Save your Routing & Workflow configuration** before continuing.

18. Navigate to the **`Table Actions`** and confirm that the **`Incident`** ticket type is enabled for Polling and Concierge Updates.

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/6a237066c67a9e2e3f120a7136d014d7730aedc02997c3068fa5df69ca81405a/docs/assets/images/setup-labs/lab5_788f589c-8341-4f62-8e7c-40ae446675e2_navigate_to_table_actions.png)

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/daa92154120a6db458111a3c58007af97389f7deac1dfceb7c1138fda4f6a2c7/docs/assets/images/setup-labs/lab5_4787689a-669d-46b2-b63e-23c893cfc7f7_polling.png)

**Save your Table Actions** before continuing.

19. Ensure that the **`Access Control Strategy`** is set to **`Public to all members`**

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/299508cb1b322c1a0740259db774c5a0087672bf054d75132cffaa8da328cc30/docs/assets/images/setup-labs/lab5_647d5e32-dfbc-44e3-965e-113792a5c417_public_to_all_save.png)

**Save your Access Control configuration** before continuing.

**Note:** We will not need to modify the **Org level settings** for this lab, but you should be aware that these global configurations control the following behaviors across all ticket types:

* **Ingestion Control:** Determines how often Moveworks polls your ITSM (e.g., ServiceNow) for updates and how far back it looks for changes.
* **Notification Window:** Sets "Business Hours" and weekend rules to ensure users aren't pinged by the Assistant at 2:00 AM.
* **Nudge Logic:** Configures the "Inactivity Threshold" - the number of days a ticket sits idle before the Moveworks AI Assistant automatically nudges the assignee.
* **User Display:** Toggles what the employee sees in chat, such as the ticket state, assignee info, or the ability to upload attachments directly through the Moveworks AI Assistant.

20. Navigate to the `Service Portal URL` and create a configuration, leveraging your `snow` connector and your portal URL

    1. This configuration will control the redirect URL when a user clicks a hyperlink to a NOW ticket within Moveworks

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/2f5410cd02c41c03323a146b5b33ee0edf297db73f134e7e9353e0c0883902c5/docs/assets/images/setup-labs/lab5_361000f0-1d92-42d5-991e-c376a02e0174_service_portal_url.png)

    ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/bcfe84d943c3441aa36e23fe056ead1a1a63fbdaa5a2f60236d21008d531e244/docs/assets/images/setup-labs/lab5_3a17965b-517d-4b82-8432-fe964d2d1202_service_portal_config.png)

**Save your Service Portal URL configuration** before continuing.

21. You have completed the Ticketing configuration for Incidents, now file a Ticket with your Moveworks AI Assistant and test all of the functionality to ensure it is working!

***

## 🔄 2: Revisiting Lab 4a — Why Form Submission Failed

### 2.1: Why "I need a standard laptop" didn't complete

At the end of [Lab 4a](/ai-assistant/getting-started/labs/moveworks-setup/lab-4a-basic-forms-aa4e44cd685da10c), you asked the AI Assistant `"I need a standard laptop"`. The Assistant surfaced the **Standard Laptop** form and walked you through filling it in chat — but when you tried to submit, nothing was actually created in ServiceNow.

That's because form handling in Moveworks splits across two capabilities:

1. **Form ingestion** (Lab 4a) makes forms *discoverable and fillable*. Moveworks pulls the catalog items, permissions, and field definitions from ServiceNow so the AI Assistant can ask follow-up questions and render the form in chat.
2. **Ticketing configuration** (this lab) provides the destination tables Moveworks writes to. A form submission creates a **Request Item** (`sc_req_item`) record in ServiceNow, which requires the Request and Request Item tables to be mapped in your ticketing configuration.

Without ticketing configured, the Assistant can collect the inputs — but it has nowhere to post the final payload.

**Relevant Documentation:**

* [Moveworks Help: Forms Integration — ServiceNow](https://docs.moveworks.com/service-management/forms/forms-integration-servicenow) — how form ingestion works and which fields Moveworks supports
* [Moveworks Help: Configuring Ticketing for ServiceNow](https://help.moveworks.com/service-management/concierge-assistant/moveworks-setup-ticketing/new-ticketing-journeyconfigure-ticketing-for-servicenow)

### 2.2: Good news — defaults already covered most of it

When you clicked **`Setup Defaults`** in step 7 of the walkthrough, Moveworks pre-loaded mappings for four ticket types, each with a different set of default actions:

| **Ticket Type** | **Table**     | **Prefix** | **Default Actions**            |
| --------------- | ------------- | ---------- | ------------------------------ |
| Incident        | `incident`    | INC        | Query, Create, Update, Resolve |
| Request         | `sc_request`  | REQ        | Query, Create                  |
| Request Item    | `sc_req_item` | RITM       | Query, Update, Resolve         |
| Task            | `sc_task`     | TASK       | Query, Update                  |

Section 1 walked you through customizing the **Incident** mapping. The other three — **Request**, **Request Item**, and **Task** — are already in place from the defaults. You only need to verify them.

**Why these four tables work together:** When the AI Assistant submits a form, it invokes the **`Create`** action on `sc_request` — this is the parent record (REQ). ServiceNow's own workflows then generate the child line items on `sc_req_item` (RITM) and any fulfillment tasks on `sc_task`. That's why only `sc_request` needs `Create` enabled on the Moveworks side — the RITM and Task records are derived downstream inside ServiceNow.

### 2.3: Verify the Request, Request Item, and Task mappings

1. Navigate to `Ticketing > Table Mappings` in Moveworks Setup.

2. Confirm all four tables — `incident`, `sc_request`, `sc_req_item`, and `sc_task` — appear in the list.

3. Click into **`sc_request`** and verify the default fields:

   | Field                 | Expected Value  |
   | --------------------- | --------------- |
   | Table Name            | `sc_request`    |
   | Ticket Type           | Request         |
   | Prefix ID             | REQ             |
   | Requestor Column Name | `requested_for` |

4. Repeat for **`sc_req_item`**:

   | Field                 | Expected Value          |
   | --------------------- | ----------------------- |
   | Table Name            | `sc_req_item`           |
   | Ticket Type           | Request Item            |
   | Prefix ID             | RITM                    |
   | Requestor Column Name | `request.requested_for` |

5. Repeat for **`sc_task`**:

   | Field                 | Expected Value          |
   | --------------------- | ----------------------- |
   | Table Name            | `sc_task`               |
   | Ticket Type           | Task                    |
   | Prefix ID             | TASK                    |
   | Requestor Column Name | `request.requested_for` |

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

6. Under **Table Actions** for `sc_request`, confirm **`Create`** is enabled. This is the action Moveworks invokes when a form submission completes.

   **Save your Table Mappings** if you made any changes.

### 2.4: Re-test the Lab 4a query

Head back to the Moveworks AI Assistant and type `"I need a standard laptop"` again.

This time the form should fill **and submit** — creating a new RITM in your ServiceNow training instance. Verify it appears under `sc_req_item.list` in ServiceNow.

**Still failing?** If submission errors out, jump to **Section 4: Troubleshooting Triage** below. The most common culprits are missing required fields on `sc_req_item` in your instance — check the **API Logs** to see exactly which field ServiceNow is rejecting.

***

## ✅ 3: Verification & Next Steps

1. **Finalize:** Confirm all configurations are saved
2. **Check Success:** Talk to Moveworks! Confirm you are able to do the following ticket actions:
   1. File

      ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/1cd11caf0ef1c9478944d4da8b3f9090421acf220983f3d65fc385074d302b5c/docs/assets/images/setup-labs/lab5_c6905201-418b-4c8a-b538-a12b7c76cd38_file_ticket.png)

   2. Query

      ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/824fbbbfa790fa50149af2c2aa2c78ea30a87e8a3c288ebfefdd2528b81207b1/docs/assets/images/setup-labs/lab5_ca9a459e-504d-4b85-8a67-2ee85565e528_image.png)

   3. Update (Add Comment)

      ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/89a2ff8decee432af77896914590227ceec19eb64c9996ad1a957c2203abbbfc/docs/assets/images/setup-labs/lab5_8b873f6c-0bb9-4768-8071-5a0d4196b471_ticket_add_comment.png)

   4. Resolve/Close

      ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/397753dd0a4cd6cec3ac1f8beb61e6b05744294f94772dc4db048b9469ad863e/docs/assets/images/setup-labs/lab5_59924054-6d93-417b-91f5-c38419ee038d_image.png)

   5. Reopen

      ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/4133173bc1d8e24b042d1236c29b6baebbca5fe2c3e81b83d37a02f86ca4d34c/docs/assets/images/setup-labs/lab5_76d2ffa1-2424-4c3c-a790-49a323f36e11_image.png)

**Next:**

* If you want to learn how to use **Moveworks Data Syntax Language (DSL)** to write rules that filter and shape data, continue to [Lab #6a — Data Syntax Language (DSL)](/ai-assistant/getting-started/labs/moveworks-setup/lab-6a-data-syntax-language-dsl-a50190447f3d06ad) *(Optional)*.
* If you want to learn about **live-agent handoff** instead, jump to [Lab #7 — Handoff: Live Agent](/ai-assistant/getting-started/labs/moveworks-setup/lab-7-handoff-live-agent-fdc6a9b23460d69b) *(Optional)*.
* Otherwise, you've completed the core Moveworks Setup labs.

***

## ❗ 4: Troubleshooting Triage: Why am I unable to Action on a Ticket?

When a user attempts to do a ticketing action within Moveworks, the action may fail if there is a misconfiguration between how Moveworks is creating or updating the ticket, and what the source system expects. We should go through the following troubleshooting flow if we are experiencing issues with ticketing.

### 4.1: Encountering a Ticketing Error — "Failure Identification"

If the Assistant fails in a communication to the ticketing platform, it will state to the end-user that it failed to take the requested action.

The Assistant will often provide a short summary of what the occurring failure mode was. In the following case, we can see that Moveworks failed to create a ticket, and it looks like the issue may be related to a mandatory field not being included in the API request.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/75b47a6f0d22056959602a4153bfd978180b49754cfa74a02b22636b17e175ee/docs/assets/images/setup-labs/lab5_da616f68-45c2-463a-bfc8-23426d5535c8_image.png)

### 4.2: Check the API Logs — "What is Being Sent?"

Within Moveworks Setup, we can check the `API Logs` module to see what Moveworks tried to send to the endpoint system and how it failed.

1. Identify the log that indicates the error. You can search by the requesting user, trace id, method, or plugin

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/b36b58ee814557a9afcf5c43c8eb977a427d0d67d1af1928fb69dbdfd55c3e2a/docs/assets/images/setup-labs/lab5_b6cff0ad-9c6b-4261-a0ec-0b88b47b1e4b_api_logs.png)

2. Analyze the error message. In this case we can see that our request payload is missing `short_description`, and the ServiceNow instance is stating that it is a required field

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/325f52544b8399a3370d4e9fadc257749daa8fa92350cd8db718680f3bc48a7a/docs/assets/images/setup-labs/lab5_d476abc6-2992-4e77-8f46-0cbab53e19df_image.png)

### 4.3: Constructing the Proper Payload in API Playground — "Solutioning"

Within API Playground, we can take the following information from step 2, and reconstruct our payload until we get a success in the system. This may be an iterative process, and we may need to ask our client for more information if we cannot properly resolve some values during this step.

1. Open another Moveworks Setup tab & navigate to API Playground

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/58ff01d928e312b73cee677f54553c8cb2c3c57f9c248f5111dbea9d988d1e48/docs/assets/images/setup-labs/lab5_3b65eab0-ab85-4081-8130-745b66d1c60a_new_setup_tab.png)

2. Copy the `api_url_endpoint` & `request_payload`

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/de03230a0cbb2498881b213b6a8d17263d095c991fd11567f26bb6e13649b324/docs/assets/images/setup-labs/lab5_f196c3db-2e67-4534-b880-e581b0d84497_image.png)

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/61af1bd0f0bf879036702401ed64e36b4e69d430b36a0a7e0fb7f657ba16e2c1/docs/assets/images/setup-labs/lab5_de5cee6d-4287-4688-be5f-f87161839731_image.png)

3. Plug them into API playground and try creating a new payload & test it to get feedback from the system

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/c8125bf546f3f748aa35786b6c4295add8d7cbd2be0fb049e10c76ef537fbbb9/docs/assets/images/setup-labs/lab5_380239a2-207b-404b-b0ce-837ef26fb870_populate_api_payload.png)

4. Iterate on it until you get a working result

   ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/8d40186abc1f393439a8283ea53f6e3f60aff5a821443921b523216f42790e50/docs/assets/images/setup-labs/lab5_71ace352-6b01-4c42-b9d3-111cbe27976f_image.png)

### 4.4: Updating the Associated Ticket Mapping — "The Fix"

Now that we understand the problem and have a working solution, we can navigate to the segment of our ticketing configuration that was causing the issue, add our fix, save it, and validate the Assistant is now working as expected.

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/f6ef2ea54d10e596d0847b05ff0a64386f53d99299d1b82fc46b7be6d78e19ef/docs/assets/images/setup-labs/lab5_a7f6125a-50cf-4aad-88e4-6e678ab4b55b_image.png)

![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/3d6dcf595fcbd639b461bee1e7656b4bbd6d1711c0a6cf7673a37762f0da57bd/docs/assets/images/setup-labs/lab5_1782c83a-9546-4314-b2d7-7f643c9e3180_image.png)

### 4.5: Check the Moveworks Status Page

Validate that there have been no broader issues reported by the Moveworks team on the [Moveworks Status Page](https://status.moveworks.com/)

### 4.6: Escalate to Moveworks Support

Almost always, Moveworks ticketing issues are caused by a misconfiguration. This is often the Ticketing Configuration is not aligned with what the Source System is expecting. Ensure that you have synced with the ITSM System Administrator and can confirm that API calls to do the given ticketing action are working outside of Moveworks.

If we have validated the following, and are unable to diagnose the root cause, [we can open a ticket with the Moveworks support team](https://docs.moveworks.com/ai-assistant/getting-started/support) and include the following details related to the failure mode we are seeing:

1. The email of the user experiencing the issue
2. The action they are attempting to take
3. How the Moveworks Ticketing Plugin is failing

We always want to provide the Moveworks team with as much information as possible, to accelerate their ability to provide us support.

***

## 🪞 5: Reflecting on This Configuration

Through this guide, you've learned the following:

* How to complete the Ticketing Configuration
* How to add `custom_data` fields to the Ticket Query Mappings
* What ticketing actions Moveworks can take
* How to validate the actions are working as expected
* The thought process to follow when ticketing is not operating as expected

***

## ⚙️ 6: Configuration Details

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

| **Field Name**                                             | **Action / Value to Enter**                                                                                                                                   |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connector Selection**                                    | snow                                                                                                                                                          |
| **Mark System as Primary**                                 | ✅                                                                                                                                                             |
| **API Playground URL**                                     | `/api/now/table/incident?sysparm_query=number%3D[example_inc_number]&sysparm_display_value=all&sysparm_offset=0&sysparm_fields=u_vip_support%2Cu_environment` |
| **Query custom\_data fields**                              | `"custom_data.u_environment": "$TRIM($TEXT((u_environment).value OR ''))",` <br /> `"custom_data.u_vip_support": "$TRIM($TEXT((u_is_vip).value OR ''))",`     |
| **Input fields in Mapper**                                 | u\_environment, u\_is\_vip                                                                                                                                    |
| **Create Field Mapping**                                   | `"u_environment": "\"prod\""`                                                                                                                                 |
| **Access Control: Tables to enable for concierge updates** | Incident                                                                                                                                                      |
| **Access Control: Tables enabled for polling**             | Incident                                                                                                                                                      |
| **Access Control: User access configuration**              | Public to all members                                                                                                                                         |
| **Service Portal URL: Integration Id**                     | snow                                                                                                                                                          |
| **Service Portal URL: Service Portal URL**                 | `https://[your-instance-name].service-now.com/esc`                                                                                                            |