Selva Arun
Mega Sage
Mega Sage

JIRA Integration with ServiceNow using JIRA SPOKE

Note: There might already be articles or documents available for JIRA integration, but I wanted to create a detailed one to help those who are trying to learn or implement it. I faced some errors/issues while following other guides and have simplified the process here. Please feel free to comment if anything is wrong or needs to be corrected.

Prerequisites:

  • A JIRA account should be created with an API Key. For more info, please refer the below:

https://www.atlassian.com/software/jira/guides/getting-started/basics#step-4-create-an-issue

https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

 

Overview:

This is a unidirectional integration where ServiceNow acts as the source and JIRA is the receiver. This means that data flows from ServiceNow to JIRA.

Steps:

  1. Ensure Integration Hub Plugin is Installed
  2. Install the JIRA Spoke:
    • Go to Plugin > Click Find in Store > Search for JIRA Spoke OR
    • Open the JIRA Spoke application from the store.
    • Note: Trial apps can only be installed on non-production instances. Purchased apps can be installed on any instance.
  3. To Install the Application:
    • Log in to the ServiceNow instance where you want to install the app.
    • Navigate to System Applications > All Available Applications > All.
    • Search for the app you want to install.
    • Click on Install. Your app will be automatically installed onto your instance.

selvarun_0-1737403067524.png

 

    • Note: Some other plugins need to be pre-installed as JIRA Spoke is dependent on them:
      • ServiceNow IntegrationHub Runtime
      • ServiceNow IntegrationHub Action Step - REST
      • ServiceNow IntegrationHub Action Template - Data Stream
  1. Verify JIRA Spoke Installation:
    • Go to All Applications, type JIRA, and check if the spoke is correctly installed.

selvarun_1-1737403067526.png

 

  1. Create the Credential Profile:
    • Navigate to Connections & Credentials > Credentials > New > Basic Auth

selvarun_2-1737403067529.png

 

Credentials and create a new credential profile.

selvarun_3-1737403067532.png

 

    • Note: You can ignore putting the alias.
  1. Create a Connection Profile:
    • Navigate to Connections & Credential Aliases > Connections > New > HTTP(s) Connection.

selvarun_4-1737403067536.png

 

  1. Check Connection and Credential Alias:
    • Ensure the connection profile is correctly associated with the alias.

selvarun_5-1737403067539.png

 

 

  1. Clear Cache:
    • Ensure you clear the cache of your instance after this setup.
  2. JIRA Spoke is Ready to Use:
    • glide.rest.outbound.debug - true|false - true
    • glide.outbound_http_log.override - true|false - true
    • glide.outbound_http_log.override.level - String – all
    • To troubleshoot HTTPS requests, enable the following via sys_properties. If there is none, please create an entry. To view the HTTP logs, go to Outbound HTTPS Logs in the system logs menu.

selvarun_6-1737403067541.png

 

  1. Test the Integration:
    • You may use Postman for testing purposes.

selvarun_7-1737403067544.png

 

    •  For my use case, I created a flow for the incident table triggered when an incident is created or updated where:
      • Short description starts with "Create a JIRA Record:"
      • Incident state is not one of 7, 8
      • Configuration item is JIRA

selvarun_8-1737403067548.png

 

 

    • The flow creates an issue on JIRA with the description: "The application crashes with an error message whenever a file larger than 10MB is uploaded. Please assign to Dev Project and contact the Team on 8987986469."

selvarun_9-1737403067552.png

 

Note: The Project ID and Issue Type ID might be empty if there is an issue with the credentials. Please check the output HTTPS request logs to debug the issue. For more information, please check out: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1635414

    • It then updates the incident table with the JIRA KEY/reference number and closes the created incident.
    • For my use case, I created custom fields - JIRA Number and JIRA CI on the cmdb_ci_appl table.
    • Now, let's test our flow. Please check the post for the test results, as I cannot upload more than 10 images at a time.

This integration can be used for many other use cases. I created one for my learning purposes. I will post the Bi-Directional integration next week.

 

If you believe the solution provided has adequately addressed your query, could you please **mark it as 'Helpful'** and **'Accept it as a Solution'**? This will help other community members who might have the same question find the answer more easily.

 

