Jira ServiceNow Integration Guide
Learn how to set up a bi-directional Jira ServiceNow integration in ZigiOps. Configure system instances, field mappings, filters, and correlation step by step.
This guide explains how to configure a bi-directional integration between Jira and ServiceNow using ZigiOps. It covers adding system instances, selecting entity pairs, configuring correlation, building field mappings, applying filters, and testing the workflow. No scripting or coding is required at any stage.
For a full overview of the sync capabilities between the two platforms, see the Jira and ServiceNow integration page on the ZigiWave website.
Overview
The Jira-ServiceNow integration synchronizes records between your ITSM platform (ServiceNow) and your project tracking tool (Jira) automatically. When a record is created or updated in one system, ZigiOps reflects the change in the other system based on the workflow configuration.
Most common supported entity pairs:
Incident
Issue / Task
Bi-directional
Problem
Bug
Bi-directional
Change Request
Task
Bi-directional
Service Catalog Task
Task
ServiceNow to Jira
Work Notes
Comment
Configurable
Additional Comments
Comment
Configurable
Priority (numeric 1-4)
Priority (Highest / High / Medium / Low)
Mapped with conditions
State (numeric)
Status (text transition)
Mapped with conditions
ZigiOps supports all Jira and ServiceNow entities. Contact support if you have questions for entities that are not mentioned here or for more complex use cases: support@zigiwave.com.
Prerequisites
Before configuring this integration, confirm that the following requirements are met:
ZigiOps instance: installed and running. See the Installation guide.
Jira: a dedicated integration user account with API token access and project-level permissions.
ServiceNow: a dedicated integration user with read and write permissions on Incident, Problem, or Change Request tables.
Custom fields: correlation fields must be created in both systems before configuring the workflow. See the Correlation section below.
License: the ZigiOps license must include the Jira-ServiceNow system pair.
Add System Instances
A system instance defines the connection between ZigiOps and a specific Jira or ServiceNow environment. You must add one instance for each system before configuring a workflow.
Add a Jira System Instance
Log into your ZigiOps instance.
Navigate to Connected Systems > Add New System > Jira.
Enter the following connection parameters:
Server URL: the base URL of your Jira environment (for example,
https://yourcompany.atlassian.net).Username: the Jira user account ZigiOps will use for API calls.
API Token: generated in your Atlassian account settings under Security > API tokens.
Project Key: scopes the integration to the correct Jira project.
Proxy Settings: configure if your environment requires routing traffic through a proxy.
Click Save to store the configuration.
Click Test Connection to verify that ZigiOps can reach the Jira API. If the test succeeds, available fields and projects are downloaded automatically.

Add a ServiceNow System Instance
Log into your ZigiOps instance.
Navigate to Connected Systems > Add New System > ServiceNow.
Enter the following connection parameters:
Instance URL: the base URL of your ServiceNow instance (for example,
https://yourcompany.service-now.com).Username: the ServiceNow integration user account.
Password: the password for the integration user.
OAuth Credentials (optional): Client ID and Client Secret, required if your ServiceNow instance enforces OAuth 2.0 authentication.
Click Save.
Click Test Connection to verify connectivity.

If the Test Connection fails, verify that the integration user has the required API permissions and that the instance URL does not include a trailing slash.
Create or Load a Workflow
A workflow defines the complete configuration for your integration, including the entity pair, triggers, field mappings, filters, and correlation logic.
ZigiOps provides pre-built workflow templates for the most common Jira-ServiceNow use cases. A template includes pre-configured field mappings for summary, description, and priority, as well as basic correlation and trigger settings. You can load a template and adjust it to match your environment, or create a custom workflow from scratch.
Option A: Load a Workflow Template
Navigate to Configurator > Workflows > Add New Workflow.
Select Load from Template.
Locate the relevant Jira-ServiceNow template (for example, ServiceNow Incidents to Jira Tasks).
Click Load and then adjust the configuration as needed.

Option B: Create a Custom Workflow
Navigate to Configurator > Workflows > Add New Workflow.
Select Custom Integration.
Assign a name to the workflow and proceed to configure each section as described in the steps below.
Select the Entity Pair
The entity pair defines which record types in each system will be synchronized. Select the combination that matches your use case.
Incident-driven development
Incident
Issue / Task
Root cause analysis alignment
Problem
Bug
Change management and sprint planning
Change Request
Task
Service request fulfillment
Service Catalog Task
Task
For a fully bi-directional synchronization, configure at least two actions within the workflow: one to create and update Jira records from ServiceNow records, and one to update ServiceNow records when Jira records change.

Configure Correlation
Correlation is the mechanism ZigiOps uses to match existing records across systems during update cycles. It stores only unique identifiers, not business data. Without correlation, every sync cycle would create new records rather than updating existing ones.
You define which field in each system stores the unique identifier of its counterpart. Common patterns are:
Jira custom field (for example, "ServiceNow ID"): stores the ServiceNow
sys_idof the linked incident.ServiceNow field (for example, "correlation_id" or a custom field "Jira Reference"): stores the Jira issue key (for example,
OPS-4512).
Create the required custom fields in each system before configuring correlation in ZigiOps. Once the fields exist, map them in the Correlation section of the workflow.

ZigiOps supports one-to-one correlation by default. Each Jira record maps to exactly one ServiceNow record. This prevents duplicate creation even if an event is processed more than once.
Configure Field Mappings
Field mappings define which fields are synchronized between the two systems and how their values are transformed. Mappings are configured separately for each action direction.

Minimum Required Field Mappings
short_description
summary
Direct text mapping
description
description
Direct text mapping
priority (numeric)
priority (text)
Requires conditional mapping
state (numeric)
status (text transition)
Requires conditional mapping with Jira transition IDs
work_notes
comment.body
Internal notes only. Apply author filter to prevent echo loops.
assignment_group
assignee or component
Map based on team structure
sys_id
Custom field: ServiceNow ID
Used for correlation. Not displayed to end users.
number (e.g., INC0012345)
Custom field: SNOW Reference
Human-readable cross-reference
State Mapping
ServiceNow uses a numeric State field based on an ITIL state machine. Jira uses a text-based Status field controlled by workflow transitions. These must be mapped conditionally, not as a direct value lookup.
1
New
To Do
Direct mapping
2
In Progress
In Progress
Direct mapping
3
On Hold
On Hold / Blocked
Map to custom Jira status if available
6
Resolved
Done
Requires close_code and close_notes in ServiceNow
7
Closed
Done
Terminal state. Do not reopen via integration.
8
Cancelled
Cancelled / Won't Do
Map to custom Jira status if available
Closing a ServiceNow incident requires both close_code and close_notes. If these fields are not included in the mapping when Jira status is set to Done, the ServiceNow API call will fail. Add a conditional mapping: when Jira status = Done, send close_code = 'Closed/Resolved by Caller' and close_notes = 'Closed by Jira integration'.
When mapping ServiceNow Resolved to Jira Done, use the Jira transition ID rather than setting the status field value directly. This ensures that Jira workflow validators, post-functions, and required fields are respected.

Priority Mapping
ServiceNow calculates priority from a combination of Impact and Urgency. Jira uses a flat text-based priority list. A direct numeric-to-text mapping will often misrepresent business impact. The recommended approach uses both source fields together:
1 - Critical
1 - High
1 - High
Highest
2 - High
1 - High
2 - Medium
High
2 - High
2 - Medium
1 - High
High
3 - Moderate
2 - Medium
2 - Medium
Medium
4 - Low
3 - Low
Any
Low

Comment Synchronization
ServiceNow distinguishes between Work Notes (internal) and Additional Comments (customer-visible). Jira does not make this distinction. Syncing all ServiceNow notes to Jira without filtering may expose internal information to development teams.
Recommended comment mapping:
ServiceNow Additional Comments to Jira: sync public-facing comments only.
Jira comments to ServiceNow: map to Work Notes (internal) to preserve visibility boundaries.
Author filter: exclude comments authored by the integration user to prevent echo loops.
Last Time expression: use
{lasttimecomment}to collect only comments created after the last successful run.
Configure comment synchronization via the Related Records section of the field mapping configuration in ZigiOps.
Configure Triggers
Triggers define when ZigiOps collects data from the source system. ZigiOps supports two trigger types, which can be used together for the most reliable coverage.
Poller
ZigiOps queries the source system API on a configurable schedule (default: every 1 minute).
SLA monitoring, controlled sync cycles, systems without webhook support
Web Listener
ZigiOps registers an HTTP endpoint and waits for the source system to push data via webhook. Activated when the action is enabled.
Real-time status updates, incident creation alerts, near-instant synchronization
Using both trigger types in combination is the recommended approach for production deployments. The Poller provides complete coverage; the Web Listener reduces latency for time-critical events.

Add Filters and Conditions
Filters control which records are collected and when. Without proper filtering, the integration may process records that should be excluded or miss critical records that need to be synced.
Common filter configurations for Jira-ServiceNow workflows:
Last Time expression: collect only records created or updated since the previous run. Use the
{lasttime}expression in the filter condition.Environment scope: exclude records from test or sandbox projects.
Priority threshold: sync P1 and P2 incidents in real time; batch-sync lower priorities.
Author exclusion: filter out comments where the author matches the integration user account, to prevent duplicate comment loops.
Production-only scope: apply environment-based conditions to sync only production-affecting incidents.
ZigiOps supports AND and OR logic, with operators including: is, is not, is one of, is not one of, is empty, is not empty, contains, does not contain, less than, greater than, and equals. Conditions can be applied to any field available from the connected system.

Use Expressions for Data Transformation (Optional)
Expressions apply transformations to field values after data is collected from the source and before it is delivered to the target. They are configured in the Source and Target tabs of the workflow action and do not require any scripting.
Date and Time Format
Converts epoch timestamps to a human-readable string
Convert ServiceNow sys_created_on to a readable date for a Jira custom field
First N Characters
Extracts the first N characters of a field value
Truncate long ServiceNow descriptions to fit Jira's 255-character summary limit
Pattern (RegEx)
Extracts a value matching a regular expression. Group 1 is returned if a capturing group is defined.
Extract environment name (for example, PROD-EU-WEST) from a monitoring alert payload
Replace Text
Replaces a specific substring with another value
Replace internal codenames with public-facing system names before syncing to Jira
Replace Pattern (RegEx)
Replaces all matches of a RegEx pattern
Mask IP addresses or credentials before syncing logs from ServiceNow to Jira
Build Array
Combines multiple values into a comma-separated array
Aggregate multiple ServiceNow tags into a Jira label array
Last Time
Stores the timestamp of the last successful run; auto-increments on each execution
Collect only records updated after {lasttime} to prevent duplication
To Lower Case / To Upper Case
Normalizes text casing
Align status values or category names that differ only in casing between systems

Test and Activate the Workflow
Before activating the workflow in production, test each action individually using the built-in troubleshooting tools.
Testing Tools Available in ZigiOps
Real-time operation logs: show every record collected, processed, and delivered.
Payload inspector: displays the raw data sent to and received from each system, useful for debugging field mapping issues.
HTTP request and response data: provides API-level details for connectivity troubleshooting.
Error classification: distinguishes between mapping errors, connectivity issues, and API rejections.
To activate the workflow:
Run the workflow in test mode against a non-production record.
Verify that the target record is created with the correct field values.
Check the Activity Log for any errors or unexpected field values.
Once results are confirmed, set the workflow status to Active.

Advanced: Governance and Reliability
The following practices apply to production deployments and regulated environments.
Idempotency via Correlation Lookup
Before any write operation, ZigiOps checks whether a correlated record already exists in the target system. If one exists, it performs an update. If none exists, it creates a new record. This two-path logic prevents duplicate records when events are reprocessed after a failure or retry.
Retry Logic
Failed operations caused by transient API errors (rate limits, maintenance windows, network interruptions) are retried automatically. ZigiOps distinguishes between transient failures (retried) and permanent failures (logged and surfaced in the Activity Log). Retries do not create duplicate records due to the correlation lookup described above.
Governance Recommendations
Define integration ownership
Someone must be accountable for mapping logic and change testing
ZigiOps provides user-level access control and admin roles
Test changes in staging first
Untested mapping changes can silently misbehave in production
ZigiOps supports multiple environments; test before activating
Export and version integration templates
Integration configurations should be treated like production code
Export templates and store in a version control system
Monitor operational health continuously
Silent failures are as damaging as loud ones
ZigiOps provides dashboards with real-time error tracking and operation metrics
Audit comment and attachment sync rules
Internal notes may be exposed to unauthorized teams if filters are missing
Use conditional mapping and author filters to enforce data classification
Troubleshooting
Fields are missing from mapping suggestions
The system schema was not refreshed after new fields were added
Navigate to Connected Systems, select the system, and click Save to re-download the schema
Duplicate comments appear in the target system
Integration user exclusion filter is missing, or {lasttimecomment} expression is not configured
Add a trigger condition excluding the integration user as comment author; configure the {lasttimecomment} filter
ServiceNow incident fails to resolve via Jira
close_code and close_notes are required by ServiceNow but are not included in the mapping
Add conditional mappings: send close_code and close_notes only when Jira status = Done
Jira status does not update after a ServiceNow state change
The mapping is setting the status field value directly rather than using a Jira workflow transition ID
Replace the status field value with the correct Jira transition ID in the mapping configuration
Workflow saves but fails to activate
A mandatory configuration field is missing, or the license does not include the Jira-ServiceNow system pair
Review the error message in the UI; verify the license status under Admin > About
Priority values do not match between systems
ServiceNow numeric priorities are mapped directly to Jira priority labels without considering Impact and Urgency
Use conditional mapping to evaluate Impact and Urgency together and produce the correct Jira priority output
Related Resources
Last updated
Was this helpful?