Dashboard Part 8 Full Quiz
✅ Part 8 · All 4 Topics

Part 8 Full Quiz — Integration & Advanced

18 questions (15 topic questions + 3 cross-topic integration) on Table API, IntegrationHub, archiving vs purging, and instance data health. Select an answer to reveal the explanation.

Questions
1 / 18
Score
0 / 18
Answered
0
Progress
Part 8 — Integration & Advanced 1 / 18
🌐 Topic 1 — REST API & Table API
Scenario: A developer calls the ServiceNow Table API to retrieve all open Incident records.

Which HTTP method is used to READ records via the Table API?

💡 Explanation

C is correct. RESTful HTTP methods in Table API: GET = read/retrieve records (single or list); POST = create a new record; PUT = update/replace an entire record; PATCH = partial update (update specific fields only); DELETE = delete a record. For retrieving Incident records, GET is always used. These map directly to CRUD: Create=POST, Read=GET, Update=PUT/PATCH, Delete=DELETE.

🌐 Topic 1 — REST API & Table API
Scenario: A Table API GET request is made with the parameter sysparm_display_value=all.

What does sysparm_display_value=all return in the API response?

💡 Explanation

B is correct. The sysparm_display_value parameter has three options: false (default) = raw values only (sys_ids, internal codes); true = display values only (human-readable labels); all = BOTH raw value and display value for each field as a JSON object: {"value": "a1b2c3...", "display_value": "John Smith"}. Use all when your integration needs both the sys_id (for programmatic use) and the label (for display). ACLs (D) are still enforced regardless of this parameter.

🌐 Topic 1 — REST API & Table API
Scenario: A developer uses Table API to create a new Incident record. The API returns HTTP status code 201.

[TRAP] What does HTTP 201 mean in this context?

💡 Explanation

B is correct. Standard HTTP status codes for REST APIs: 200 OK = successful GET/PUT/PATCH; 201 Created = successful POST (record created); 204 No Content = successful DELETE; 400 Bad Request = client error (bad params); 401 Unauthorized = auth failed; 403 Forbidden = ACL blocked; 404 Not Found = record doesn't exist; 500 Internal Server Error = server-side error. 201 specifically confirms the new record was created successfully.

🌐 Topic 1 — REST API & Table API
Scenario: A developer wants a Table API GET response to include only the "number", "short_description", and "state" fields — not all fields.

Which Table API parameter limits which fields are returned?

💡 Explanation

B is correct. Key Table API sysparm parameters: sysparm_fields = comma-separated field names to include (e.g., number,short_description,state); sysparm_query = GlideRecord-style filter (e.g., state=1^priority=1); sysparm_limit = max records to return (pagination); sysparm_offset = pagination offset; sysparm_display_value = raw vs display values; sysparm_view = use a named view's field set. Specifying sysparm_fields reduces payload size and improves performance.

🔌 Topic 2 — IntegrationHub
Scenario: A team wants to use IntegrationHub to connect ServiceNow with Jira, using pre-built actions for creating and updating Jira issues.

What is an IntegrationHub "Spoke"?

💡 Explanation

B is correct. An IntegrationHub Spoke is a packaged set of pre-built Actions for a specific third-party platform. The Jira Spoke includes actions like "Create Issue," "Update Issue," "Add Comment." Each Spoke requires a separate license (except core HTTP). Spokes abstract away the raw API details — you use high-level actions instead of building raw REST calls. A Mid Server (D) handles on-premise network connectivity but is not a Spoke. A Spoke is a higher-level abstraction built on top of network connectivity.

🔌 Topic 2 — IntegrationHub
Scenario: A developer wants to use IntegrationHub to make a simple HTTP call to a custom REST API that has no dedicated Spoke.

[TRAP] Does using the core HTTP step in IntegrationHub require a licensed Spoke?

💡 Explanation

B is correct. The IntegrationHub core HTTP step (generic outbound REST call) is included with the base IntegrationHub entitlement — no specific Spoke license is needed for it. Spoke licenses (Jira, Slack, ServiceNow-to-ServiceNow, etc.) are required to use those specific pre-built platform Spokes. If you need to call a custom REST API, use the core HTTP step — it's available without additional cost. This distinction is commonly tested to check if candidates understand the IHub licensing model.

