ServiceNow Integration Guide
Complete Interview Preparation Resource
Covering all integration approaches with practical examples
Table of Contents
1. Introduction to ServiceNow Integration
2. REST API Integration
3. SOAP Web Services
4. Integration Hub & Flow Designer
5. Inbound Integration Methods
6. Outbound Integration Methods
7. Import Sets & Transform Maps
8. Email Integration
9. LDAP Integration
10. MID Server Integration
11. Common Integration Scenarios
12. Best Practices & Interview Tips
1. Introduction to ServiceNow Integration
What is Integration?
Integration in ServiceNow means connecting ServiceNow with external systems to exchange data. This allows
different applications to work together seamlessly.
Why Integration is Important:
• Automate data synchronization between systems
• Reduce manual data entry and errors
• Enable real-time information sharing
• Create unified workflows across platforms
• Improve efficiency and productivity
Main Integration Types:
Inbound Integration: External systems send data INTO ServiceNow
Outbound Integration: ServiceNow sends data OUT to external systems
2. REST API Integration
Overview
REST (Representational State Transfer) API is the most common way to integrate with ServiceNow. It uses
standard HTTP methods and returns data in JSON or XML format.
REST API Methods:
Method Purpose Example Use
GET Retrieve records Get list of incidents
POST Create new records Create a new user
PUT Update entire record Replace all incident fields
PATCH Update specific fields Update incident status only
DELETE Delete records Remove obsolete data
Example 1: GET Request (Retrieve Incidents)
URL Format:
[Link]
Authentication: Basic Auth or OAuth
JavaScript/REST Message Example:
var request = new sn_ws.RESTMessageV2();
[Link]('[Link]
[Link]('GET'); [Link]('username', 'password'); // Add
query parameters [Link]('sysparm_limit', '10');
[Link]('sysparm_query', 'active=true'); var response =
[Link](); var responseBody = [Link](); var httpStatus =
[Link](); [Link]('Status: ' + httpStatus); [Link]('Response: ' +
responseBody);
Example 2: POST Request (Create Incident)
var request = new sn_ws.RESTMessageV2();
[Link]('[Link]
[Link]('POST'); [Link]('username', 'password'); // Set
request body var requestBody = { "short_description": "Network is down", "urgency":
"1", "priority": "1", "caller_id": "[Link]" };
[Link]([Link](requestBody));
[Link]('Content-Type', 'application/json'); var response =
[Link](); var responseBody = [Link](); [Link]('Created: ' +
responseBody);
3. SOAP Web Services
What is SOAP?
SOAP (Simple Object Access Protocol) is an older but still used integration method. It uses XML format and
WSDL (Web Services Description Language) to define services.
When to Use SOAP:
• Legacy systems that don't support REST
• When strict data contracts are required
• Enterprise systems with existing SOAP infrastructure
SOAP Request Example:
Server down 1 1
Key Differences: REST vs SOAP
Feature REST SOAP
Format JSON/XML XML only
Protocol HTTP/HTTPS Multiple (HTTP, SMTP, etc.)
Ease of Use Simple Complex
Performance Faster Slower
Security HTTPS, OAuth WS-Security
Modern Usage Very common Legacy systems
4. Integration Hub & Flow Designer
What is Integration Hub?
Integration Hub is a no-code/low-code platform in ServiceNow that allows you to create integrations using
pre-built connectors called 'Spokes'. It requires a separate license.
What is Flow Designer?
Flow Designer is a visual workflow tool where you can build automated processes. When combined with
Integration Hub, you can easily integrate with external systems.
Key Components:
• Spokes: Pre-built integration connectors (Slack, Microsoft Teams, AWS, etc.)
• Actions: Individual operations you can perform (Create Record, Send Email, etc.)
• Flows: Complete automated workflows connecting multiple actions
• Triggers: Events that start a flow (Record Created, Updated, Schedule, etc.)
Example: Flow Designer Integration with Slack
Scenario: When a Priority 1 incident is created, send a Slack notification
Steps to Create:
1. Open Flow Designer (Flow Designer > Designer)
2. Create New Flow
3. Add Trigger: Record Created (Table: Incident)
4. Add Condition: Priority = 1
5. Add Action: Slack - Send Message
- Configure Connection to Slack
- Channel: #incidents
- Message: 'P1 Incident Created: ' + Short Description
6. Save and Activate Flow
Example: REST API Call in Flow Designer
Scenario: Call an external API to get weather data
1. In Flow Designer, add Action: REST - HTTP Request
2. Configure:
- Method: GET
- URL: [Link]
- Headers: Authorization: Bearer [token]
3. Process Response:
- Use Parse JSON action
- Extract temperature field
4. Use extracted data in subsequent actions
5. Inbound Integration Methods
Overview
Inbound integration means external systems send data INTO ServiceNow. There are multiple ways to receive
data.
Method 1: Table API (REST)
External systems can use REST API to directly insert/update records in ServiceNow tables.
Example: External system creates incident
POST /api/now/table/incident Authorization: Basic [credentials] Content-Type:
application/json { "short_description": "Server outage reported", "caller_id":
"[Link]", "urgency": "2", "impact": "2" }
Method 2: Import Sets
Import Sets are staging tables where external data is loaded first, then transformed into target tables. This is
ideal for bulk data imports.
Process Flow:
1. External system sends data → Import Set Table (staging)
2. Transform Map applies rules and mappings
3. Data moves → Target Table (final destination)
4. Error handling for rejected records
Example: Import Set Configuration
1. Create Import Set Table:
- System Import Sets > Create Table
- Name: u_employee_import
- Fields: u_emp_id, u_name, u_email, u_department
2. Create Transform Map:
- System Import Sets > Transform Maps
- Source: u_employee_import
- Target: sys_user
- Field Mappings:
u_emp_id → employee_number
u_name → name
u_email → email
u_department → department
3. Load Data via:
- REST API: POST /api/now/import/[table_name]
- File Upload: Excel, CSV, XML
- Scheduled Import
Method 3: Web Services (Inbound)
External systems can call ServiceNow's web services endpoints.
• Direct Web Service: Expose a Scripted REST API
• Processor: Custom URL processor to handle requests
Example: Scripted REST API
// Create under: System Web Services > Scripted REST APIs // Resource Path:
/api/custom/create_incident (function process(request, response) { var requestBody =
[Link]; var incident = new GlideRecord('incident'); [Link]();
incident.short_description = [Link]; [Link] =
[Link]; incident.caller_id = [Link]; var sysId =
[Link](); var result = { "success": true, "incident_number": [Link],
"sys_id": sysId }; [Link](201); [Link](result); })(request,
response);
Method 4: Email Inbound
ServiceNow can receive emails and automatically create records.
1. Configure Inbound Email Action:
- System Policy > Email > Inbound Actions
- Condition: Subject contains 'INCIDENT'
- Action: Create new incident record
- Map email body to short_description
- Map sender to caller_id
2. Email sent to: instance@[Link]
3. ServiceNow processes and creates incident automatically
6. Outbound Integration Methods
Overview
Outbound integration means ServiceNow sends data OUT to external systems. This happens when events
occur in ServiceNow.
Method 1: REST Message
REST Messages are reusable REST API configurations that can be called from Business Rules, Script Actions,
or Workflows.
Configuration Steps:
1. Create REST Message:
- System Web Services > Outbound > REST Message
- Name: External_Notification
- Endpoint: [Link]
2. Create HTTP Method:
- Name: sendIncident
- HTTP Method: POST
- Headers: Content-Type: application/json
3. Call from Business Rule:
// In Business Rule (When: after, Insert: true) try { var r = new
sn_ws.RESTMessageV2('External_Notification', 'sendIncident'); var requestBody = {
"incident_number": [Link](), "description":
current.short_description.toString(), "priority": [Link]() };
[Link]([Link](requestBody)); var response = [Link](); var
responseBody = [Link](); var statusCode = [Link]();
[Link]('External API Response: ' + statusCode); } catch(ex) { [Link]('REST call
failed: ' + [Link]); }
Method 2: Business Rules with Outbound Calls
Business Rules can trigger outbound integrations when records are created/updated.
// Business Rule: Notify External System on Incident Resolution // Table: Incident //
When: after, Update: true // Condition: [Link](6) // Resolved
(function executeRule(current, previous) { var request = new sn_ws.RESTMessageV2();
[Link]('[Link]
[Link]('POST'); [Link]('Authorization', 'Bearer
TOKEN123'); [Link]('Content-Type', 'application/json'); var payload =
{ incident_id: [Link](), resolution: current.close_notes.toString(),
closed_by: current.closed_by.getDisplayValue(), closed_at: current.closed_at.toString()
}; [Link]([Link](payload)); var response = [Link]();
[Link]('Notified external system: ' + [Link]()); })(current,
previous);
Method 3: Scheduled Jobs / Data Sources
Use scheduled jobs to periodically push data to external systems.
1. Create Scheduled Script Execution:
- System Scheduler > Scheduled Jobs
- Run: Daily at 2:00 AM
- Script: Export data to external system
2. Example Script:
// Scheduled Job: Daily User Sync var gr = new GlideRecord('sys_user');
[Link](); [Link](); var users = []; while([Link]()) { [Link]({
user_id: gr.sys_id.toString(), name: [Link](), email: [Link](),
department: [Link]() }); } // Send to external system var r = new
sn_ws.RESTMessageV2(); [Link]('[Link]
[Link]('POST'); [Link]([Link]({users: users})); var response
= [Link](); [Link]('Synced ' + [Link] + ' users. Status: ' +
[Link]());
Method 4: Outbound Email Notifications
Send automated emails to external systems or users when events occur.
1. Create Email Notification:
- System Notifications > Email > Notifications
- When: Incident Priority changes to 1
- Who: External support team (external-support@[Link])
- What: Include incident details
2. Can include attachments, HTML formatting
3. Use mail scripts for dynamic content
7. Import Sets & Transform Maps (Deep Dive)
What are Import Sets?
Import Sets provide a staging area for data coming into ServiceNow. Data is first loaded into an Import Set
table, validated, transformed, and then moved to the target table.
Why Use Import Sets?
• Validate data before inserting into production tables
• Handle data transformation and mapping
• Track import history and errors
• Support multiple data sources (CSV, Excel, XML, JDBC, REST)
• Prevent bad data from entering your system
Complete Import Set Process:
Step Description
1. Create Import Set Table Define staging table structure
2. Load Data Import data via file, API, or schedule
3. Transform Map Define how to map source to target
4. Field Mapping Map individual fields
5. Transform Script Apply custom logic (optional)
6. Run Transform Move data to target table
7. Review Results Check success/errors
Practical Example: Import Employees from CSV
Step 1: Prepare CSV File
employee_id,full_name,email,dept,manager_email
E001,John Smith,[Link]@[Link],IT,[Link]@[Link]
E002,Jane Doe,[Link]@[Link],HR,
Step 2: Create Import Set Table
Navigation: System Import Sets > Administration > Create Table
Table Label: Employee Import
Table Name: u_employee_import
Add columns matching CSV fields
Step 3: Load Data
Navigation: System Import Sets > Load Data
Import type: File (Upload CSV)
Select file and target Import Set table
Step 4: Create Transform Map
Source Table: u_employee_import
Target Table: sys_user
Step 5: Field Mappings:
• employee_id → employee_number
• full_name → name
• email → email
• dept → department (coalesce mapping)
• manager_email → manager (reference mapping)
Step 6: Add Transform Script (optional)
// Transform Script Example // Set default values if missing if ([Link]()) {
[Link] = 'General'; // Default department } // Convert email to lowercase if
(![Link]()) { [Link] = [Link]().toLowerCase(); } // Set
user as active [Link] = true; // Log transformation [Link]('Transforming user:
' + source.full_name);
Transform Map Advanced Features:
Coalesce Fields:
• Used to match existing records
• If match found: UPDATE existing record
• If no match: INSERT new record
• Example: Use employee_id as coalesce field
Reference Field Mapping:
• Map to reference fields (lookup to other tables)
• Example: Map manager_email to manager field in sys_user
• Uses 'dot-walking' to find referenced record
Choice Field Mapping:
• Map text values to choice field options
• Example: 'High' → 1, 'Medium' → 2, 'Low' → 3
Transform Scripts:
• onBefore: Runs before transformation
• onStart: Runs at the start of each row
• onForeignInsert: Runs when related record is created
• onAfter: Runs after transformation completes
Loading Data into Import Sets:
Method Use Case How to Configure
Manual Upload One-time imports System Import Sets > Load Data > Upload File
REST API Real-time integration POST to /api/now/import/{table}
Scheduled Import Regular automated imports System Import Sets > Scheduled Imports
JDBC Database integration Configure data source connection
LDAP Active Directory sync LDAP configuration
Excel Bulk data entry Upload .xlsx file directly
8. Email Integration
Overview
ServiceNow can both send and receive emails as part of integration workflows.
Inbound Email Integration
Users or systems can send emails to ServiceNow to create/update records automatically.
Example: Create Incident from Email
1. Configure Inbound Email Action:
Navigation: System Policy > Email > Inbound Actions
Name: Create Incident from Email
Active: true
Type: Incident
2. Conditions:
Subject contains: [INCIDENT]
OR
From domain: @[Link]
3. Actions - Create Record:
Table: incident
Field mappings:
- Email Body → short_description
- Email Subject → short_description (if body empty)
- Email From → caller_id (lookup user by email)
- Set urgency = 3 (default)
4. Email Example:
To: support@[Link]
Subject: [INCIDENT] Cannot access email
Body: I am unable to log into my email account since this morning.
5. Result: Incident automatically created with caller set to sender
Outbound Email Integration
Send notifications to users or external systems when events occur.
Example: Notify Manager when Employee Submits Leave Request
1. Create Email Notification:
Navigation: System Notification > Email > Notifications
Name: Leave Request Submitted
Table: Leave Request [custom table]
2. When to send:
Condition: State changes to 'Pending Approval'
3. Who will receive:
Recipients: ${approver}
CC: hr@[Link]
4. What it will contain:
Subject: Leave Request Approval Needed - ${employee}
Body: Use email template with variables:
- Employee name: ${[Link]}
- Leave dates: ${start_date} to ${end_date}
- Reason: ${reason}
- Link to approve: ${URI_REF}
5. Advanced: Add approval/reject buttons in email
9. LDAP Integration
What is LDAP?
LDAP (Lightweight Directory Access Protocol) is used to integrate ServiceNow with Active Directory or other
directory services for user authentication and data synchronization.
LDAP Integration Use Cases:
• Single Sign-On (SSO) authentication
• Automatic user provisioning from Active Directory
• Sync user data (name, email, department, manager)
• Sync groups and organizational structure
• Disable users when they're removed from AD
LDAP Configuration Steps:
1. Create LDAP Server Configuration:
Navigation: System LDAP > LDAP Servers
- Name: Company Active Directory
- Server URL: ldap://[Link]
- Username: cn=admin,dc=company,dc=com
- Password: [admin password]
- Use SSL: Yes (recommended)
2. Configure LDAP OU (Organizational Unit):
Navigation: System LDAP > LDAP OU Definitions
- Name: Company Users
- LDAP Server: Company Active Directory
- RDN: ou=Users,dc=company,dc=com
- Table: User [sys_user]
- Auto sync: Yes
3. Field Mappings:
- LDAP Attribute → ServiceNow Field
- sAMAccountName → user_name
- displayName → name
- mail → email
- department → department
- manager → manager (reference)
- telephoneNumber → phone
4. Test Connection:
- Use 'Test' button to verify connectivity
- Check logs for any errors
5. Run Transform:
- Manual: Click 'Load LDAP Records Now'
- Scheduled: Set up automatic daily sync
LDAP vs SSO:
Feature LDAP SSO
Authentication Yes Yes
User Sync Yes Limited
Group Sync Yes Via SAML attributes
Password Storage In AD In Identity Provider
Common Protocols LDAP/LDAPS SAML, OAuth
10. MID Server Integration
What is a MID Server?
MID (Management, Instrumentation, and Discovery) Server is a ServiceNow application installed on a server in
your internal network. It acts as a bridge between ServiceNow (cloud) and your on-premises systems that
ServiceNow cannot directly access.
Why Use MID Server?
• Access databases behind firewalls (JDBC connections)
• Discover devices on internal network
• Execute PowerShell or shell scripts on local machines
• Access internal LDAP/Active Directory
• Connect to internal REST APIs
• Integrate with on-premises applications
How MID Server Works:
1. ServiceNow (Cloud) sends request to MID Server
2. MID Server receives request via secure connection
3. MID Server accesses internal resources (DB, LDAP, etc.)
4. MID Server sends response back to ServiceNow
5. All communication is outbound from MID Server (firewall-friendly)
MID Server Setup:
1. Download MID Server:
Navigation: MID Server > Downloads
Download for your OS (Windows/Linux)
2. Install on Internal Server:
- Extract files to installation directory
- Configure [Link] file:
* Instance URL
* MID Server username/password
* Server name
3. Start MID Server:
Windows: Run start_mid.bat
Linux: ./start_mid.sh
4. Validate in ServiceNow:
Navigation: MID Server > Servers
Check status = 'Up'
Verify last communication time
5. Configure Capabilities:
Assign capabilities like JDBC, LDAP, Discovery
Example: JDBC Query via MID Server
Scenario: Query SQL Server database in internal network
1. Create JDBC Data Source:
Navigation: System Import Sets > Data Sources
Type: JDBC
Name: Internal SQL Server
JDBC URL: jdbc:sqlserver://[Link]
MID Server: Select your MID Server
Username/Password: SQL credentials
2. Create Import Set:
Import Set Table: u_customer_data
SQL Query: SELECT * FROM Customers WHERE Active = 1
3. Run Import:
- MID Server executes query on internal SQL Server
- Results sent back to ServiceNow
- Data loaded into Import Set table
- Transform map processes data
11. Common Integration Scenarios
Scenario 1: HR System Integration
Requirement: Sync employee data from HR system (Workday) to ServiceNow daily
Solution Approach:
1. Outbound from Workday:
- Workday sends employee data via REST API
- Endpoint: /api/now/import/u_employee_import
- Scheduled daily at 2:00 AM
2. ServiceNow Processing:
- Data lands in Import Set table
- Transform Map processes data
- Updates sys_user table
- Coalesce on employee_number field
3. Field Mappings:
- Workday ID → Employee Number
- Full Name → Name
- Email → Email
- Department → Department (lookup)
- Manager → Manager (reference)
- Status → Active (true/false)
4. Error Handling:
- Failed transforms logged
- Email notification to admin
- Rejected records reviewed manually
Scenario 2: Ticketing System Integration
Requirement: Bi-directional sync between ServiceNow and Jira
Solution Approach:
1. ServiceNow → Jira (Outbound):
When: Critical incident created in ServiceNow
Action: Create corresponding Jira issue
Method: REST Message in Business Rule
2. Implementation:
- Business Rule: Table = incident, When = after insert
- Condition: Priority = 1
- Script: Call Jira REST API to create issue
- Store Jira issue key in custom field
3. Jira → ServiceNow (Inbound):
When: Jira issue status changes
Action: Update ServiceNow incident status
Method: Jira webhook → ServiceNow Scripted REST API
4. Data Sync:
- Comments synced bi-directionally
- Status mapping configured
- Attachments copied
- Work notes synchronized
Scenario 3: Monitoring Tool Integration
Requirement: Create incidents from monitoring alerts (Nagios, DataDog, etc.)
Solution Approach:
1. Monitoring Tool → ServiceNow:
Method: REST API (Inbound)
Endpoint: Scripted REST API or Table API
2. Create Scripted REST API:
Path: /api/custom/monitoring/alerts
Method: POST
Accept: Alert data from monitoring tool
3. Processing Logic:
- Check if incident already exists (by alert ID)
- If exists: Update existing incident
- If new: Create new incident
- Map severity → priority
- Map alert description → short_description
- Assign to appropriate group
4. Deduplication:
- Use alert ID as unique identifier
- Prevent duplicate incidents for same alert
- Update count field for repeated alerts
// Scripted REST API for Monitoring Alerts (function process(request, response) { var
data = [Link]; // Check for existing incident var gr = new
GlideRecord('incident'); [Link]('u_alert_id', data.alert_id); [Link](); if
([Link]()) { // Update existing [Link] = 2; // In Progress gr.work_notes = 'Alert
repeated at: ' + new GlideDateTime(); gr.u_alert_count = parseInt(gr.u_alert_count) +
1; [Link](); [Link](200); [Link]({ "status": "updated",
"incident_number": [Link]() }); } else { // Create new incident var
incident = new GlideRecord('incident'); [Link]();
incident.short_description = data.alert_name; [Link] =
data.alert_details; [Link] = mapSeverityToUrgency([Link]);
incident.u_alert_id = data.alert_id; incident.u_alert_count = 1;
incident.assignment_group = 'Network Operations'; var sysId = [Link]();
[Link](201); [Link]({ "status": "created", "incident_number":
[Link](), "sys_id": sysId }); } })(request, response); function
mapSeverityToUrgency(severity) { var mapping = { "critical": "1", "high": "2",
"medium": "3", "low": "3" }; return mapping[[Link]()] || "3"; }
Scenario 4: Chat Integration (Slack/Teams)
Requirement: Send notifications to Slack when incidents are created/updated
Solution 1: Using Integration Hub (Easiest):
1. Install Slack Spoke from Store
2. Configure Slack Connection (webhook URL or OAuth)
3. Create Flow in Flow Designer:
- Trigger: Record Created/Updated (Incident)
- Condition: Priority = 1 OR 2
- Action: Slack - Send Message
- Configure message with incident details
Solution 2: Using REST Message (Manual):
1. Get Slack Webhook URL from Slack admin
2. Create REST Message:
- Endpoint: [Link]
- Method: POST
3. Call from Business Rule:
- When: After insert/update on incident
- Condition: Priority = 1
- Send formatted message to Slack
// Business Rule: Notify Slack on P1 Incident (function executeRule(current, previous)
{ var r = new sn_ws.RESTMessageV2();
[Link]('[Link]
[Link]('POST'); var message = { "text": "■ Priority 1 Incident Created",
"blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "*Incident:* " +
[Link] + "\n" + "*Description:* " + current.short_description + "\n" +
"*Assigned to:* " + current.assigned_to.getDisplayValue() + "\n" + "*Link:* <" +
[Link]('[Link]') + "/[Link]?sys_id=" + current.sys_id + "|View
Incident>" } } ] }; [Link]([Link](message)); var response =
[Link](); })(current, previous);
12. Best Practices & Interview Tips
Integration Best Practices
1. Security:
• Always use HTTPS for REST communications
• Use OAuth instead of Basic Auth when possible
• Store credentials in system properties, not in scripts
• Implement IP whitelisting for inbound integrations
• Use MID Server for internal network access
2. Error Handling:
• Always wrap REST calls in try-catch blocks
• Log errors with meaningful messages
• Implement retry logic for transient failures
• Send alerts on integration failures
• Keep error logs for troubleshooting
3. Performance:
• Use bulk APIs for large data transfers
• Implement pagination for large result sets
• Schedule heavy integrations during off-peak hours
• Use async processing for long-running operations
• Cache frequently accessed data
4. Data Quality:
• Always validate data before inserting
• Use Import Sets for bulk data imports
• Implement data transformation rules
• Use coalesce fields to prevent duplicates
• Document field mappings clearly
5. Monitoring:
• Set up integration monitoring dashboards
• Create alerts for failed integrations
• Log all integration activities
• Track API usage and limits
• Review integration logs regularly
Common Interview Questions & Answers
Q1: What are the main differences between REST and SOAP?
REST is simpler, uses JSON/XML, and HTTP methods (GET, POST, PUT, DELETE). SOAP is more complex,
uses only XML, has strict standards, and includes built-in security (WS-Security). REST is preferred for modern
integrations due to simplicity and performance. SOAP is used for legacy systems requiring formal contracts.
Q2: When would you use Import Sets vs direct REST API?
Use Import Sets for: bulk data imports, data validation needs, complex transformations, scheduled imports, and
when you need staging/error handling. Use direct REST API for: real-time integrations, single record
operations, simple CRUD operations, and when immediate processing is required.
Q3: How do you handle authentication in ServiceNow integrations?
ServiceNow supports: Basic Authentication (username/password), OAuth 2.0 (token-based), API Keys, Mutual
Authentication (certificates). Best practice is to use OAuth for external integrations and store credentials in
System Properties, never hardcode.
Q4: What is a MID Server and when do you need it?
MID Server is a Java application installed on internal network to bridge ServiceNow (cloud) with on-premises
systems. Needed for: accessing internal databases (JDBC), LDAP/AD integration, Discovery, accessing
systems behind firewalls, running local scripts. It makes outbound connections only, so firewall-friendly.
Q5: How would you integrate ServiceNow with Slack?
Two approaches: 1) Use Integration Hub with Slack Spoke (easiest) - configure webhook, create Flow with
Slack action. 2) Manual REST Message - get webhook URL, create REST message, call from Business Rule or
Script. Can send notifications on incident creation, approvals, alerts. Bi-directional integration possible with
Scripted REST APIs.
Q6: Explain Transform Maps and their importance.
Transform Maps define how data moves from Import Set (staging) to target table. They include field mappings,
coalesce rules (for update/insert logic), transform scripts (onBefore, onStart, onAfter), and reference mappings.
Essential for data quality, preventing duplicates, and handling complex transformations.
Q7: How do you handle errors in REST integrations?
Best practices: 1) Wrap in try-catch blocks, 2) Check HTTP status codes (200=success, 4xx=client error,
5xx=server error), 3) Log detailed errors with [Link](), 4) Implement retry logic with exponential backoff, 5)
Send notifications on failures, 6) Use Event Management for monitoring.
Q8: What is Flow Designer and how is it used for integration?
Flow Designer is a low-code automation tool for creating workflows. For integration: 1) Trigger flows on record
events, 2) Use REST steps to call external APIs, 3) Use Integration Hub Spokes (pre-built connectors), 4)
Process responses and update records, 5) Handle errors gracefully. No coding required for basic integrations.
Key Integration Comparison Table
Method Direction Use Case Complexity Real-time
REST API Both Modern integrations Low Yes
SOAP Both Legacy systems High Yes
Import Sets Inbound Bulk data import Medium No
Flow Designer Both No-code automation Low Yes
Business Rules Outbound Event-driven Medium Yes
Email Both Notifications Low Near real-time
LDAP Inbound User sync Medium Scheduled
MID Server Both Internal network High Yes
Scripted REST Inbound Custom endpoints Medium Yes
REST Message Outbound External API calls Low Yes
Interview Tips:
✓ Always mention security when discussing integrations
✓ Know the difference between synchronous and asynchronous
✓ Be ready to explain error handling strategies
✓ Understand when to use MID Server
✓ Know REST methods (GET, POST, PUT, PATCH, DELETE)
✓ Be familiar with JSON format
✓ Understand authentication methods (OAuth, Basic Auth)
✓ Know how to debug integrations (logs, REST message logs)
✓ Be prepared to draw integration flow diagrams
✓ Practice explaining concepts in simple terms
Quick Reference: Common Paths
• REST Messages: System Web Services > Outbound > REST Message
• Scripted REST APIs: System Web Services > Scripted Web Services > Scripted REST APIs
• Import Sets: System Import Sets > Load Data
• Transform Maps: System Import Sets > Transform Maps
• Flow Designer: Process Automation > Flow Designer
• Business Rules: System Definition > Business Rules
• LDAP Configuration: System LDAP > LDAP Servers
• MID Servers: MID Server > Servers
• Email Notifications: System Notification > Email > Notifications
• Inbound Email: System Policy > Email > Inbound Actions
Conclusion
This guide covers all major integration approaches in ServiceNow. Practice building actual integrations in a
Personal Developer Instance (PDI) to gain hands-on experience. Remember that integration is about
connecting systems efficiently, securely, and reliably. Good luck with your interview!
© 2026 ServiceNow Integration Guide