ESRI and ServiceNow - Digital Geographical Services a Powerful Technology Mashup!
all right welcome to everybody to our forum today we're going to change it up a little bit instead of talking about like we've been talking about structuring a lot lately and a lot about the working model um or the operating model so today what we're going to do is we're going to talk about the geographical components services and we're specifically going to focus on esri today we have esri here that's going to be able to speak with us and show some of the things that we're building to put in the in the servicenow store if today's your first time we always do this just to get started if today's your first time can you put your name in the comments and what you do just so we can everybody can welcome you to the group and we just know that it's your first time here so this way people can get familiar with you as a member of the group i know we have a couple first-timers that i see on the call all right so the group was this group started back in 2018 so we've been meeting bi-weekly since 2018 and what it was in the beginning was to kind of figure out what we're doing with the cmdb and a lot of people didn't have that right so they wanted to get more information on what i should do to structure my service especially the services part of the cmdb and this last year we structured it more broadly into digital transformation because that's what really really trying to do with a lot of these services these structures we build out everybody's doing it in the name of being transformative so we broadened our vision a little bit this year and what we want to do is enable members to use the platform in order to drive their transformations so we share as much work we're going to share a couple things today that you can actually download go on to our shared instance we also have some things on github we have things in papers so there's different places we're trying to concentrate most of that now on our community site we started a community about three months ago and all of that information that we're sharing it used to be on a google drive but now we moved it over to that that forum that we have instead this is sponsored by the enterprise architecture team so most of the people you'll hear talking at least part of the segments we usually try to split we want to hear what it what we're do what's actually going on in the field so ideally a customer and then and then a kind of a service now perspective and it doesn't have to be that way sometimes the servicenow person might take up the whole speaking time and some other times the customer may take up the whole speaking times but the idea here is to mix it so people can understand what's really going on in the real world and we're going to see that today first and then kind of the theoretical piece that we usually present from the servicenow perspective okay so these are bi-weekly and there's recordings on our youtube channel and we also have a shared instance that you can become i had that on the previous page so if you do want to get a login to the shared instance unfortunately you can just email me right now we're going to change that so that we can automate that but right now it's just by email and uh that's been manageable so far but ideally we're going to make a link on that home page so that i can just get an approval and approve the people to come into that shared instance so that's a little bit of the background it's your first time hopefully that gives you a little bit of an idea of what we do and why we're here and we want to jump in next we're going to start off with todd he's going to come in and talk about the geographic geography-based employee services so he's really looking at that that back office side if you uh you want to speak of that language so front office back office and then i'm going to take you into the the front end of that i'm going to speak specifically about public services and so we're going to kind of divide up the time in that way so with that i think i can get todd going i see on there todd are you ready to take over cher are you able to share sure uh this will stop saying yes okay i want to share [Music] okay can you guys see my screen yes and perfect it says rts map directory at the top yep all right okay well thanks john and uh john and i have uh talked many times over the last couple years as we've been embarking on this journey with our integration with the service now and what we've done is sort of unique uh and hopefully you'll see through this that this is sort of a new way of even of looking at things and uh we've followed a model where everything that we're doing is actually updating the data in your cmdb it's not reaching out to a geodatabase although that is something that's on our roadmap but it's actually updating data directly in the cmdb and here you can see this is just a test our partner instance and different ways that we could use um we could use this this is what our actual production instance looks like in this these are the different ways that we're using gis that integrates with servicenow the cmdb and we're heavily leveraging and keeping in mind the common services data model and uh and using that so what i'm going to do is i'm just going to jump in here uh also uh documentation right on within our app we're going to have a link to our documentation that will really talk about what esri is how this integration works uh our digital twin what that means why why that's relevant and how this just gives you better insight into your data so i've got a lot of things to share so i'm going to jump right in so the first map that i wanted to show you is a way to integrate if you're an esri customer and you have existing feature layers and things and you want to integrate with your current servicenow data you know how how would we do that and so uh one of the things that we've done is integrated our living atlas uh for user esri customers is just curated data specifically around uh authoritative sources and so you can see that i have different elements let me turn this off for a second that were already listed load balancers and you know firewalls and different things that locations and so now by adding in living atlas data you might you you can overlay the two data sets and if we wanted to say hey i've got i'm concerned because there's this wildfire that's near me and i want to create an incident based on external data so you click on it and it will load directly into in service now everything we're doing here is in service now and it loads information about the um about the wildfire there this can be customized in any way and in with all of these other areas if i was going to create an incident we actually pre-populate the ci directly on the data element so if i create a ci or an incident here you can see that the configuration item is automatically populated so it makes it much easier based on something you already know the location of things to create um incidents now we found that this is very difficult to find the the configuration item sometimes and so this this really makes it easier additionally we built this data viewer uh we struggled a little bit i i like the the servicenow data tree um is and we actually can link to it from here is good and and we like it but we noticed that it didn't resonate sometimes with different uh business users so what we've done is built this is a relationship viewer and so you can see that it's it's super interactive i can customize the uh the ways that i view it change the colors if i wanted to but it it really allows you to go relationship to relationship downstream or upstream and so one of the things that john's talking about the uh csdm we have this sort of modeled out in here a little bit so if i said enterprise capability model and i wanted to look okay what are my capabilities what are things related to other things and you might say oh well i can't read that it's too small we can just increase the size and i want to go down six layers so you can see processes different i'm going to change this to be different color and i'm going to invert it and so you can see here these are different processes capabilities and this is one way to view it but let's say huh that doesn't really really see it clearly that way let's go to a card view of this you can now see kind of flat view but you have all of these nested uh capabilities and so well how are we doing in our capabilities map down to our services you can see here peoplesoft relates to data governance and it goes all the way down to the infrastructure this down stream view of things how are we doing we actually can overlay heat maps on top of this so now you can get a sense based on whatever scoring model you choose and we try to keep this fairly simple um i've i've maybe to my shame created about 2000 servicenow reports since 2019 we started getting involved in servicenow and um and mostly all our performance analytics and um those are fantastic and great and really really helpful but we wanted to see them by relationship um and this allows you to do that there's another view of this that that's really helpful that also allows you to actually see the relationships and you can interact you can interact with them as well so you can see the different scoring on these and when you hover hover over them you can see the downstream relationships so um different ways to view things you also have this is sort of a flat view of that same thing and you could zoom into each one of these um we also found that people really had a hard time with this uh cmdb as john was talking about and we're like okay we need to figure out a way to show people to train them what does it seem to be this this concept of extended tables is complicated for folks and there's been a class and a table and uh these more advanced topics and so we've created this for every hierarchy inside of servicenow where you can see here's a configuration item and and it just dynamically pulls this it's very similar to the class model but it gives you this sort of nested view so hardware extends you know computer is extended off of hardware and and and you can pretty easily see this so this is the view by relationship and so jumping back to uh kind of a sidebar there because we heavily use this i use that tool basically to manage the cmdb um it's a screen is off a little bit let me just so back to our living atlas incident and how we can overlay data with that so it's a great way to see help your bcpdr emergency services as you integrate it could be graffiti potholes tree trimming it could be a lot of different things that you could you could load in here and speaking of which i'll show you that uh here and what i'm going to do now is i'm actually just going to load a kind of a blank generic desktop map because we built this windowing system inside of here because i got tired of having 30 tabs open at the end of every day and uh so i want so this is basically our layer list it's the different uh it is the different map layers inside of servicenow so if i wanted to open a map within our data viewer let me let me just go here to uh one of the maps and that's the iot map which is also on our front map directory and i'll just load that right from here and i'll load this i'll preview this in 3d and so this gives you a sense of you know what are are different things you could do at any site and and it could be you know like i said customers spotting potholes or booking executive conference rooms there's certain conversations that have been determined to be executive for that you can see here we've got a site these are everything here is clickable and these are all configuration items inside of here so you can manage your cameras and we actually uh started doing this and so servicenow is the authoritative source of truth sorry if you can hear my dog therefore or uh uh cameras uh because we we have a great visibility into into that um so this is this is a great way to see you all of your things so i could see here's a camera and i can open this directly so these things interact with one another i could go upstream from there well this is part of this building well let me say i want to go downstream show me all the cameras in my building uh we go downstream go up here first and i wanted to see cameras here building queue um and so you can see that within building cue there's it's also related to an ip router upstream and it's related to this camera's service so if i want to look at this the other direction you can see and we've made the opacity here so it doesn't interfere with the map i can change the window size have multiple windows all of that so you can see the status of or or the different cameras that are related to this service uh digital service that is called for the cameras um one thing i wanted to show you is how easy it is so you've got these map layers let's say um and within those we've got a uh a tree a set of trees so i'm going to view that view that record and so this is these are all made up of different records and if you're familiar with servicenow and it's reporting we try to make this super easy to use so it looks this is a map and now i could even preview this layer from within another map and so as you're building out your map layers you can see them okay here's the trees here's the trees layer and i can still click on them and i have all these the ability to see all of these things but let's say i don't want those trees i want a different kind of tree so i just go over here to my renderer and we've got links here to the javascript api so this is interacting with our rts javascript api and this would take you right to the documentation on how these renderers work so we're trying to integrate this in a way that's consistent with esri and uh so and also make it so you don't need to know a lot to start building um esri let's say we don't want realistic we want uh thematic and i'll save it and now let's preview and see what these trees look like i've simply changed the way that the trees are rendered using esri web styles same location oh and they didn't show up let's let's try oh oh i got i need to do the three books let's read thematic uh tree style that would help if i choose the right renderer so i choose that save it and then we'll do a preview and so these are all related to the trees service on the campus and now you can see that these are all rendered using a different style but they all are still here and uh if i wanted to see what what does this look like how are you rendering these things how can you get the location all that because we have a a table in here that gives like the details about a an object so you can see here we've got the latitude longitude z value uh all of these things well what if we want to edit a tree in our cmdb so this is editing data directly in the cmdb is that the right one that i chose is read yes it is so if i go here and i edit this move it around i can rotate it whatever update it you'll see it updated here so this is how it's we're actually using data within service now to track all of this and and uh and use all of this this data so really is a powerful way even though we're calling out the api calling an esri web style you can still use that so now we're still in our base map here i wanted to show you a couple other things um one of them is related to our data centers i think oh i no i actually want to show you our our st louis office and uh and how we are interacting with different reports within services so i've got this so we have map layers that are pretty straightforward to use i'm going to open a dashboard it's using just a servicenow dashboard with an interactive service now filter and it and i'll choose a a rack in this case because we found that we want to meet people where they already have data in their dashboards instead of forcing them always into an esri map so you can see here these are called map tips when i'm hovering over the individual object it actually loads it uh the information about that i can click on it and i can see you know i could view i can get to any data related to that item and this is actually using relationships in the cmdb to climb down uh the says the rack and then it contains these different objects and so this is a a a great view to be able to see um see things so again i could choose whatever rack i wanted so people don't need to know the names of everything that's what we found which is a big challenge uh is that they just don't know the names of things so let's meet them where they are similarly so this is for this is for any rack really that we have so there's a lot in here um some have and over here it's also interacting with our cmdb widget which allows us to see relationships uh here and and it shows the um rack and people we found that this resonates really well with people um this this sankey view we just introduced this actually this week um because it focuses on the thing that you're interested in for different services uh it began like this is fully interactive from here uh so if i could go back to that enterprise capability model [Music] enterprise capability models and if i went down and it looks a little busy but it's actually not too bad because what happens is when you highlight one thing highlight things it will focus on the areas that you're interested in and so and being able to now you've got your heat map on top of it and this can this is drastically changing the conversations um that we have as being able to have this kind of visibility um and and informing the scoring and how we want to measure our services and really it's tying i.t to the rest of the organization we now have conversations with marketing with um facilities obviously with accounting with because of of how we're managing all of these as assets as well so really and if you have a gis department certainly it would it would um it would be relevant there so here same thing with with different rooms uh you could see conference rooms that you would have i do have something here yeah so you can see here's a collaboration space and i can actually click play and it's just going to rotate around i can see the different things i could click on them and see what they are so really really uh an interesting way to uh to to view all of this all this data um one more thing i wanted to share or i want to take all of john's time here is uh i wanted to show you all the time you need todd this is awesome stuff oh thanks um i want to show you this is also in our demo instance this is our data center yeah increase the size of this so there's a data center and we're actually using it's very similar to this but everything's names and everything have been changed but you can see that uh you can actually manage a data center from here you can see using the data that's in service now we're actually pulling the fields here to so how many minutes are remaining on the ups so if you have any kind of we we don't own unfortunately uh um not performance analytics but uh operation intelligence and uh being able to see events live but we are doing a lot of integration um on things and uh being able to see and have visibility into the different uh things that you are you're familiar with is super helpful so it todd somebody's asking how do you get how do you onboard the new assets when they come in is that a just a traditional servicenow onboarding where you put them into the okay so this is actually traversing from the ci through the through the model which is linked to the asset and that's how it's displaying these so really it's helping us dramatically improve our asset management because if i don't have an asset tied to this uh in in the right way i'm going to see it as we're building this out so it's it's we've tried to think through okay how is how is this working and it just traverses right through um and so and and and makes it makes it fairly easy to see that way so if i wanted to even say you know what i'm really interested i can't really see exactly what that is let's i want to view this model um we can and we're going to do some enhancements here uh that render for the uh the renderer for the mod like that you're pulling up now that's an esri render that's in inside of ui this is not this uh we're just calling some libraries um that are outside of our application scope even the the um this is using d3 libraries and we're extending our dojo some dojo libraries to do the windowing system which esri uses but then the all of these charts are using d3 libraries so we're calling out to to those uh to those libraries this is using a separate library but but the rendering itself is all archis javascript everything in here is all within the maps is all esri yeah nice and then uh there's another question too a lot of people don't have their data sets for assets right so there's a kind of a question outside of this is how did you get such a clean asset data set like was there a did you have to do a lot of that before this would start working right you mean like the the models themselves or just the way that were just getting all the data and i think how complete or enriched was your data set from discovery before you were able to start visualizing the great thing about this is that in in our production thing i we have something we'll actually highlight all the discovered devices and all the non-discovery devices all the things that have assets and don't have assets and you and that becomes our burn down list uh so it it took a little bit of effort in that we had to um you know organize it and make sure it was right but it helped us dramatically improve our data and so i could see from this um you know we had to obviously put it here but we have this thing starting slot number and so you could and if you've got this and people have this in spreadsheets everywhere so you just import this and you have what's how many slots do you have and the starting slot number you don't even need to know the z value and it will automatically put it in in the right spot in there in iraq so additionally you know we've got these different because the circuits relate back to the power strips which relate to the racks and all that you can you can measure the lines of your circuits uh you could view what what things make up this this point here i need to edit this this thing it's not quite right it you just literally click and drag and click off and it updates the cmdb like we were doing with the other objects so it's it's a new way this is not um it and gis have not has not really traditionally been a thing we're trying to make it a thing uh because we see so many opportunities for for this it's just uh it's it's pretty powerful uh this is still running in the background and i've got a map going one more thing i wanted to show is in in our services um there's there's a service here actually i'll just go out to this because i think this is a good example um of property management and being able to see things at a pretty granular level um and this is just a data set that we built and we've got it where you can click and drag objects right onto the canvas and create cis from them and and then relate them so you know we're building tools that actually do a lot of the the heavy lifting for us because it's complicated to uh to to build relationships and even understand relationships i found that i t people to this day super challenging to get them to think relationship which is what csdm is entirely based on it's easy they want their list view of everything so even with this that's why we built this card view is to uh because because of that is people want to see lists of things even if it looks like even though it is based on relationship that looks like a list so here this is the bellagio and if i wanted to turn this on um the hotel here anybody from the bellagio on yeah i know they'd be like hey where did you get this so we did quite a bit of research to get the information on these um but uh you can see that uh we've got some pretty detailed things here but um let's say that i wanted to see what what would this impact if this one goes down to customers walking by they see and they can have an easy way to report an issue with uh one of the fountains what if this thing goes down what is that going to impact what are the upstream relationships you affected services and it's using the script that runs when you create a change to decide which services are affected and it shows okay the oarsmen that's the name of the fountain the fountain service and then the office and and and that so it's climbing up and that's for any of the objects that i've clicked on so if your relationships are good in your cmdb um you you have a way to uh to view these and this one's an interesting one i think if i look at this going upstream and and downstream i go uh view generate uh i'm going to go upstream and i want to see this fountain service here degenerate tunnel direction i like this one because it really shows the relationships well and that you can see okay you've got the service for fountains um and you've got you've got different uh types you got the pipes here you've got the different types of uh you've got the different types of fountains that are that are included here that make up this service so it's an easy way to kind of see oh you know we have all this is how many we have we actually have about double this in real life um of these of these different uh super shooters and extreme shooters and and oarsmen and uh this is a great way and so if i wanted to say hey i need to view view a list of all this stuff i just want a flat list view this is um a way to to do that we've created a special way to look at downstream however many records you want 292. uh we had to do some custom stuff here because it'll break a url in a uh in a traditional um web browser so auditors will just walk out after you show them that like thank you i'm done yeah and so and and from here i could i can uh whoops ungroup i can actually create a report off of this too so now you can so i spent a tremendous amount of time with the cv query builder and i just got everyone has gotten a little has been a little challenged by it honestly because um you can't it has to complete the full relationship path and so you can't see something like this if something goes down two layers but then something else goes on six layers you can't ever get to that six layer so this allows you to to be able to have full visibility all the way down of all of your data so you can report off of this this becomes a point in time sort of performance analytics view of of your service um so super powerful we're really excited about this and uh you know lou why don't you come off huge all right they didn't want to interrupt so i figured i'd start rapid fire with the questions put them in the chat and this looks great but there was some questions more concerns i would have i mean how many cis are in the cmdb right when we've experienced 12 million so far we start seeing degradation of forms loading because you know it's building all those relationships in the background yeah so we have in our production instance we have four million and we have seen that um uh with a lot of the cloud assets and i think um i've been in some heated discussions with uh support on this because after uh it's it's really what we've seen is per object if you have more than i think like 150 or 200 relationships to one thing you start to see issues so so if this oarsmen has 200 yeah you can start to see issues around this point so you could break this down into additional services and then you'd be fine yeah uh definitely i mean we're up like i said 12 million and i'm saying six to eight seconds you know for forms to sometimes load right yeah and there's no stopping the relationships that discovery is gonna you know start building especially with something like this because you're going beyond the traditional servers firewalls routers you know you're getting into the cameras and you know all the little scada system components and things like that the biggest issues we've seen are on like esx servers where there are they just connect to everything or network devices and so we actually do here is we filter these out you can filter them out from here uh whatever you want and and you can say i want to add okay i have location location detail um let me add in another column that i want to see but you can say what classes to include or exclude and what fields to include as tool tips right from here so this gives you a filtered view to filter out the things that are the really noisy ci's like if i'm gonna really um see a downstream object and has to go through any kind of routers and switches you're done because it will it will hit thousands everything connects to everything right on the network you have to kind of filter those out is what we're finding um and uh create a path that's through that's through something so you save that filter like you do in the dependency maps where you can create your you know so these are all the different filters that we have so i have power chain classes so and so yeah these are this is a table we actually were using these uh built-in service now table we found we had to use five different tables to link all of it so now we just built something super simple um that is a as a table within the application scope that does this and it uh it so might for power chain classes nothing's going to show up because there's no power there's nothing there but i open this up and you would see you know ups power strip and so then my view of the world is completely different and it's uh it's it's really great um to to be able to filter that out and then also create custom technical uh services that um we can access through here um so i can i can access any cmdb group from here too if i said i want to see tier 1 applications or i want to see esx serves all of them and their relationships down stream or upstream um this would this would do that so uh like uh actually if i had a single group that was called so yeah so we we've run into all of those issues and we found that you can have a lot of ci's but the things that are noisy you've got to you've got to deal with those and if you can do that then it runs pretty well unless you have uh the conditions column in a-list view it will kill anything i found um so when i'll do assist report and i'll look at all the reports and i have that conditions column boy it just causes major issues well yeah because the dependency maps just out of the box will show if there's fiber controller disks there and there's you know 50 of them they're all going to try to build on that map and who cares all right there's 50 discs i don't need to see them all you know blurry right right right it's not it's not um relevant necessarily or um we have you know we had built a cmdb maintenance application at the same time servicenow came out with theirs because we're like we need to clean up the software we need to clean up um the memory modules on servers that are retired we might want the name of the system still in there but i don't need the associated software and memory modules and dns names and all these other things let's clean all that up let's just keep what we need for reporting purposes historically but everything else and and really it's key to understanding uh you know to understanding this view of of how everything's related if you can do that the csdm kind of pops and becomes all comes alive yeah what about the responsiveness of the client your machine seems pretty responsive building these but is this is this machine you're using boosted in other words will this work in that any any person's laptop with any responsiveness yeah that's a great question so i have a macbook and a desktop and right now i'm running this on on my desktop it runs fine on my macbook but the problem is i'll have six seven maps open at a time if you have one it's great it's no problem it's fine it's super responsive and but you're right it is a little bit higher of a hit on on some certain things like this view is is is a is a beast a little bit because it's just and that's why we've got we built the interactive filters to just show one rack at a time to just show one and to just show one um uh location at a time because we found that it's it's really easier and and people already have the dashboards built out let me interact with those versus forcing them to go into a map separately i can just add in a map to an existing dashboard and so it's great for demos to be able to show you know something that is the full data center but really an admin or other people may only want to see as soon as yeah i mean i need to see the whole thing but the traditional it admins they want to know they want to see their storage rack they want to see where they know it's approximately here um an office admin this is another thing that we've been spending some time on love this this is great this is a way to manage your your offices and your rooms and uh this is an office here that's that's um that's been built out but yeah this one is a little bit heavy but if you do per room you can now see uh different conference rooms uh and how they and how they relate so i i wasn't here at the beginning so i was like probably my last question uh because i lost the context i was about 15 minutes late uh it's it's you it's leveraging arcgis the pre tool i mean how is this uh these maps and everything yes what is that it's reaching out to the arcgis uh api for javascript now we have it's using the libraries from that it's reaching out and calling those libraries and those libraries have a lot of built-in things which is uh linked to rts online which is a major esri and we have billions of maps that are generated every every month from around the world um so really the business leader in mapping and and business leader and workflows it's like two puzzle pieces fitting together um but that's how we're leveraging is using the api for javascript and and in our map one final thing i'll show you um i think that would be useful this is so this is you know a way to actually so control uh controllers for doors and things like that um and managing your assets managing if you wanted to see how when last time this was cleaned and you want to set up schedules and then you can just see that through here uh the operational status of devices um what what's the which ones are operational which ones are not uh all of that you can do this directly using the rts api for javascript which also has a built-in uh language called arcade which which does you know can do querying based on geography basically so it's lever that's what it's leveraging um we are like if if service now is the house and arcgi and esri is the door we're the hinges just linking them together that's what that's what we're doing and and we're extending the functionality as well and and people are surprised at how fast this is and partly it is because we're directly calling right we've every step we take we say what's the performance hit on this how can we make this faster uh i might have a couple of developers on the call but i have fantastic developers that are that were all working together on this talking about this every day and and how to uh to make sure that it's responsive um and um it's really even extending the ideas for internally with esri and so you could build on top of our indoors um product but um this would just be uh and using our documentation site i guess don't have that up here it actually would walk you through once we release this in the store okay how do you how do you get started okay you do this you get an api key you know you go in here and you put it like we're trying to make it really easy for folks to to do this uh so we're excited about i'm in i.t i'm not in sales i have i'm just building this but i know that it's sort of a unique thing in that we've traditionally you put all your data in the geodatabase and if you have it there we can also reference it from here but it's it's storing it in in the data you already have it's just showing that if you have a great cmdb this you would this is just going to light up when you when you turn it on and it's um it's going to be on the store right todd that's where yes the plan is for it to be in the store uh any any month here um we're just having internally at esri it's uh you know how do we do this it's sort of a new thing where we're so deeply integrated with another platform and this better together story is is is really powerful did did i miss the maps with regards to csdm and the relationships between uh business apps consuming app services uh depending on by service offerings yeah we'll put that in the recording he went through that earlier i think yeah yeah so that was right at the beginning he went through some of the cmdb stuff cool thank you yeah yep okay thanks john great demo todd that's awesome it's come a long way since last time i saw it even yeah you guys must be doing a ton of work yeah well we're just as as use cases come out and we have like a dozen of them uh we're just continuing to build out different different tools and different ways to visualize things awesome awesome awesome all right i want to switch to some less visual stuff but some uh some esri re use cases that i've recently run into that i've been working on and i'm going to show you two of them just so these are things that you can i'm going to show you how you can get them too if you want to use some of them but the first one is where uh once a case uh so we're doing a case record here and the simulation i was doing for one of the states is they have somebody that comes in for a uh for help for a senior and uh once that once that person is authorized help they connect them to providers that can provide the help then they would do in-home service so what we want to do is we want to automate that step to when they approve the request we want to automate that part where it says okay these are the these are the providers that you're authorized to use because we don't want providers driving 150 miles right to render service in somebody's home for health care and so that was the first use case that we had and i just want to show you a little bit about what that looks like and it gets back to a little bit of what todd was talking about where we want to use those apis so the first thing i did is i made a pretty simple api call and that like like todd said that's really well documented and you don't have to do all the parsing here right so i can do a rest call out and then once i do the rest call out i can go ahead and get the result set back and then parse it and then i'm able to pass it back so that i can use it in my workflow so the first one was pretty simple i just needed to go ahead and i'll i'll put in a i'll show you what that looks like if i run a test here and i this is just going to take an address right so i would i'd format the address out of the uh or i'd create the address out of the either location data or directly out of the form that gets created my paste not working so i have to put my my address in here and now everybody sees where i live okay and then when i run the test what's going to do it's going to take that that data and then what the api does this uh like i said this really basic one it's gonna give you candidates that match that right so one of the things that it does when you look it up it does address normalization so i passed it the address to the call then the action came back and it said yep everything worked okay and then it gave me a lat long now if i want to see the details i can actually see all the dirty details of what it passed back right so i passed these in as parameters and when it when it came back and returned the information back from from the call you can see that this is the output data so it gives me all these coordinates and it says this one here is a hundred percent match so if i if there were five that were close it would give me the one with the highest probability of being a match and all i do is i take that at the end i'm taking that in the action and i'm passing it back inside of my outputs so all i want to do is i want to put in a real basic string address and i want to return a lot long right so in my output here you'll see that this this little spoke that i built just returns the lat long for the location and so this is really good like i said for address normalization for a bunch of things if you're pulling them out of forms you want to make well you want to get that as best you can and that little api will do that now the next thing we had to do i had to create another spoke that we didn't have with esri and i used a different api so there's another one if you go in that book that todd showed earlier i was going to show that but it's great he did i'm using this thing called closest facility and what i can do here with closest facility is i could pass it an input so i could say this is my service provider list and i can pull that from my from my location database and service now so what i was able to do to build this service provider list is you just go look up locations with a parent called service provider and then you could create an array and pass that array down here right and what this will do is it'll take my current lat long which could be passed in from my address lookup because that's what it returns and then my list of service providers and it's going to say okay out of that from that lat long these are the closest ones so this one when i run the rest step it's going to go ahead and i want to show you i left this out so i have some default values in here i'm not actually passing this yet because i want to show you a little test here and how how this stuff is a lot easier when you're using the service now framework okay so this is going to pass back something that looks really nasty and and this is where developers is a lot of people get frustrated and they start stop using the apis so the response here right it's going to return a bunch of directions to how to get the closest facility right and you don't want to work with that mess because now you got to start coding like crazy well if you're using service now what you can do is you can go in here and you could say okay that i got that action back right i ran the action it returned something but now what i want to do is i want to add a step here and i want to go ahead and parse that information out so i don't want to write a bunch of code to parse the information so what i can do is i can come here and use the json parser and then i paste that nasty stuff back in here so i don't have to deal with it and i click on here and it's going to actually build that structured return set for me so now i'm working with a really clean thing that gets me all the routes that i need and then i could start creating the returns from there so i can pull my outputs right from that set and i could say okay just get me the five closest routes out of that data set and return it in outputs and it's kind of the same way i did it here when i did the address lookup i had a little step that said just go get this stuff out of json and just return those two things right from my top candidate so you can do the same thing in that other return set when i do the nearby lookup i can go ahead and pick out the top three and drop those in my outputs or my top five whatever the case might be um i might even want to create another input to say how many locations do you want well i want the top ten in this case we're we're trying to give it back to a patient who needs care so i want to give them the top 10 places they can go to get that care there's a lot of things you can use this for mark bodman did a video on csdm where it was location-based services hey i got a laptop i need fix well hey john's in san diego so it's going to put me in my san diego location or when i'm in santa clara if i'm closer to the headquarters there you could say you can go to that help desk and get them so you can use this for a lot of different things the combination of these two so what it might look like is if you go to my flow test right is i create a record so this was the record coming in from our public service public sector digital services it looked up the address it looked up the locations in the table that i need so it built an array of locations then it gave the locations and the address from the record and it did a nearby lookup and then at the end it sent an email to the person that was asking for service so now i don't have that agent sitting in the chair sitting here swivel chairing and saying where does that person live go look at a map okay these are the five locations cutting and pasting that into an email now it's all automated right so now we can just send the email and i can give them the list of providers from that list right so this would have this create an array in there with all the providers it built an array and i could just dump that back to the user as i go so that the email's all formatted at the end and you automate that whole step now this this little all the code i sent you here that i showed you here if you did want to use this it is on my public repo so you can just go get esri nearby and just what i showed you today is all that's there so it's not fully working but because you'd have to code it and say okay what case what type of case am i attaching it to or what's my use case um i just wanted to show you those examples so you got to do some more work to use it but it's probably 75 percent of the way there for some really good use cases i'm going to show you one other one that i have in here and i know we're running out of time so this is one that we have running in a couple places for 3-1-1 and a lot of times you have almost anywhere i go any municipality who's mostly i deal with you'll see put in your name your address your city-state zip uh what we can do here is we can embed an esri map right so this way the map lets you either pick the location or i can type in a location and this is using all esri to look up the locations for you because you don't want to look up the service now locations because there's not a lot of them right so we want to use the esri data set so we get every location and this way when i submit this my address is already normalized right so when i submit this in the back end this is passing back to that name and address field it's passing back this information that esri gave me when i clicked on a point and so this gets rid of all of the you know in the back end i have to normalize the address and it also gets rid of your end users having to type in three lines every time they submit a form with you right so if we if there are somewhere it will find their location i don't know if you recognize but when i turn this on it it also has find me built in if they have that turned on it'll bring you to that current location uh so that is available um it's also on our on our workgroup instance so if you want to get it off there um that's also on the github repo that is in our public service template all right so that's a real quick demo of that piece so there's a couple ways you can use it on the front end for either routing or you can use it for the filling out the form there's also like here i could pretty easily take this map and i could say hey give me my closest covid testing locations and what it could do is it could pull out pull back the map and show me here's you know here's three cvs's in a walgreens and right so that that stuff we did we can mix and match those because it's just data on a layer right on a map layer that shows you how to get there now the um which what i'm using here is an esri leaflet and again what i'm using on the back end are those javascript apis so if i go into this this leaflet that i built in service now there's the server script that renders the map but i have to put this api key in from esri in order to make this work so when i when you take this code set um it's gonna you're gonna have to put your own api key in now the way that you can get that i'm gonna show you a little bit more about this but i want to we're running out of time the way that you can get that api right is you go out to the site and you can get a free api key for testing purposes so when you go here you just create an account on developers.arcgis.com and it'll give you that api key that you can use and you can use it for like base maps and a couple other things the closest facility one you have to have a paid user so i had to actually pay for the account because that closest facility lookup is pretty expensive right there's a lot of querying there because it gives you street by street address directions to that location but also the distance away so that where they give you the lookup one i could do with free i wouldn't be able to do the closest facility without having you know a licensed user to give me access to that data set okay so the so if i come back here you would be able to take this and if you downloaded it and you wanted to use the either the built-in map or the lookup both of those you can get with that free key the only thing i did here after i got the regular map running and i'm going to show you how i did that is now you can take data right you take data from the map that's being rendered in this uh this is just a widget on servicenow so you take the data from the map and you're able to pass it back in the client controller you can actually pass the data back into your variables so this is where i'm getting the longitude latitude and then the location name i'm getting all that back from the api call and that's what todd was saying before very similar to the way that he gets like when he clicks on a thing on the map he not only gets the location but he also gets the asset information right so you have basically two data sets just by clicking on a point it's just floating out there in the client so now what you got to do is you got to rip that stuff out of the client and you got to be able to use it in the fields right so that's what we're doing down here and that's what you'd have to do in the client controller so that the one that's pre-built now will give you this this esri widget and what the the widget does so let me just show you what that looks like real quick because what you want to do is you don't want to have to deal with this every time so what happens is you would go in and you would look at a at a catalog so i have the illegal fishing record producer and with that record producer so that's this way you know that that's what you're seeing on the portal right is that record producer and then underneath that i'm using two variable sets so the variable set one builds the map and then one catches the information that the map passes back like the lat long and the other piece so this way you have those two variable sets and i could use those in any any piece i want right i can use it in any catalog item i want instead of having to rebuild that every time it's another reusable components across the platform all right one other use case that i'll bring up real quick is uh we're working on one now and ty and i have had some conversations about this where you have this huge data set and one of the ones that came up was people are working on what they call a linear asset and a linear asset is hey i have the pipeline for the you know the westfield park location i have the sprinkler pipes and the sprinkler pipe is broken well you have an asset called sprinkler pipe for westfield park and it's big deal right you don't have enough information so what you would do is you would click on the a part of the pipe and then there's a linear asset so it'd say hey that's section 201 out of 500. so that gives the dispatcher the section of the pipe they need to work on now there's a couple choices you can do here if you want to use that to create a a case in service now is a you can take it and create that look that asset from that pipe information so esri like pulls up the location so you can create the location it also pulls up the asset so you can create the asset b you can just take it if you don't want to put that in your asset database and you can just use it to fill out your short description for the work order all right so now you have the work order i have the location i could put a direct link in the description of the case for the person i'm dispatching so i could fill all that out in text just from where todd was clicking right todd was clicking on those components so if it's not in service now you have the option of just taking the location information out of it for that that point in time case instead of having to worry about that location being in the servicenow database okay so so one there's this concept of transient assets where i can dump that pipe in there just for the time i need it or there's the second one i could just use the textual information from that api call to give the technician what they need for that one case so this really expands what you can do for cases because you can do now you can do work orders rather a broad set of work orders across any data set so usually esri is going to have you know 75 facilities are all mapped out and that facilities data set with esri they could be coming from anywhere you might have 75 facilities with 25 back-end maximo systems housing all that information so now what we can do is we can dispatch somebody for a work order using that information from those maximo systems okay so use the map think about it a little broader in terms of not only does it give me information about where something is but it's also giving me information about a lot of some things with all these layers so those layers basically give you free api calls is what i'm saying if you use the layer esri is going to take care of all that back end calling out to those data sources to bring back into you i know we're at time i don't have time to go over the uh topics for the next area but we don't have a topic for the next two weeks if anybody has any topics they'd like to discuss i'll go ahead and shoot them my way i know i've heard a lot but i haven't had anybody step up yet for a for csdm examples and i saw mitch reaching out but if anybody does have any csdm examples real world examples not the ones that we show you know then go ahead and bring them to us so that we can go ahead and talk about them on the next call now that'd be great to have some of those because a lot of people are trying to get that csdm work done all right so a lot of information today i will send out the recording i'll have it up on our youtube playlist by the end of the day and todd thanks for speaking that was that was great information and we'll see you all in two weeks everybody you
https://www.youtube.com/watch?v=LPPfZ1nPM9E