🔌 Topic 2 — IntegrationHub
Scenario: A Flow Designer action needs to pull 50,000 employee records from an external API that paginates results in pages of 500 records.

Which IntegrationHub element is designed for paginated bulk data retrieval from external APIs?

💡 Explanation

B is correct. A Data Stream Action in IntegrationHub is specifically designed to handle paginated bulk data from external REST APIs — it iterates through pages automatically, handling pagination tokens or page offsets, until all data is retrieved. Regular Actions execute once per invocation (A would only get the first page). Scripted REST API (C) handles INBOUND calls to ServiceNow. Import Sets with JDBC (D) work for database-to-database pulls, not REST API pagination. Data Stream Actions bridge the gap between REST APIs and bulk data needs.

🔌 Topic 2 — IntegrationHub
Scenario: A developer needs to call an external REST API from ServiceNow repeatedly with different parameters. They want to store the base URL, headers, and authentication in a reusable record.

What ServiceNow record type stores reusable outbound REST call configuration?

💡 Explanation

B is correct. An Outbound REST Message (sys_rest_message) is the template for calling external REST APIs FROM ServiceNow. It stores the base URL, authentication method (Basic, OAuth, API Key), HTTP methods (GET/POST/etc.), and headers. Individual HTTP Methods within the REST Message define specific endpoints and request bodies. This is then called from scripts or workflows. A Scripted REST API (C) is the INBOUND counterpart — it defines REST endpoints that external systems call on ServiceNow. D is completely incorrect.

🗑️ Topic 3 — Archiving, Purging & Retention
Scenario: A compliance team asks about the difference between Archive and Purge operations in ServiceNow for old Incident records.

What is the core difference between Archiving and Purging records?

💡 Explanation

B is correct. This is one of the most important and tested distinctions in Part 6: Archive — moves records from the active table (e.g., incident) to the archive table (e.g., incident_archive). Data is preserved but no longer in the active table, so standard queries won't find it. Purgepermanently destroys the records from the database. This is irreversible. Archive preserves data for compliance/audit; purge is for permanent disposal. A (soft delete/flag) is NOT how ServiceNow archive works — records are physically moved.

🗑️ Topic 3 — Archiving, Purging & Retention
Scenario: An Incident was created 3 years ago and has been archived. A user queries the Incident table (incident) for this record.

[TRAP] What does the user see when querying the active Incident table for an archived record?

💡 Explanation

B is correct. After archiving, the record is physically moved to the incident_archive table. Queries against the active incident table will find nothing — the record is gone from that table. To find archived records, you must explicitly query the incident_archive table. This is a common trap because users expect to still find records after "archiving" — but archiving in ServiceNow is a table move, not a status flag. There is no automatic redirect (D) or visual flag in the active table (C).

🗑️ Topic 3 — Archiving, Purging & Retention
Scenario: Archived Incident records need to be queried for a compliance audit. The admin knows they are no longer in the active incident table.

Which table stores archived Incident records?

💡 Explanation

B is correct. ServiceNow follows a consistent naming convention for archive tables: the original table name followed by _archive. So incidentincident_archive, sc_requestsc_request_archive, etc. The archive table has the same column structure as the original (it is created automatically when archiving is first configured). Querying incident_archive directly via GlideRecord or via the list view allows compliance audits of archived data.

🗑️ Topic 3 — Archiving, Purging & Retention
Scenario: An admin needs to configure a rule that archives all Incidents older than 2 years with a "Closed" state.

Where is an Archive Rule defined in ServiceNow?

💡 Explanation

B is correct. Archive Rules are stored in the sys_archive table (accessible via System Archiving → Archive Rules). Each rule defines: which table to archive, the filter conditions (State = Closed AND Closed more than 2 years ago), the archive table to move records to, and optional fields to exclude from archiving. A scheduler runs the archive rule periodically. This is distinct from Data Retention Policy (D), which is a newer feature for broader data lifecycle management, and from manual scripts (C) which are not the standard mechanism.

🏥 Topic 4 — Instance Data Health
Scenario: A Production instance is cloned to a Development instance. Post-clone, a scheduled job that sends weekly email notifications runs.

