# Change Request **Sync Type: Incremental** ## Overview The ServiceNow Change Request input fetches data from ServiceNow Table API. ServiceNow uses CMDB (Configuration Management Database) application to build logical representation of assets, Services, and the relationships between them that comprise the infrastructure of your organization. Change requests are creatied to implement a controlled process for modifying approved and supported configuration items (CIs). This input accesess data from change_request table. ## Prerequisites ### Portal setup 1. Login to your ServiceNow Instance. 2. **Navigate to Users** - Click on `All` option and type `Users`. Select Users option from under `System Security > Users and Groups`. 3. **Create a New User** - Fill out the details, most importantly First name, Last name and Email. Click Submit to save the info. - Click on `New` button to add a new User record. 4. **Locate the new user** - Find the newly created user in the users list. - Click on the UserID to open the user record details. 5. **Assign Roles** - In the user record details, a new "Roles" tab will appear at the bottom. - Click on "Edit" under the Roles tab, which will open a new page with all available roles. - For the Table API, you can either add all admin roles for the tables you want to retrieve data from or add the "general" admin role to give access to all tables. - Save the changes. 6. **Set Password** - Return to the user record. - You will see a "Set Password" button next to the update and delete button. - Click the Set Password button, which will open a popup. - Click the "Generate" button inside the popup to create a password, then click "Save Password". 7. **Instance Name** - Note the instance name of the ServiceNow instance for use in later steps. For example, if the URL to your ServiceNow instance is https://test-demo.service-now.com, the instance name will be test-demo. ## OAuth Setup **⚠️ Important:** Before setting up OAuth make sure you have security_admin role. 1. Navigate to **System OAuth** > **Application Registry**. 2. Click New and then click **Create an OAuth API endpoint for external clients**. 3. Enter the name of the client and click the Submit button to generate Client Secret. 4. Once generated note down Client ID and Client Secret. 5. Open the OAuth endpoint record you just created and set the **Scope Restriction** field to **Broadly Scoped**. Monad uses the ServiceNow Table API (`/api/now/table/...`), which is treated as an unscoped (platform) API, so the OAuth client must be allowed to call unscoped APIs. If **Scope Restriction** is left as securely scoped, the connection fails with `access to unscoped api is not allowed`. 6. Make sure the OAuth application user has a role that can read the table you want to ingest. For ITIL tables such as change requests, incidents, and problems this is typically the `itil` role. ## Configuration | Setting | Type | Required | Description | |---------|------|----------|-------------| | Instance name | string | true | Instance name found in URL of your ServiceNow instance | | Client ID | string | true | Client ID of the application created in the Application Registry while setting up OAuth. | | Client Secret | string | true | Client ID of the application created in the Application Registry while setting up OAuth. | | Backfill start time | string | No | The date to start fetching data from. If not specified, no past records will be fetched. | ## Related Articles - [ServiceNow Table API](https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/inbound-rest/concept/c_TableAPI.html) - [ServiceNow OAuth](https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/inbound-rest/task/t_EnableOAuthWithREST.html) - [ServiceNow - CMDB](https://www.servicenow.com/docs/bundle/zurich-servicenow-platform/page/product/configuration-management/concept/c_ITILConfigurationManagement.html) ## Sample Record ```json { "active": "false", "activity_due": "2025-10-10T08:15:18.954Z", "additional_assignee_list": "", "approval": "requested", "approval_history": "", "approval_set": "", "assigned_to": "b5f13943-f08d-6790-3206-1d6edc33d193", "assignment_group": { "link": "https://testxyz.service-now.com/api/now/table/sys_user_group/a9961717-8f11-5b88-be90-a0db279f3f4c", "value": "c4e1c835-5c9b-774c-4797-67e23d3fe32d" }, "backout_plan": "Due to the limited number of commands in the implementation plan it is not possible to backout the change.", "business_duration": "86400", "business_service": "1db71845-562d-abe9-e3c3-756fcfe9eacc", "cab_date_time": "2025-10-10T08:15:18.954Z", "cab_delegate": "Alice Jones", "cab_recommendation": "approved", "cab_required": "false", "calendar_duration": "86400", "category": "Other", "change_plan": "", "chg_model": { "link": "https://testxyz.service-now.com/api/now/table/chg_model/49149e44-c6b7-92b7-f9d0-6d5ece1efc6e", "value": "8a2658ee-5cc2-18fe-b8ba-3f680d5e9ffa" }, "close_code": "unsuccessful", "close_notes": "Completed with minor issues", "closed_at": "2025-10-10T08:15:18.954Z", "closed_by": { "link": "https://testxyz.service-now.com/api/now/table/sys_user/1d1d47d6-f75e-9fba-a2c0-3272f13bf313", "value": "c8469e78-758c-39e8-a32a-c2f10e0b88b3" }, "cmdb_ci": "a7274b2f-4da3-0d83-c453-b96f21027802", "comments": "", "comments_and_work_notes": "", "company": "f6141577-8a98-a77c-2744-679b8460d7c3", "conflict_last_run": "2025-10-10T08:15:18.954Z", "conflict_status": "No Conflict", "contact_type": "email", "contract": "2d6a023d-4acd-31e0-44ed-f928078d0bfa", "copied_from": "c2c65432-5a88-d614-f567-603863867e7a", "correlation_display": "", "correlation_id": "59699ee2-9da8-8c22-7e9b-25d97c4bed10", "delivery_plan": "", "delivery_task": "", "description": "Resend the complete BGP table to neighboring routers", "due_date": "2025-10-10T08:15:18.954Z", "end_date": "2025-10-10T08:15:18.954Z", "escalation": "1", "expected_start": "2025-10-10T08:15:18.954Z", "follow_up": "", "group_list": "", "impact": "3", "implementation_plan": "Place router into maintenance mode in the monitoring platform", "justification": "", "knowledge": "false", "location": "a34dbc5c-9abc-61bd-c985-4267cb7ffaa7", "made_sla": "false", "number": "CHG7594462", "on_hold": "false", "on_hold_reason": "resource_unavailable", "on_hold_task": "", "opened_at": "2025-10-10T08:15:18.954Z", "opened_by": { "link": "https://testxyz.service-now.com/api/now/table/sys_user/e76ee807-d760-4382-5746-b65a8370d4c8", "value": "4e00b852-ffcc-1f24-4f07-fb374eac067b" }, "order": "1", "outside_maintenance_schedule": "false", "parent": "CHG3000003", "phase": "review", "phase_state": "work_in_progress", "priority": "3", "production_system": "true", "reason": "", "reassignment_count": "10", "requested_by": { "link": "https://testxyz.service-now.com/api/now/table/sys_user/5b3919ac-8540-75e9-6d7f-fd813780ae91", "value": "e77ad397-ec02-7acd-bd05-753b355fda3f" }, "requested_by_date": "2025-10-10T08:15:18.954Z", "review_comments": "", "review_date": "2025-10-10T08:15:18.954Z", "review_status": "rejected", "risk": "1", "risk_impact_analysis": "", "route_reason": "", "scope": "3", "service_offering": "971fc9f1-1e4e-b477-0485-51e0aa1aa2fd", "short_description": "Update firewall rules", "sla_due": "2025-10-10T08:15:18.954Z", "start_date": "2025-10-10T08:15:18.954Z", "state": "-5", "std_change_producer_version": { "link": "https://testxyz.service-now.com/api/now/table/std_change_producer_version/44fdfc75-6366-ac35-a472-7fa36efc8f88", "value": "2fbc2308-b963-00b2-6d8d-77bec3db6a09" }, "sys_class_name": "change_request", "sys_created_by": "system", "sys_created_on": "2025-10-10T08:15:18.954Z", "sys_domain": { "link": "https://testxyz.service-now.com/api/now/table/sys_user_group/global", "value": "global" }, "sys_domain_path": "/", "sys_id": "0abf805b-9328-e1dd-54ab-576d5822f281", "sys_mod_count": "6", "sys_tags": "network", "sys_updated_by": "system", "sys_updated_on": "2025-10-10T08:15:18.953Z", "task_effective_number": "CHG7536881", "test_plan": "--Verify system functionality post-change", "time_worked": "3600", "type": "normal", "unauthorized": "true", "universal_request": "", "upon_approval": "do_nothing", "upon_reject": "cancel", "urgency": "2", "user_input": "", "watch_list": "", "work_end": "2025-10-10T08:15:18.954Z", "work_notes": "", "work_notes_list": "", "work_start": "2025-10-10T08:15:18.954Z" } ```