Search Knowledge Base by Keyword
ServiceNow
Overview
ServiceNow is a cloud platform that enterprises use to run IT service management and to hold their configuration management database (CMDB). It is where incidents, requests and changes are logged, where hardware and software assets are tracked through their lifecycle, and where the organizational reference data that surrounds those assets lives: people, groups, departments, cost centers, companies and locations. Most enterprises treat ServiceNow as the system of record for “what IT owns and who owns it.”
The ReadyWorks Service Now connector reads that record. It authenticates against the ServiceNow REST Table API on a customer instance and pulls whole tables into ReadyWorks staging tables, one job per source table. The twelve shipped inbound job templates cover devices (hardware assets, configuration items, models, model categories, depreciation), users (users, user groups), and the organizational reference data that gives those records meaning (locations, companies, departments, cost centers, phone territories).
NOTE: The connector description names Device, User and Service Request data. No service request template ships with the connector. Build a service request job by hand against /api/now/table/sc_request or /api/now/table/sc_req_item if you need it.
Once staged, that data joins the ReadyWorks data fabric, where it is normalized against every other connected source. In practice this is what lets ReadyWorks answer questions ServiceNow alone cannot: reconciling the CMDB against what discovery tools actually see on the network, attaching application context to an asset before a refresh wave, or resolving a device to a named owner in a department with a cost center attached.
The connector is bidirectional. Outbound job fields are enabled, so jobs can be built to write back to ServiceNow, for example to raise a request or update a configuration item as a wave progresses. No outbound job templates ship with the connector, so outbound jobs are built by hand.
NOTE: Every inbound job template ships with Enabled set to No. Activate the jobs you need after you create the connection.
Connector Properties
| Property | Value |
|---|---|
| Identifier | SNOW |
| Name | Service Now (SNOW) |
| Description | Connector for pulling Device, User, and Service Request data from ServiceNow |
| Job Types | Both Inbound and Outbound |
| Order | 110 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | No |
| Windows Only | No |
| Connector Version | 2025-11-18 |
| Hooks | None |
| Additional Job Fields | None |
| Image |
Authentication Methods
Two methods ship with this connector. Both are enabled and both are marked as default.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| Username and Password | SNOW_user |
JSON Rest API_user |
json_rest_api.php |
10 | Yes | 5 |
| Certificate-based authentication | SNOW_140794063e |
SNOW_140794063e |
json_rest_api.php |
20 | Yes | 7 |
Method 1: Username and Password (SNOW_user)
Connect to a Service Now connector with a username and password
Basic authentication. ReadyWorks sends the ServiceNow username and password as a Base64-encoded Authorization: Basic header on every call. There is no separate token exchange, so the credential is presented on each request.
Connection Configuration Fields (5)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 40 | Username | text | No | 1024 | Enter username of the Connection | |
| 50 | Password | password | No | 64000 | Enter password of the Connection | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Authorization: Basic |
%user_name%:%user_pass% |
On |
cURL options, applied to both the authentication call and the data calls:
| Option | Value |
|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
SSL_VERIFYHOST |
false |
SSL_VERIFYPEER |
false |
RETURNTRANSFER |
true |
FOLLOWLOCATION |
true |
FAILONERROR |
true |
Method 2: Certificate-Based Authentication (SNOW_140794063e)
Connect to a Service Now connector using a certificate based authentication
An alternative for instances that do not permit basic authentication. Instead of a username and password, the connection stores a Service Id, a Mac Id and a Mac Key, all masked. The single stored header is >JwtType: snow, which selects the ServiceNow JWT handling in the driver; the three stored values are consumed by that handler rather than sent directly. This method also takes an explicit target host and port rather than a single API domain.
Connection Configuration Fields (7)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | Target Host | text | Yes | 255 | Enter API target host of the Connection | |
| 20 | Target Port | text | Yes | 443 |
5 | Enter port number of the source server |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 60 | Service Id | password | No | 64000 | Enter Service Id of the Connection | |
| 70 | Mac Id | password | No | 64000 | Enter the Mac Id of the Connection | |
| 80 | Mac Key | password | No | 64000 | Enter the Mac Key of the Connection | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
NOTE: Target Port is validated against [0-9]{1,5}. The message shown on a bad value is “Ports must be a number below 65536.”
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
>JwtType |
snow |
Off |
cURL options, applied to both the authentication call and the data calls:
| Option | Value |
|---|---|
SSL_VERIFYHOST |
false |
SSL_VERIFYPEER |
false |
RETURNTRANSFER |
true |
FOLLOWLOCATION |
true |
FAILONERROR |
true |
Inbound Job Fields Enabled (44)
These are the settings the job editor shows when you create or edit an inbound job on a Service Now connection.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 20 | Job Schedule | lookup | Yes | Daily | Select frequency Job should run |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 40 | Use Unparsed Data | radio | No | No | Choose if you wish to parse the incoming data, or leave it in its raw format |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 70 | Destination Table | text | Yes | Enter name of the destination table | |
| 80 | Data Identity | text | No | Enter identity of the Job | |
| 120 | Append New Data to Existing Tables | radio | No | No | Choose if new data will append to the existing destination table, or will create a new destination table |
| 130 | Fields to Index | text | No | Enter fields to index | |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 220 | Raw JSON Body Data | textarea | No | Enter the raw JSON body to send. Do not use body selections in the API Parameters if this is used. | |
| 230 | API Return Data Node | text | No | Enter API return data node of the Job | |
| 250 | Pagination Type | select | No | None | Select request paging type of the Job |
| 270 | API Pagination Node | text | No | Enter API pagination node of the Job | |
| 280 | Pagination Offset Start | text | No | Enter request paging offset start of the Job | |
| 290 | Pagination Limit | text | No | Enter pagination limit of the Job | |
| 300 | Pagination Termination Node | text | No | Enter request paging termination node and value of the Job | |
| 310 | Maximum API Calls | text | No | Enter maximum number of API calls for the Job to make | |
| 320 | Enumeration 1 Type | select | No | None | Enter enumeration level 1 type |
| 330 | Enumeration 1 ETL Job | lookup | No | Select ETL job for the enumeration values | |
| 340 | Enumeration 1 Data Type | data_type | No | Select the data type and fields for enumeration 1 values | |
| 350 | Enumeration 1 Keys End Point | text | No | Enter enumeration 1 keys end point of the Job | |
| 360 | Enumeration 1 Node | text | No | Enter enumeration 1 node of the Job | |
| 370 | Enumeration 1 Fields | fields_list | No | Enter enumeration 1 fields of the Job | |
| 380 | Enumeration 2 Type | select | No | None | Enter enumeration level 2 type |
| 390 | Enumeration 2 ETL Job | lookup | No | Select ETL job for the enumeration 2 values | |
| 400 | Enumeration 2 Data Type | data_type | No | Select the data type and fields for enumeration 2 values | |
| 410 | Enumeration 2 Keys End Point | text | No | Enter enumeration 2 keys end point of the Job | |
| 420 | Enumeration 2 Node | text | No | Enter enumeration 2 node of the Job | |
| 430 | Enumeration 2 Fields | fields_list | No | Enter enumeration 2 fields of the Job | |
| 440 | Enumeration 3 Type | select | No | None | Enter enumeration level 3 type |
| 450 | Enumeration 3 ETL Job | lookup | No | Select ETL job for the enumeration 3 values | |
| 460 | Enumeration 3 Data Type | data_type | No | Select the data type and fields for enumeration 3 values | |
| 470 | Enumeration 3 Keys End Point | text | No | Enter enumeration 3 keys end point of the Job | |
| 480 | Enumeration 3 Node | text | No | Enter enumeration 3 node of the Job | |
| 490 | Enumeration 3 Fields | fields_list | No | Enter enumeration 3 fields of the Job | |
| 500 | Pause Enumeration | text | No | Enter values for pausing enumeration every X calls for Y seconds | |
| 510 | Kill Enumeration on Error | radio | No | No | Choose to stop the enumeration loop on an error or continue processing the loop |
| 520 | Additional Fields | fields_list | No | Enter list of additional fields to add to staging data | |
| 550 | Retry Pause | text | No | Enter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds. | |
| 560 | Order | text | Yes | Enter order of the Job |
Inbound Job Templates (12)
Every template calls the ServiceNow REST Table API at /api/now/table/<table> with a GET, reads the response from the result node, and writes to a ReadyWorks staging table named after the source table. All twelve ship disabled, on the Daily schedule, with pagination and enumeration off.
| # | Job Description | ServiceNow Table | Destination Table | Indexed Fields | What It Pulls |
|---|---|---|---|---|---|
| 1 | Location | cmn_location |
snow_cmn_location |
sys_id |
Sites, buildings, floors and other physical locations used to place people and assets. |
| 2 | Company | core_company |
snow_core_company |
sys_id |
Companies known to the instance: the customer’s own legal entities, vendors, manufacturers and partners. |
| 3 | Phone Territory | sys_phone_territory |
snow_sys_phone_territory |
sys_id |
Telephone territory and dialing-plan reference data used to normalize contact numbers. |
| 4 | User | sys_user |
snow_sys_user |
sys_id, active, sys_class_name, email |
The people record: names, email, employee number, manager, department, location and active status. The backbone of device-to-owner resolution. |
| 5 | User Group | sys_user_group |
snow_sys_user_group |
sys_id |
Groups used for assignment, approval and notification, with their managers and parent groups. |
| 6 | Device | alm_hardware |
snow_alm_hardware |
sys_id, asset_tag, serial_number |
The hardware asset register: asset tag, serial number, model, cost, assigned user, location and lifecycle state. |
| 7 | CMDB Configuration | cmdb_ci |
snow_cmdb_ci |
sys_id, asset_tag, fqdn, install_status, sys_class_name |
The base configuration item table, covering every CI class in the CMDB. Carries FQDN, install status and the CI class name that identifies what each record actually is. |
| 8 | Depreciation | cmdb_depreciation |
snow_cmdb_depreciation |
sys_id |
Depreciation schedules and methods applied to assets, used for cost and lifecycle reporting. |
| 9 | Device Model | cmdb_model |
snow_cmdb_model |
sys_id |
The product model catalog: manufacturer, model number, display name and specifications. |
| 10 | Device Model Category | cmdb_model_category |
snow_cmdb_model_category |
sys_id |
Categories that group models, for example laptop, desktop, monitor or server. |
| 11 | Cost Center | cmn_cost_center |
snow_cmn_cost_center |
sys_id |
Cost centers with their codes, managers and account numbers, used to attribute asset and program cost. |
| 12 | Department | cmn_department |
snow_cmn_department |
sys_id |
The department hierarchy, with department heads and their parent companies. |
Job Template Configuration
The twelve templates differ only in job description, destination table, data identity, API end point and indexed fields. Every other setting is identical.
Settings Common to All Twelve Templates
| Setting | Value |
|---|---|
| Job Schedule | Daily (15 1 * * *) |
| Enabled | No |
| Order | 10 |
| Allow Empty Table | Yes |
| Append Files to Same Destination Table | No |
| Append New Data to Existing Tables | No |
| Use Unparsed Data | No |
| Convert UUID-Keyed Objects to Rows | No |
| Ignore XML Attributes | No |
| Log Raw API Calls | No |
| Method Type | GET |
| Body Data Sending Method | JSON Encoded Data |
| API Return Data Node | result |
| Pagination Type | None |
| Enumeration 1/2/3 Type | None |
Settings That Vary by Template
| Template | ID | Destination Table | Data Identity | API End Point | Fields to Index |
|---|---|---|---|---|---|
| Location | 171 | snow_cmn_location |
snow_cmn_location |
/api/now/table/cmn_location |
sys_id |
| Company | 172 | snow_core_company |
snow_core_company |
/api/now/table/core_company |
sys_id |
| Phone Territory | 173 | snow_sys_phone_territory |
snow_sys_phone_territory |
/api/now/table/sys_phone_territory |
sys_id |
| User | 174 | snow_sys_user |
snow_sys_user |
/api/now/table/sys_user |
sys_id, active, sys_class_name, email |
| User Group | 175 | snow_sys_user_group |
snow_sys_user_group |
/api/now/table/sys_user_group |
sys_id |
| Device | 176 | snow_alm_hardware |
snow_alm_hardware |
/api/now/table/alm_hardware |
sys_id, asset_tag, serial_number |
| CMDB Configuration | 177 | snow_cmdb_ci |
snow_cmdb_ci |
/api/now/table/cmdb_ci |
sys_id, asset_tag, fqdn, install_status, sys_class_name |
| Depreciation | 178 | snow_cmdb_depreciation |
snow_cmdb_depreciation |
/api/now/table/cmdb_depreciation |
sys_id |
| Device Model | 179 | snow_cmdb_model |
snow_cmdb_model |
/api/now/table/cmdb_model |
sys_id |
| Device Model Category | 180 | snow_cmdb_model_category |
snow_cmdb_model_category |
/api/now/table/cmdb_model_category |
sys_id |
| Cost Center | 181 | snow_cmn_cost_center |
snow_cmn_cost_center |
/api/now/table/cmn_cost_center |
sys_id |
| Department | 182 | snow_cmn_department |
snow_cmn_department |
/api/now/table/cmn_department |
sys_id |
NOTE: Pagination ships off on all twelve templates. The ServiceNow Table API caps a single response, so on a large instance set Pagination Type to Records and populate Pagination Offset Start and Pagination Limit on the User, Device and CMDB Configuration jobs to retrieve the full table.
Outbound Job Fields Enabled (13)
Service Now is a bidirectional connector, so the outbound job editor is available on any Service Now connection.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 180 | Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the outbound data |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 260 | Return Data Fields List | fields_list | Yes | Enter return data fields of the Job | |
| 530 | Outbound Fields List | fields_list | Yes | Enter outbound fields of the Job | |
| 540 | Ignore Empty Outbound Fields | radio | No | Yes | Ignore, and do not include, any outbound fields that are empty and have no data |
| 550 | Raw JSON Outbound Template | textarea | No | Enter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields. | |
| 560 | Order | text | Yes | Enter order of the Job |
Outbound Job Templates (0)
No outbound job templates ship with this connector. Build outbound jobs by hand on the Outbound Jobs tab of an active connection, using the fields above. A typical outbound job posts to /api/now/table/<table> with Method Type set to POST to create a record, or to PATCH against /api/now/table/<table>/<sys_id> to update one.