[TRAP] What is the most critical risk of this situation?

💡 Explanation

B is correct. This is a critical post-clone risk. When Production is cloned, the Development instance contains real production user data — including actual email addresses. If a scheduled job that sends emails runs in Dev, it uses those real email addresses and sends emails to real users from the Dev instance. This is embarrassing, potentially a compliance issue, and confusing for recipients. After every clone, always review and disable scheduled jobs in the Development instance — especially any that communicate with external systems (email, SMS, webhooks). ServiceNow does NOT automatically disable jobs post-clone (D).

🏥 Topic 4 — Instance Data Health
Scenario: A developer wants to ensure that sensitive API credentials stored in System Properties are NOT overwritten when Production is cloned to Development.

What ServiceNow feature preserves Development-specific data during a clone from Production?

💡 Explanation

A is correct. Clone Excluders let you specify tables, records, or fields that should NOT be overwritten when a clone runs. Sensitive API credentials, Dev-specific configuration, or integration URLs stored in System Properties can be protected this way. The clone proceeds but skips the excluded data, keeping Dev-specific values intact. Clone Profiles (B) define the clone source/target and settings — they control the clone configuration. Post-Clone Scripts (D) run after the clone to restore specific values — also useful, but Excluders prevent the overwrite in the first place.

🏥 Topic 4 — Instance Data Health
Scenario: A ServiceNow instance has a system property glide.max_query_result_limit set to 10,000.

What does this property control?

💡 Explanation

B is correct. glide.max_query_result_limit is a system-wide safety cap on query result sizes. If a GlideRecord query or Report would return more than 10,000 records, ServiceNow limits the result set to this maximum — preventing uncontrolled full-table scans from degrading instance performance. This is a database performance protection property. When reports or queries "stop at exactly 10,000 records," this property is usually why. Admins should be aware of this limit when designing reports and integrations that process large record sets.

🔗 Cross-Topic Integration
Scenario: An external system calls POST /api/now/table/cmdb_ci to create a server CI, passing CPU and RAM fields in the JSON body. A colleague argues the call should target cmdb_ci_server instead.

What is the practical difference between creating a CI in cmdb_ci vs cmdb_ci_server via the Table API?

💡 Explanation

B is correct. The Table API writes to exactly the table specified and sets sys_class_name accordingly (Part 1 Topic 1). A CI in cmdb_ci has sys_class_name = cmdb_ci — it won't appear in server-specific views, Discovery CI Groups filtered by server class, or CMDB Health rules for cmdb_ci_server. Always target the correct subclass when creating CIs via the Table API. The Table API supports any table (C is false). IRE is not automatically invoked by Table API calls (D is false).

🔗 Cross-Topic Integration
Scenario: A Flow Designer flow uses an Integration Hub spoke to update cpu_count on a CI via direct PATCH to /api/now/table/cmdb_ci_server/{sys_id} whenever an asset record changes in an external ITSM tool. The CMDB team is concerned this will override Discovery's authoritative cpu_count values.

Does the direct Table API call go through IRE Reconciliation?

💡 Explanation

B is correct. IRE is NOT a transparent interceptor for all CMDB writes. It is only invoked when Discovery sends payloads, SGC processes data, or you explicitly call the IRE API. A direct PATCH to the Table API goes straight to the database — bypassing Identification, Reconciliation, and Deduplication. This means the Integration Hub flow will overwrite Discovery's cpu_count value ignoring source authority rules. The correct architecture is to route external data through the IRE API. This is a critical architecture trap connecting Part 8 with Part 4.

🔗 Cross-Topic Integration
Scenario: An admin enables archiving for the incident table with a 3-year retention policy. After archiving runs, a compliance auditor needs to review a specific incident from 4 years ago. It no longer appears in the standard Incident list.

Where are archived records stored, and how can the auditor access them?

💡 Explanation

C is correct. ServiceNow archiving (Part 8 Topic 3) moves records to a dedicated archive table. Records are removed from the active table (so standard queries don't find them) but remain in the database in the archive table, accessible via the Archive API or direct table queries. Archiving is NOT deletion (A). Records are not exported to CSV (B). Active-table filtering (D) describes something different — archive records are physically relocated to the archive table.

← Flashcards Back to Dashboard →