> 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 #0 — ServiceNow Setup (PDI / On-Demand)

## Overview

* **Track:** On-Demand / Self-Paced. Use this page if you are working through the labs on your own time and bringing your own ServiceNow Personal Developer Instance (PDI).
* **Learning Objectives:** Create a ServiceNow Developer account, request a PDI, log in as `admin`, add your work user, set the admin user's timezone to GMT, and capture the `admin` user's `sys_id` for use in Lab 2.
* **Estimated Time:** 20 minutes (plus \~2–5 minutes wait time for instance provisioning)
* **Prerequisites:**
  * An email address you can verify
  * Completed [Lab #0: Setup Lab Environments](/ai-assistant/getting-started/labs/moveworks-setup/lab-0-setup-lab-environments-c7504a812c093d1e) (Moveworks portal access)

**Open ServiceNow in a new browser tab** so you can switch between ServiceNow and Moveworks Setup without losing your session in either.

***

## 🛠️ 1: Walkthrough

### 1.1: Sign Up for a ServiceNow Developer Account

*Goal: Create the developer-program account that owns your PDI.*

1. Go to [https://developer.servicenow.com/](https://developer.servicenow.com/).

2. Click **Sign up and Start Building**.

   ![Sign up and Start Building button on the ServiceNow Developer landing page](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/cce1de186d3a167423685c72d4892c03197463c39f9b3ec053b870057f7c4398/docs/assets/images/setup-labs/lab0pdi_signup_and_start_building.png)

3. **Verify your email** and log in. Select your experience options when prompted (the choices don't affect lab functionality — pick whatever fits).

   ![ServiceNow developer onboarding — experience selection screen 1](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/3157ab0c5692e7da922982023aba5751883195551a410fc03cfe0afbd8c3f9ac/docs/assets/images/setup-labs/lab0pdi_onboarding_screen_1.png)

   ![ServiceNow developer onboarding — experience selection screen 2](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/32f5674532997f63d694ecfa220c6601511358dca2ae30c78fc7ec1ff80ba925/docs/assets/images/setup-labs/lab0pdi_onboarding_screen_2.png)

### 1.2: Request Your Personal Developer Instance

*Goal: Provision a fresh ServiceNow instance you fully control.*

1. Click **Request Instance** at the top of the developer portal.

   ![Request Instance button at the top of the ServiceNow developer portal](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/8777c5e6eb0a4a391c96dced69e8427409ae37f668356657295bc64bad2faff8/docs/assets/images/setup-labs/lab0pdi_request_instance_button.png)

2. **Wait a minute or two** while ServiceNow provisions your instance. Refresh the page periodically to check whether it's ready.

3. Once ready, click **Manage my Instance**.

   ![Manage my Instance button on the provisioned-instance page](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/77a8954337f7a006c4de01de0731c0be5dce3ca0eda64255b56d7d8a9fb16c94/docs/assets/images/setup-labs/lab0pdi_manage_my_instance.png)

4. **🛑 IMPORTANT:** Copy the **Instance URL**, **Admin Username**, and **Admin Password** and **save them somewhere safe** (Notes doc, password manager, or spreadsheet). The auto-generated password is displayed only here — if you lose it, you'll need to reset it from the developer portal.

   ![Instance details panel showing URL, username, and auto-generated admin password](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/4fc3f84c94b8bfb90c7a3162bad25831bd8434dc57ca1f13965b18fe67af63cc/docs/assets/images/setup-labs/lab0pdi_instance_credentials.png)

PDIs auto-hibernate after \~10 days of inactivity. If your instance is asleep when you return, wake it up from **Manage > Instances** in the developer portal and wait \~2 minutes before logging in again.

### 1.3: Log In to Your Instance

*Goal: Confirm `admin` access before configuring users.*

1. Open your instance URL (`https://dev######.service-now.com`) — you can click the hyperlinked URL from the Manage Instance page.

2. Sign in with username `admin` and the password you saved in the previous step.

### 1.4: Add Your Personal User

*Goal: Create a personal user record that represents you (separate from the `admin` service account).*

1. Once logged in, go to **User Administration → Users**.

   * You can find it by searching for "**Users**" in the All menu (top-left filter) and scrolling to the **User Administration** section.

   ![User Administration menu showing the Users option in ServiceNow](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/51d9cec66b6f6c60d8744d806e771562d637b8344ab3f1a91f4f0adcabf69c84/docs/assets/images/setup-labs/lab0pdi_user_administration_menu.png)

2. **🛑 IMPORTANT:** Add a new user with your email address. **This is your personal user account** — separate from the `admin` service account.

   **Working in a group?** If you are sharing this PDI with one or more teammates, repeat this step for every teammate assigned to the same lab environment.

   ![New User form in ServiceNow with the User ID, email, and name fields populated](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/2397324d5731dc919bdb5f05645f645ca56d2b63065456d91db100fc2dbe328c/docs/assets/images/setup-labs/lab0pdi_add_personal_user.png)

### 1.5: Set the Admin User's Timezone to GMT

*Goal: Normalize the service account's timezone so downstream labs behave consistently.*

**Required for the labs to work correctly.** Some downstream lab steps depend on the `admin` user's timezone being set to GMT. Skipping this step will cause confusing time-related issues later.

1. Still in **User Administration → Users**, open the user record where **User ID = `admin`** (this is the ServiceNow service account, **not** the personal user you just created).

2. Change the **Time zone** field to `GMT`.

3. Save the record.

   ![Admin user record with the Time zone field set to GMT](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/db68c1bb32a5295d44ec9ee39c5be692fcbbf6359e71bc5de499a5138de95459/docs/assets/images/setup-labs/lab0pdi_admin_timezone_gmt.png)

### 1.6: Copy the Admin `sys_id`

*Goal: Capture the canonical identifier you'll paste into Lab 2.*

You need the `admin` user's 32-character `sys_id` for **Lab 2 (User Identity & Service Account Setup)**, where it's used to identify the ServiceNow account Moveworks impersonates when calling into your instance. You're already inside the `admin` user record from the previous step, so it's the right moment to grab it.

There are three ways to copy the value — use whichever works for you.

**Make sure you're copying the `sys_id` for the `admin` system account, not your personal user.**

**Don't want to use the `admin` account?** Real-world implementations typically use a dedicated Moveworks **service account** with scoped permissions instead of the built-in `admin` account. If your organization's security policies don't allow `admin` to be used for integrations, create a separate service account following the [ServiceNow Access Requirements](https://docs.moveworks.com/service-management/access-requirements/ticketing-systems-and-itsms/servicenow-access-requirements) and capture **that** account's `sys_id` instead. For PDI / lab purposes, using `admin` is the simplest path.

**Option A — Hamburger menu**
Open the `admin` user record. Click the hamburger menu (three lines, top-left of the form) → **Copy sys\_id**.

![Hamburger menu on the admin user record showing the Copy sys\_id option](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/7435c171f3d7c029f71377cac4229b1888bf2efa7c8a687a3cceb1b50ebe2613/docs/assets/images/setup-labs/lab0pdi_copy_sysid_hamburger.png)

**Option B — Right-click on the form header**
Open the `admin` user record. Right-click on the gray header bar of the form → **Copy sys\_id**.

![Right-click context menu on the admin record form header showing Copy sys\_id](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/98a962d633264eb2724324fda468317bb105ffaa36e69e1a4351c2de4184d6bb/docs/assets/images/setup-labs/lab0pdi_copy_sysid_rightclick.png)

**Option C — Pull it from the URL**
With the `admin` record open, the URL contains the `sys_id`:

```
https://{instance}.service-now.com/now/nav/ui/classic/params/target/sys_user.do%3Fsys_id%3D{sys_id}
```

**Do NOT include the `3D` prefix.** The URL contains `sys_id%3D` — the `%3D` is a URL-encoded equals sign and is **not part of the sys\_id**. The `sys_id` is a 32-character hex string that starts immediately after `%3D`, e.g., `ed65ebcf8372e690cbcdc396feaad380` — **not** `3Ded65ebcf8372e690cbcdc396feaad380`.

***

## ✅ 2: Verification & Next Steps

You should now have:

* A working ServiceNow PDI with admin access (URL + auto-generated admin password saved to your notes)
* Your personal user added to ServiceNow with your email address
* The `admin` user's timezone set to `GMT`
* The `admin` account's 32-character `sys_id` saved to your notes

**Next:** [Lab #1 — Connectors & API Playground](/ai-assistant/getting-started/labs/moveworks-setup/lab-1-connectors-api-playground-4229833d14141f6f) — start configuring the Moveworks ↔ ServiceNow connection.

***

## ❗ 3: Troubleshooting

**My PDI is hibernating / I can't sign in.**
Go to [developer.servicenow.com](https://developer.servicenow.com/) → **Manage > Instances**. If your instance shows as Hibernating, click **Wake Up Instance**. Wait \~2 minutes, then refresh your instance URL.

**I lost my admin password.**
Go to **Manage > Instances > Your Instance > Reset Password** in the developer portal. A new auto-generated password will be issued.

**Request Instance is greyed out.**
Make sure your ServiceNow Developer account is verified (check the email you registered with). If you've recently released a previous PDI, there can be a short cooldown before you can request a new one.

**The Copy sys\_id option doesn't appear.**
Try Option B (right-click the gray form header) or Option C (extract from the URL). The hamburger menu option can vary depending on which ServiceNow UI version your PDI was provisioned with.

***

## 🪞 4: Reflecting on This Configuration

Through this guide, you've learned the following:

* A **PDI (Personal Developer Instance)** is a free, isolated ServiceNow sandbox provisioned by the developer program — ideal for self-paced learning and experimentation without affecting any production environment.
* ServiceNow distinguishes between **service accounts** (e.g., `admin`) used for system-to-system integration and **personal user accounts** used to represent real end users. Both are needed for the Moveworks ↔ ServiceNow integration to work end-to-end.
* The **`sys_id`** is ServiceNow's universal 32-character record identifier — it appears throughout the platform (URLs, REST API calls, scripts) as the canonical way to reference any record, including users.
* Setting the `admin` user's **timezone to GMT** keeps audit timestamps and scheduled-job behavior consistent across the labs.

***

## ⚙️ 5: Configuration Details

Use the table below to fill in the required fields accurately. Save these values to your notes — you will reference them throughout the rest of the labs.

| **Variable**       | **Description**                                    | **Value**                                  |
| ------------------ | -------------------------------------------------- | ------------------------------------------ |
| **Instance URL**   | `https://devXXXXX.service-now.com`                 | \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ |
| **Admin Username** | The service account ID                             | `admin`                                    |
| **Admin Password** | The auto-generated password from the PDI dashboard | \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ |
| **Admin `sys_id`** | 32-character unique identifier                     | \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ |
| **Admin Timezone** | Must be set to GMT                                 | \[ ] Confirmed                             |
| **Personal User**  | Your email record created                          | \[ ] Created                               |