ITBM Office Hour 29 JIRA Integration with Agile
hello everyone my name is charles rayburn i am a senior manager at customer success here at servicenow uh this is the office hour about jira integration office hour number 29 for those who are listening to the recording uh let me know if you have any questions or comments based upon what you're hearing um we have a great session uh set up for you guys today the office hour format is as always uh the first 30 minutes is for a senior subject matter expert here servicenow to talk about and ground us in the fun actual topic of nature at hand which is the jury integration with itm and then for the remaining 30 minutes is open to any questions and answers that we are looking to have from u.s customers so um i have here bellagi who's our senior supreme expert on this call uh bellagio if you can introduce yourself and then now the floor is yours okay thanks john hello everyone i'm the product manager on the agile team responsible for the jira integration and also azure devops integration and the agile teams product being with itbm for close to about seven years now i worked on various products in the itbm suite including demand projects and now currently dealing with azure teams so yeah that's uh that's about me uh let's get started i'll i have a quick presentation uh i'll run through the presentation for a few minutes and then i'll jump into the demo and i'll show you the actual working product right and then we could have our q a so let me share my presentation all right so this is the agenda for the uh for the presentation right now so we we will go through the use cases and then we'll talk briefly about what did we hear from our customers as we spoke with them and uh a lot of times we get questions on what is the difference between jira spoke and the out-of-the-box integration so we will clarify some of those and also explain how our integration works and a little bit on the architecture followed by the demo so the first use case is the the primary itbm use case right so we have ideas demands and project governance happening in servicenow and the product managers and development team is actually working on jira for their day-to-day activities right so but then a lot of times as a part of the yearly planning or quarterly planning the the business owners actually go and create the high level epics and demands and service now and then they also go and create the same equivalent in in jira and then the developers actually go break down that epic into stories and then they continue to work on it and they they come back so that the product owner tends to update in both the systems right so that's something that happens all the time so that's that's one use case where you're itbm customer and you're doing high level planning and service now and your developers are in in jira the second use case is the developers are using jira for their day-to-day activities and the operational work is actually coming through service now right so currently the way people are doing it is they have an incident in service now let's say an incident gets escalated uh the first level support looks into it and then they say okay now it's time for the developers to look into it so that is when the person actually goes and creates an equivalent incident or story in in jira and then once the developers complete working on that story in jira they come back to the incident and go and update the incident status so that the the incident workflow goes on right so currently people are updating improved systems which which most people don't want to do right so this is a common pattern that we noticed from what as we spoke to our customers right so one primary challenge is no swivel chair updates on multiple systems right and then they're looking for a seamless synchronization of work items or issues between servicenow and jira and this and it has to be two-way synchronization right and this has to be easy to configure and the implementation turnaround is expected to be really quick so let's uh before we talk about how our product works let's look at the differences between the out of the box integration and the sport so the out of the box uh integration works based on a convention right so when i say convention we have we have a rigid association between an assignment group in servicenow to a project in jira so that's the convention that we have defined as a part of the out of the box integration so what i mean by that is so we use assignment group as a trigger to export stories or epics from jira sorry from servicenow into gma whereas with spoke it's it's configuration you could actually go and it's a flexible architecture you can actually go and build uh integration the way you like it but then you will have to build a flow for every team or a project that you are onboarding into servicenow whereas with our out-of-the-box integration onboarding teams can be as simple as making an entry to a table so i will show you uh how that works in in a few minutes so apart from that we also support uh custom fields and custom workflows as a configuration right so whereas with the flows you will actually have to go and modify the flow to add custom fields or custom workflows so if you have like four or five different projects you will have five different flows and for uh each project if you want to go and add a few custom fields you will have to modify five different first to achieve this behavior whereas with our out-of-the-box integration you will be able to make an entry in a table and then the flow that we have in place will actually pick up the mapping from the tables and utilize those mapping and create the work items in issues in jira and similarly it works for import as well and we have native two-way integration support whereas you need to manually configure the inbound integration of with the spoke it's not too complex but then if you have multiple jira instances you will need to go and configure it manually for every jira instance that you have so let's look at the out of the box integration capabilities uh we we do support multiple jira instances we've noticed customers who have multiple jira instances in some cases it was as big as 16 instances right so we have support for multiple instances and we do uh support issue uh mapping configuration at the project level so what i mean by that is in jira you will be able to go and configure uh project i mean configure the forms and fields at each project level right so if you want to uh if you want to have custom configuration for different projects we do support that as well and uh we so these are some of the things that we support right so we we support custom issue types so out of the box you have stories and epics and strum tasks or story tasks in jira let's say you go and add custom issue types like demand or an initiative you can actually bring those initiatives and demands in service now by a simple configuration so we do support custom issue types along along with that we support custom field types as well so if you have any custom fields added in jira we'll be able to bring that in and similarly uh if you have custom workflows uh workflows is nothing but an equivalent of state choices in servicenow so if you have custom workflows in jeera we support that as well and out of the box we do support uh synchronization of attachments and comments and also the assignee field so if you pick an assignee in jira we update the assignee in servicenow as well so we use the email address the unique identifier to populate the user in both the systems so a quick architectural diagram so we do use web books so while creating a connection what you would do is you will actually go and define the jira instance provide the connection and the credential details and you will actually go and hit connect as a button so that will test the connection and also register the web okay in jira right so once the the book registration is successful we come and update the connection status in our service now and similarly if you so let's uh i mean you could you could take a screenshot or maybe this presentation would be available in the recording so let me jump into the demo and then i'll show you how this works in the product all right so the way you do that is after you install the uh integration application from the store you navigate to agile jira integration under agile data integration you have a link that says jira instances so if you click on it so that's where you can actually define uh multiple instances as well so in my case i've already configured one instance but for the sake of the demo i'm going to quickly configure another instance and show you how that works so here i've just created the instance record but i have not provided the connection details so let me do that so to do that i'm gonna click on i'm gonna open the connection alias so this is the existing platform capability that you must be aware of um all right so you see that the configuration template is set to basic auth with uh api key so i'm gonna just click on create new connection and credentials and provide the details so the username would be the so i'm using a cloud instance so the username in my case is the email address and if you're using the on-prem you could actually make use of the uh username and password basic uh authentication is what we support so in case of cloud if you want to get the api key you will need to go to the user profile i'll just go to account settings and in the account settings if you go to security you get to create an api token i'll just copy it and provide that as the api key okay i think i provided okay looks like i already have that connection okay so let so all you have to do is just create that connection and once you do that you will find a button that says so because i already have it connected so that's why you see a disconnect button let me disconnect it and show you how that works so what it does is it goes and when i'm disconnecting it goes and deletes the web book from the jira system right so because i clicked on it twice you see that message so now so when you actually go and create this jira instance for the first time you will see the connect button so you if you hit on the connect button what we do is we go and register the book in jira and you will see that the message message saying connection is successfully established so that's when we mark the status connected so only when the state is set to connect it we do support import and export between the two systems so once you establish the connection the next step that you would do is to discover projects so what happens when you discover projects is we go and fetch all the projects from jira into servicenow and as we do that we have a custom table called jira projects so we import all those projects into this table right so once you bring in all the projects you will have to go and configure the project each individual project for import and export right so as we bring the project we also bring in uh jira boards so we use boards to import and export sprints because sprints and jira is associated with the board so if you want to bring in sprints from jira into service now you will need to provide the board details so that we'll be able to import and export sprints as well let's see uh how that works so let me open one of the demo projects that i have so i have the hr delivery project let me switch over to the all right so this is the instance that i have configured so if you look at it i have a project that says hr delivery project and i have 27 stories in this project right so what i did was i in i checked this box that says enable import and also enable export so when i check this boxes then we actually import and export issues from jira into servicenow and also similarly from from servicenow into jira so once you check these two boxes you would have to create team integration settings so we only support one team integration setting so that's why you don't see a new button here so if i didn't have the team integration setting you would see the new button where i could go and create it so let me create for another project and show you how that works um i'll just open employee portal one so i'll have to check these two boxes and save this record so you see that as soon as i uh save this record a new button called import issues starts appearing so if i do import issues it will start getting the issues from jira into service now right but then as you as you bring it in if you want these uh stories to be associated with an assignment group you will need to create the team integration settings you could just click on new and you can provide the board details like i said we use the board details to fetch the sprints and you would also assign it with i mean associated with an assignment group here so the reason why we get the assignment group is to create the sprints right and also when you create a new story in service now uh the the way we determine whether to export that to jira or not is using the assignment group so when you create the story we check if that assignment group has a team integration setting and if it does we export it to the project that it is associated with so let's let's continue using this project so i just created the team integration setting and let me quickly go to that project here in jira all right so you see that there are three stories in this project so let me go and do import issues you'll need to provide a date range so the date range is what we will use to fetch the issues the query that we use is to get all the issues created or updated in this date range so if you only want a certain set of stories to be imported you could you could provide the date range and we'll bring only those stories so the moment i hit import issues you saw a notification that says an import request has been created so what we do is we create this record that says import request and then uh the float the integration hub picks up the request from here so as soon as the record gets created the integration hub kicks in the the uh necessary flows to bring in all the uh stories from jira into servicenow so you see that we we are bringing in sprints and also uh issues so let's wait for this to complete all right so it's completed let's go to the stories all right so we we didn't import issues on this project employee portal one so we have uh two projects imported sorry two issues important so there are three here let me see why we have only got two okay usually it does work maybe it's the live demo because of which it's not working so so yeah i've set up three i mean four other projects uh i've also created the i created a scrum program let me go to the agile board so if i go to the agile board so there are four different projects that i have configured to import from jira into service now so let's let's quickly go to this project so you see that there are four sprints set up and uh each of these prints have stories associated with them and in the backlog we have about 20 stories so let me go to the stream planning screen so that i could show you the same setup so you see that we have uh stories here there are 20 stories in the backlog for the servicenow hrms group and there are four sprints if you notice here there are four sprints here too and sprint one has five stories uh two has four and then five and five again so if you see here so we have five stories and four stories five stories and five stars now let's say if you want to plan right so you could actually use either of these system to plan stories to the sprint so let me do that in jira so i could just select three stories and move it into sprint one so because print one is already started we see this and let me add a couple of stories to spin to if i come back here and refresh this screen those updates must be coming over in a moment all right so you see that the three stories that we added uh now is showing up here and similarly if i go to sprint two the newly added stories are showing up here right so sim okay let's say i want to uh remove it from this print and move it to the backlog i could or maybe the next print i could do that so what it does is it also triggers an update to jira let's reload this page in a moment and so if you want to check for troubleshooting purposes if you wanted to check what is happening what you could do is you could go to flow designer and look at the executions so you see that we create a request to synchronize the issues between the two systems so if you want to troubleshoot this is this is the best way to do it go to the floor designer and open the flow and then check what is what is happening there so you can actually see it in detail all right so you see that the stories that we moved from sprint one to spring two we moved a few stories here so you see that the stories are showing up here appropriately right and let's see how this synchronization works and let me go back to the data integration settings all right so this is the project that we were checking earlier so it's now hrms right so if you open the jira project record from the jira instances you will notice that there is a reference uh i mean related lists uh called the table maps right so table maps is where you can actually provide the mapping between the issues in jira to tables in servicenow so let's take a look at it so i'm going to open this record which bro which has the story mapping so this mapping says that the external table name story uh we will need to bring an external uh i mean any story from jira to the rm story table and as we uh bring them and similarly for exports as well right so this map is what we use for both import and export so as we bring it in we say okay these are all the fields that we will need to bring in from jira into service now so out of the box we have these fields mapped you have the short description you have the description priority assignee and then epic link so if there is any link between story and an epic we do uh bring that in as well and also any custom fields right so out of the box we just have sprints so if you have any custom field you will be able to provide those mappings as well so this what we are seeing this record is the table map and the related list that we are seeing here is the field map so let's uh drill down to look into the state mapping between the two systems right so now if we go to the status record my instance is before right now all right so if you open the field map this is the mapping between the status from jira to the state column in servicenow and you see that we have a related list that says choice map so choice map is where we provide the mapping between the workflows in jira to state choices in servicenow right so you could actually take a look at it we have these internal mappings so let's look at the stories um okay if you look at the uh states right so minus six uh maps to draft so if you see this one um anything that is to do it goes into either draft or ready state so if you if the state is set to to do in jira so you will see that we will always set it to the uh draft state right so we use the order number so if you are mapping multiple states and service now to a single state in jira we honor the order number here so if i create any new stories in jeera then we will bring it in as a draft state and similarly in servicenow we have three in progress states right so one is work in progress and one is ready for testing and another is testing there are three in progress states and we mapped those three in progress states here to one in progress state from jira so let's say you if i go and create a custom workflow matching the uh states and service now i could just provide the value one to one and uh any updates that we do in jira would or jira or servicenow we actually synchronize it both ways any any questions so far so far no questions in the chat window if you guys do have questions go ahead and reach out and put in the chat window or if you want to unmute yourself you can go ahead and ask a question right now hi i apologize so first thing like so do we have any reference between jira and servicenow for example jira is having a key right can we see the key in servicenow tickets created or yes or something we can yeah okay so if you notice in the story table we have a column called external identifier so we've added a column called external identifier so where that is where we process the uh jira issue ids right so if you look at it um i have brought in the external key so let me add only the columns that makes more sense i just added all of them okay so if you notice right so you we have the jira issue id and we also have a link to that issue id if you click on it we'll take you directly to that stored but then if you want to add it that would be fairly simple uh i can i can show you how that works let me [Music] so let's say i i can add a custom field called service number okay apparently it's not showing up all the options so you can you can just understand this yeah yeah you could just add a custom column and then you'll be able to do the mapping okay okay my second question uh can i go to my second question sure yeah so in the beginning you told like we are using uh the books and we are using ap keys also so as far as the books are concerned like so they are not secured enough right so if you have a general book right so it does not bring the value based on the user access so if we create a api key so that will give us based on our permission uh based on our user roles right so but the book is not secured enough right so yeah i can i can uh explain that so if you look at the web books that we register right so if you go to system and let's let's take a look at the web book that we registered so if you take a look at the web book that we registered right so we have a unique token number here yes right so what we do is we actually validate that token number we also know which instance can send that request so if if a request comes in from a different url right with this particular token we will actually reject that request so we've had that we have that security built in uh using the uh the policies here so if you notice this is where we actually go and configure uh the web of registration and processing and all that stuff so if you this is the web book registry so we create a unique token and then we register with that token so if you're i mean when your security concern is with respect to the user or is it respect in general like you're are you saying like for example i am a i am a developer in a project so i have access to only two projects so you are a administrator of the project and you may have all the positions right so if you set up your book and because that workbook is for all issue types and all projects but from my perspective if i access this integration like i i should be able to access the two project which i have access in jira right so so that is my concern my question like so will that the book will overwrite the permissions of the particular user when we get the event right so based on the configuration that is provided here we will process that request or not now if you look at it uh we have so many projects but i've only configured four of these projects so i've only configured yeah these five projects right so we will only process uh the events from these five projects and any other projects that is sending us the events we will discard those events okay does that answer your question yes yes apology thank you all right so let's uh so we we saw the body is some questions sure yeah uh first is uh when you complete this zero instance configuration is that you click on discover projects to bring in azure projects right and then you have to do this manually always and configure meaning every time i have a new approach in jira do i have to do this discovery and to this top of the project or is there a way to do this automatically so the discount projects is just the first time uh from then on if you create a new project we will get a book event and we will create those projects automatically so this is just the first time action okay another question uh some customers they use uh agile projects in search now ppm right so they create stories uh as part of a project and then there is a cutting jira in other case they create the general projects in servicing now but the stories are created directly in jira so how would that work first case i have the stories associated to my project inservicing now does it this information goes to jira as well and if they create a story there in jira directly is this tied to the project service at all as well currently that does not happen but we are working on a release uh we are working uh we are working for the upcoming release right it could come out maybe sometime in q2 where we we will provide a hook to the user to configure that option because currently the integration works purely with agile product if people wanted to integrate with projects if servicenow projects then we are providing an extension where the users can actually build on top of the out-of-the-box integration a very minor enhancement if you do then all you have to do is just modify the business rules slightly so that way uh you don't need an assignment group rather if you create a project i mean if you associate it with a project then we will start exporting it to the same project in jira i mean corresponding project in jail right right so currently it is not currently with whatever is there in the store it is not available but we are working on a release uh we have targeted it for q2 uh so yeah when that is out uh you will be able to do that okay it makes sense and and based on that would be possible when i create a project searching out that sagio or hybrid to create the project jira as well and then we can basically touch working from there directly we can create or we can create a flow integration hub floor to do that so currently that doesn't happen out of the box but you can create a flow to create a project for every sub for the moment a project is say approved or if you have a certain uh parameter in the project and when when that event happens then you could export that project to jira and any story that you create for that particular project you could uh continue to push it to that project so they'll be you could you could decouple it from the assignment group so that is what we are working towards apparently is that a lot of questions avoiding any manual steps right we could avoid okay great thanks all right so this uh this project that i wanted to show you so in this project all right so in this project in addition to stories epics and i mean stories and epics i have also created a mapping for incident and i want to show you how that works so all i did was just created a table map for the incident so i created a new issue type called incident in jira so i just created a mapping between that issue type and incident table and service now and i mapped a few fields summary status description and priority uh status i just mapped a couple of them new and in progress i didn't do the whole thing just to show you how that works this instance has become slow for some reason i just mapped out to do and in progress only these two states and let's see how that works all right so i'm going to go to the hr delivery project and i'll create a new incident and i'll i'll give it a higher priority and say create all right so it created the issue let's go back here and go to incidence so you see that the incident that i created in jira is showing up in servicenow let me open that up as i was creating the uh incident you notice that i provided the priority what i did is i mapped the priority to impact because uh priority in servicenow is a calculated one based on impact and urgency so i set the impact as high so that's why it's coming up aside so in servicenow let me go and modify this as a medium and go and mark this as in progress and say working on the issue and i'll see okay so i updated the work notes i provided the impact and also the state so let me also add an attachment to show you okay for attachment to work i need to on the incident i need to do another setting which i've missed so let's go back here so you see that i changed the impact from high to medium so you see that is updated and similarly i updated the state doing progress you see that the state is changing as well so the state change happens both ways so if i update it here so the state change would happen in servicenow as well okay you see that the state all right so the state changed here and uh let's go back and check if the work notes came up yet so the work notes that we made is also showing up here so we we bring it the way it is updated in servicenow it says who and servicenow updated it what time did they update it and what is the whatnots and similarly if i make an update here and that would show up um excuse me on that no that just sparred another thought what about uh additional comments is there any bi-directional work uh with jira on that one additional commons as in like customer visible uh notes not work notes chat i haven't tested this let me check if this works so i will have to check if this one works or not because i was assuming that they all go to the same table but let me check that and then i'll come back to you thank you all right so let me also show you on the attachment front so let me open the jordan ready project okay i'm gonna open this one me is [Music] okay so let me add an attachment to this so i just added an attachment and if i go back to jira and refresh this page you will see that attachment would show up here as well so you see that attachment is showing up and if i add attachments here or if i remove any of them that would also be honored in service now so let me do that i'm going to delete the one that we added in service now and i added a new one so if i go back here so you see that the attachment got changed right so the the one that we removed uh from jira is gone and the newly added one is showing up here so let me also show you how creating new work items in service now gets exported to jira so the way you do that is like as you create the stories so as you create the stories it's important that you populate the uh the assignment group if the assignment group is not populated then we don't trigger the export so let's say i select the servicenow hrms2 let me go to that project so you see that the story that i created in zero sorry in service now is showing up here in zero so yeah similar to how i showed in the uh in the incidence the state updates uh happen so if i i can update in either of these systems and then the state would be synchronized appropriate yep there you go so any any more questions i think that's pretty much everything that i wanted to show you for this demo so if you have any questions then i'll be able to answer [Music] [Music] so my understanding is that so if you have a sequence workflow in [Music] yeah so from servicenow if we have a status we need to do so can we change it to directly to done or we have to go through the workflow in service now yes you can change it to done but then because the jira even if i update through rest api jira actually honors the workflow conditions so if you have a workflow defined like that like you cannot transition from to do to done then the the update would fail so then in that case you will have to have similar business rules in service now okay thank you okay other questions we have about seven minutes left thank you christian for joining uh any other questions from the uh the group that's out there um i do i'm sorry i do have one more question um one thing i was you know i know this might be a dumb question but one thing i was trying to wrap my head around was um i saw the differences between the out of the box and the spoke but um how i guess what is included in what and because it seems like a no-brainer you would do the out-of-the-box integration but why is there even a spoke option if that makes sense this spoke provides you uh flexibility right so it provides like if you if you don't want that rigid rule of assignment group and things like that then you could you could have spoke the other is if you want to build something on top of out of the box integration then you could leverage the spoke like for example there is an uh there is an out of the box behavior where uh if let's say you have one project in jira associated with an assignment group in servicenow and there is another assignment group in servicenow which does not which is not associated to any project in jira okay so i mean we we had this we were talking to one of the customers and they brought it up they said like hey there is an incident there is a team working on that incident in in service now so they actually went and assigned it to a group and when they did that then the issue got created in jira so then later they realized that that's not something they can fix and there was another team that needs to look into it so when they assigned it to a different team what we do is we don't delete that issue from jira because it is it is created in jira we don't want to delete it we we continue to push the updates so they came back saying hey we want that issue to be deleted because it moved away from that assignment so what did the spoke provides that flexibility i could actually go and build something on top of out-of-the-box integration to achieve the behavior that they wanted makes sense thank you great and i've also too launched the poll there for you guys uh to go ahead and fill out as the kind of providing us feedback on the office hour that we just had with jira um any other questions last minute we have about four minutes left uh with bellagi and there there are some things that we have in our roadmap is to make that mapping simple because currently the mapping takes a lot of effort uh like creating the table maps and the the field maps because uh like you will need to get the api i mean you need to fetch the api look at the custom column details that's a lot of work so we are actually working towards building a visualization that makes it easy for you to create the mapping between jira and servicenow so we are working towards that is its planet for kids no we don't have a definite timeline on that because i mean we there is a ui shift that servicenow is going through so we are still contemplating uh where should we build that ui okay so that is definitely a challenge that we see uh with our customers where they find it difficult to do that mapping but once they understand how to do it it's not so difficult great well we have about three minutes left i thank you all so much uh definitely uh fill out that poll to provide feedback i think apology for uh being the subject matter expert on this office hour for those of you again who are listening to the recording if you have any questions feel free to reach out to myself charles rayburn at servicenow um for any questions follow-up questions etc and we'll try to get those answers for you thank you guys so much have a great rest of your thursday take care
https://www.youtube.com/watch?v=bkXYqSrBBrg