Thank you for your consideration.

Selva Arun

 

Comments
Selva Arun
Mega Sage
Mega Sage
  1. Test the Integration:
    • You may use Postman for testing purposes.

selvarun_0-1737403618261.png

 

    •  For my use case, I created a flow for the incident table triggered when an incident is created or updated where:
      • Short description starts with "Create a JIRA Record:"
      • Incident state is not one of 7, 8
      • Configuration item is JIRA

selvarun_1-1737403618269.png

 

 

    • The flow creates an issue on JIRA with the description: "The application crashes with an error message whenever a file larger than 10MB is uploaded. Please assign to Dev Project and contact the Team on 8987986469."

selvarun_2-1737403618275.png

 

Note: The Project ID and Issue Type ID might be empty if there is an issue with the credentials. Please check the output HTTPS request logs to debug the issue. For more information, please check out: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1635414

    • It then updates the incident table with the JIRA KEY/reference number and closes the created incident.

selvarun_3-1737403618282.png

 

    • For my use case, I created custom fields - JIRA Number and JIRA CI on the cmdb_ci_appl table.
    • Now let’s test our Flow:

selvarun_4-1737403618286.png

 

selvarun_5-1737403618294.png

 

selvarun_6-1737403618301.png

 

selvarun_7-1737403618311.png

 

selvarun_8-1737403618316.png

 

JIRA:

selvarun_9-1737403618323.png

 

This integration can be used for many other use cases. I created one for my learning purposes. I will post the Bi-Directional integration next week.

 

SuryaHarshK
Tera Explorer

Hello Selva Arun,

 

I tried to integrate Jira with ServiceNow using your approach, but while creating a flow under configuration items, Jira was not listed. I tried by refreshing, reinstalling the Jira spoke as well, but the same issue is recurring. Can you help me resolve it.

SuryaHarshK_0-1745872384529.png

 

SuryaHarshK
Tera Explorer

@Selva Arun, when I tried to create an action item as mentioned in the procedure, I'm facing the following error message: "Unable to load dynamic inputs (sn_jira_spoke.get_projects_v4)". 

SuryaHarshK_0-1745912652252.png

# integrations

sonu9
Tera Contributor

Hi @Surya 

Have you find solution for issue? I am also facing same issue I am new to integration.

Josh Pirozzi
Kilo Sage

Hi @sonu9 & @SuryaHarshK,

For your issue, you may need to add the Jira CI to the appropriate CMDB Table that appears on your Incident Record.

 

For my organization, we have a bi-directional Jira integration set up on our Catalog Tasks. Instead of having the Jira Story / Bug auto-create based on conditions we have a trigger of selecting a Jira Project Group (we exported this table from Jira and applied it into ServiceNow) and take the following steps:

  1. Query the sc_Task table for the record
  2. A scripted 'Get Task Field Data' Action - This pulls the data and puts it into a String.
  3. A scripted 'Update Jira' Action - This maps the data, builds the JSON and then transmits the data from ServiceNow to Jira.

I'll be happy to share these with you, if interested.

 

mdshahvez11
Tera Contributor

I am trying to integrate SNOW with Jira 
so that I can get data of a project from Jira

after setting up credentials and connections and flow I'm getting this below error : 

mdshahvez11_0-1749022031648.png

 

Josh Pirozzi
Kilo Sage

@mdshahvez11,

  1. It's ServiceNow, not SNOW. SNOW is a completely different platform.
  2. It'll be good to share the entire Flow, or at least the Flow Step(s) leading up to this one. 

My initial thought, based on the error, is that the data coming from Jira into ServiceNow isn't there or hasn't been formatted in a way that this Action recognizes for processing.

SuryaHarshK
Tera Explorer

@Josh Pirozzi 

That would be greate, if you share your approach bi-directional Jira integration. it would be helpful us to learn the things in different approaches.   

SuryaHarshK
Tera Explorer

@sonu9 & @mdshahvez11,

 

yes, I found the solution it. In Basic Auth Credentials step in password field past the "API Created in Jira"Screenshot 2025-07-20 at 8.52.47 PM.png

Version history
Last update:
‎01-20-2025 12:05 PM
Updated by:
Contributors