logo

NJP

Sessions

4863 sessions, 88 canceled

4863 sessions, 88 canceled
Advanced filters
Types:
SPN1812-K22 Knowledge 2022
SPN1817-K22 Knowledge 2022
SPN1820-K22 Knowledge 2022
SPN1823-K22 Knowledge 2022
SPN1825-K22 Knowledge 2022
SPN1829-K22 Knowledge 2022
CCB1115-K22 Knowledge 2022

Let's break down AI Search

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Hi, and welcome to the session called let's break down AI Search and how it works behind the scenes. I want to talk to you about AI Search. and what it is, but I'm not going to walk you through how to set it up or even show you what it looks like. I am, though, going to walk you through some of the main mechanics on how AI Search does what it does, and by doing that, give you a better understanding of how you can shape your content to provide better value for your end users. So the agenda is this. So we're going to quickly just look at what AI Search is, then we're going to learn about indexes, something called word stemming, and search term relevancy-- how to make your search relevant. And then we're going to look into how AI Research deals with typos, and in the end, look at how this matters. Why do we need to know these things to work with AI Search? So allow me to first introduce myself. My name is Anders Figenschow. I am a certified master architect, and also a ServiceNow developer MVP. I work at Sopra Steria as CTO and digital workflows, and I have about seven years of ServiceNow experience. But I also have 22 years of experience as a software developer. And if you hear me talking, just like now, my experience of those two years are heavily influencing what I'm talking about. So one of my last projects now was to work with Inter IKEA with their transformation of document management. And if you're attending the Hague this year at Knowledge, please do come by and have a look at that session as well, which I'm having with that customer-- as well as I have an in-person version of this session, which is a bit longer, and you can come and have a talk with me after. So what is AI Search? So it is the next-geneation search engine from ServiceNow. The previous one was Zing Search, and it's-- this new one is being made from the bottom up, so it doesn't really re-use anything from the old search, and then has a lot of new capabilities that improves it a lot. We're going to look at how that works. To install AI Search, you have to specifically ask for it. But you can do that from within your instance. You write AI Search status in the search-- in your instance, and it will give you a place. You can just click and request for it to be installed, and within a day or two, you'll have it ready to use. And you can just set up the search sources, and you're ready to go. So let's have a look at the architecture of AI Search. So there's data first-- so for example, knowledge articles, catalog items, users, or whatever you want to be accessible for the search engine as a search source. So the index is in the middle, and there's a reason for. That is the core engine, is the index, and we'll have a look at that in a second. You can also index external sources. So if you want to index data from, for example, SharePoint. You can set that up as well. And it's using API to grab the content, place it into the index table. It does not copy the articles itself, and it will not display it within ServiceNow. It will actually redirect you to where that content is originally. Then you have the service portal and mobile apps, and so on that is utilizing the AI Search-- which is basically a front end for the search engine itself And of course, you have the technologies that are underlying technologies that helping you out-- the machine learning the natural language and so on. So the features of the search engine AI Search is these index tables. It has typo handling, word stemming. It has some algorithms to create the scoring relevancy for a search. And it's something we'll look into also. And there's two things I want to mention while we're on this slide, which is the stop words and the synonyms-- so the synonyms first. So if someone is searching for a broken laptop in the search portal, in the Service Portal. Maybe it doesn't say laptop in that article. It says computer-- so broken computer. So instead of having to index every single variety of this to make your end users find the article, you would add a synonym of laptop to computer, and the search engine understands this, and it will find that article with the same sort of relevancy. The stop words is the opposite. So you have a dictionary-- and it's already in your instance-- that is containing words that are never relevant for a search, because if you have a word that is in each and every article, it carries no weight. So if the word me is in all articles, then searching for help me doesn't really work in the search engine. So you have to stop words that are basically excluding these very common words, so it doesn't mess with the weighting, and the scoring system, and the relevancy. Of course, if you're into that sort of thing, you can use stop words dictionary to censor. So you can maybe censor articles that you don't want people to see-- which, if you're in a country with as popular, that's what you do. Let's have a look at the indexes and how that works. So the index is the core of the search engine. It is a collection of all of the words present in your content library-- for example, the knowledge base-- with the listed scoring to each one pointing to each article. Now, it works the same way in, for example, a cookbook. So if you have a cookbook, you want to open up a cookbook and find a specific dish you want to make. You don't browse each and every page of hundreds of pages potentially to find your recipe. You would look in the back. And here's one example of a table of contents. So maybe I want to make light and fluffy waffles. So it's on page 21. So if I switch each and every page and go to page 21, it takes a long time to find it. So instead, I can just browse this very quick index and find that, oh, what I'm looking for is on page 21. There you go. There's my target. So I use that. So an index table in ServiceNow and other search engines as well is working the very same way. So it's creating a list of all the words that are relevant for you and telling the search engine where to find them-- so which article has this and that word or that term. And it will just be very much quicker to search through a smaller table with less data. And having less data is actually very important. So you need to, when you're building your index-- and how ServiceNow does this as well-- is to try to reduce the need to have these words. So stop words is one way. You don't need to index something that is in the stop word list. But you also need to take into consideration that you have variations of words. So when we get to that, we have something called word stemming. So let's look at one example of variations of words where you don't want to index all of them. So the word consult, that is the stem word for these variations-- consultant, consulting, even the plural, consultants. So instead of taking all of these words and indexing them, making the index potentially eight times bigger than, you have to making this slower to search-- then ServiceNow will just index the stem word consult. And when you're searching for consulting, it knows the stem of that word also, and it finds just the stem word. So it treats them as if it's the same one. And it will list up articles that has all these variations, and that's very useful as well. I have some code, actually I want to show you-- how it works. So there was a guy called Porter, who created an algorithm called the Porter stemming algorithm. So I found this just by looking around the internet. And it was fairly easy to find people who already made JavaScript versions of it. So I put it into a Script Include, and I want to look how-- see how it works. So in this one I'm just having-- inserting a word and finding the stem of that word. That's everything this does. I'm not going to show the code, because we don't have much time. So we just have to look at the results. So I'm going to try the word computerize. What is the stem of that word? So we can see here that the stem of computerized is computer-- makes sense. Let's see if we get the same result if you take the plural of computer, computers. No, actually not. So it's compute. So there's some surprises when it comes to these algorithms, but there's reason for it. We can even try to do something else. We can take computerism, if that is a word. And the stem of that one is computer as well. So with these examples, you can see how it shortens the world and finds the stem of it. There's a few words that-- not possible to use an algorithm for. For example, if you have words like verbs, like I am, you are, those are transformative, so they would be a little bit different. So in those cases, you have the most common ones are actually being translated into one of the forms of that word. And that's how you can use the Porter stemming method-- and how ServiceNow does as well-- to find a stem of a word. So then there's the search term relevancy. So when you have these words in the index, ServiceNow and the search engine needs to know your search query's relevancy to the different articles. So if you write broken laptop, some articles might be more relevant than the others. So how do we do that? So there are some algorithms again. So there's one call to TF-IDF algorithm. And ServiceNow is using this, and several other search engines are using the same one. So what it does is it's calculating the frequency of a word within the document. Let's say you have a document with 100 words, but the word laptop is mentioned twice. So you have a frequency of two. And then you have the inverse document frequency, which is basically count the frequency of a word across the document. So you can see, how relevant is the word in one document compared to the relevancy across all the documents? And with this algorithm, you can actually see that it gives some pretty good results when it comes to these search queries and which one's the search engine promotes to be the top match. And it places this into the index with the word. So maybe the word laptop is a pairing three articles, but one is more relevant to the other, because it has a higher TF-IDF score. That is the relevancy score. So the problem with people is that they can't always type correctly. And me being Norwegian, English being a second language, I type wrong all the time. So for these search engines to have type handling, it's helping me out a lot. So how does this work really you cannot add all the variations of typos into the index. It would make the index too big. So you need some dynamic algorithm to deal with these typos. There's, luckily, some smart people already figured out how this works, and there's something called string metric, or edit distance. What that means is that you have two words and you compare them to each other of how far away they are. What that means is, how many changes do you need to make to one word-- changes to the characters in that word to match the other one? So in this example, we have the word intention here, and you have another word called execution. One change is you can delete one character here, you can substitute these three characters, and you can insert another one here, and those five changes will transform the first word into the second one. That will give this a distance score of five, according to one of these algorithms called the Levenshtein algorithm. It's not documented ServiceNow is using the Levenshtein algorithm, but I'm assuming they do, because if you look into the Script Includes, you find the mention of Levenshtein a couple places. So I went and found that algorithm and tested it out in my own instance. So how about we have a look now and see how that works. So first let me show you that. I'm just making an array, and I'm just adding a few words into that array, just as a proof of concept now. And I'm going to look at a few of these words, but I'm going to write them as typos and see how the Levenshtein algorithm or the string metric at a distance algorithm works and gives me the best results. So first let me try to type in computer, but I'm adding an extra r. Like I told you, you don't want to index this word, because it has a typo. So I'm going to look through my array of words and see what the distance is for the nearest word. So here it says, you were looking for a computerr-- with an extra r-- and the closest word in the dictionary is the computer. And it has a Levenshtein distance of 1, which makes sense, because I just needed to delete this one. Let's try another word. Let's write comutre. I'm not sure this is a word. But it says that the closest word is commute, and it has a Levenshtein distance of 2. So this is the closest word. It realizes that this is probably a typo. Now, of course, as you can see, you have a much farther distance for all these other words ServiceNow is the distance of mine. So it's very far away. A good way to think about this is that you've put a threshold on it, and everything above, for example, 2 or 3 is probably not a typo, but a different word. So if I write something gibberishy, like this, let's see what-- it will find the closest word, but it probably won't be considered a typo. So the closest word is-- actually, several ones have this same distance, but 8 it is most likely not a typo. It's a different word. So this is how ServiceNow also uses algorithms to deal with your end users' typos and still give a good result. Even Google has this. If you write something which has a typo, it will ask underneath, did you mean, and the word closest to that one. And it will actually give you the results without the typo itself. So what? Now that we know how the search engine deals with typos, how it scores for relevancy, how it stems words and uses that in the dictionary, and how the dictionary's built, then so what? Why does this matter to us? Do we need to know these things to use the search engine? Well, obviously not, but it will help you to deliver better value to your end users if you know how it works. Let me explain. You can now advise your customers on how the relevance scoring works. So if you have an article with 100 words, if you have 10 words of those being the same, it will score very high in the relevancy scoring. So you can now tell your customer or end user that the frequency of word matters when it comes to the relevancy scoring in the search engine. Now, you can also tell your customer and user how ServiceNow handles the word variations. You don't need to put all of these variations in a meta field, for example, like computer, computerized, computers. ServiceNow will deal with that. So you can advise them to spend the time working with a search in other ways. Experimenting with stop words can give you totally different amount of results, and also using synonyms will improve your hit rate, so-- using laptop, and computer, and so on. So both stop words and synonyms already have tables in ServiceNow where you can have a look at some demo data as well. So by saying that, let me conclude and say thank you for checking in. And I'm hoping to see you in the Hague this year. Have a chat with me, and let's talk about how search engines work and how to make your life better for you and your customer. Thank you. [MUSIC PLAYING]

CCB1116-K22 Knowledge 2022

Integrations for fun and profit

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Welcome to Integrations for Fun and Profit. My name is Eric Riemer. I'm the development team lead for the ServiceNow practice at New Access Innovations. We're a ServiceNow partner working exclusively in the federal government space. I'm also a 2021 and 2022 ServiceNow Developer MVP. I work on a lot of interesting projects, but that's not actually why we're here, to talk about me. In this session, we're going to integrate, have fun, and profit. More seriously, we're going to go through what integration is, build some examples, and give you some tools that you can go and learn more yourself. So first, what is an integration? Well, there are so many terms that people use, as if you should just know what they all are. And this long list is only a few of them. The good news, you don't need to actually know most of them to get started. Eventually, yeah, you're going to have to learn a lot of them. But up front, very few are actually going to be important. So we don't need to boil the ocean. And let's simplify things. So there's only two things that you really need to start off knowing. What is an integration? And that's when computers talk to other computers to exchange information or take actions. And yeah, that's a gross oversimplification. The second is, what is an API? It stands for Application Programming Interface, which you don't actually need to know. What you do need to know is that it is the agreed-upon ways for the computers to talk to each other. So let's look at some examples of how to do this. So there's two major buckets that all integrations fall into. The first one is inbound. That's when somebody else is going to talk to you, rather than you talking to them. So some examples of this is a SRAPI-- a Scripted REST API. It gives you total control. It's my favorite one to use. There's out-of-the-box APIs, like the Table API and the Import Set API. They're out of the box. They're there. You don't have to lift a finger for them to exist. And they're super well-documented. Finally, there's the Flow Designer API trigger. And this one is super low code. You don't have to know any code whatsoever to use it. It does have the caveat that it's asynchronous. So you can't return any data. Makes it not so useful if somebody says, hey, give me the details of this record. But it is potentially really useful for somebody wanting to insert a new record, if you want to do that. Now, no matter which one you choose, you can and should make use of the REST API Explorer for testing. You can find it by filtering the Left Nav or the All menu, if you're using the Next UI. And one of the bonuses, not only can you test it that way by setting all your parameters, but it'll even give you code snippets that you can then pass along to that third party developer of like, here is everything you need to talk to this API correctly, so that they're not stuck only searching through documentation. Especially if you made a scripted REST API or a Flow Designer API trigger, if you didn't write that documentation, it doesn't exist. But at least you can give them, without having to write anything, here's how to call my API. And here's the code in the language that you're using to do it. So now let's get into an example, Scripted REST API. There's going to be a bunch of code, but it's not that scary. So here's the quick tour of what we're going to be looking at here. OK, so the first is a URL to call this API. The part in green is ServiceNow provided. It's your instance URL slash API slash your company code. Every company has a unique code. Even PDIs have a company code. So if you're just playing with this in a personal developer instance, you totally can. The next part in orange are the name you gave the API, a question mark, and the parameter name that you defined. And finally, in white is the actual value that's going to be sent as a parameter. You can have a whole bunch of parameters. I'm keeping it simple and only having one. And I'm expecting to receive an incident number. And I'm going to return some details. So here's the rest of the code. Again, looks like a lot. Not actually as scary as it might look. So lines 3 and 4 are just to grab the parameters from that payload that got sent. And so in this case, it's saying, find the number of parameter. And we're going to just hang on to that for a second. And line 7, we're going to do a GlideRecord.get on that record. And if it exists, build a payload of information to return. Pretty straightforward stuff, even if you don't understand what the heck this payload is supposed to look like. It's a JSON object. Almost doesn't even matter, because you're returning it to somebody else who needs to be able to handle that. Line 20 sets the response body with that payload that you're sending to them. Line 21 is the HTTP status. Those are those weird codes that you see and hear about, like 404, page not found, and 500 error, and whatnot. In this case, it's a 200, which just means you did it. You're good. And that's going to be returned to them. Line 22 deals with the bad incident number. Somebody sends me a number that doesn't exist, I'm going to send them a 404 not found message and an error saying, you gave me a bad number. And just like that, I've built a Scripted REST API endpoint that I can then make, that somebody else can call. And then they can get the information that they need. Now, the second major bucket of integrations is outbound. That's where you're going to send a message out to a different system and either get some information back from it or have it take an action. You should know, there might be ServiceNow licensing implications, depending on your contract. Ask your ServiceNow sales rep, if you have any questions about that. Because every contract is different, and I have no idea what yours says. So the easiest way to do this is to use an existing Integration Hub Spoke. There's a whole lot of them. ServiceNow keeps on coming up with more of them. Low code. It's great to use. If one of those doesn't exist, you can also make your own spoke. It's not actually that hard, and we're going to do an example of that in just a few minutes here. And it's pretty simple. It's sometimes even no code to build an entire outbound message that you can then do stuff with. Next is REST Message. This is the pro code way to do it, where you're going to have to write a bunch of code. You need to understand more what you're doing. But it gives you far more control. It also lets you test it with example parameters and see if you're getting back the results that you expect or not. Finally, there's Recordless REST, which is even more pro code. It doesn't have a REST message record that you'd find in the navigator. It just exists in a business rule or something, and that's the only place it exists. Another downside of it is it limits reusability, because it only exists in that one place. So we already built an example of an inbound API. So let's talk about how to make an outbound one. So how do you get started with that? Well, go find the API documentation, and then you might panic a little bit. This is the ServiceNow documentation to use the table API to get the details of one single record. It's fairly representative of what good API documentation looks like. It looks really long and complicated, doesn't it? And it's only one simple-sounding use case for an API. So let's break this down as we build a custom action and Flow Designer so that we can make use of it. So in the interest of time, we're not going to go through every single painful step. But basically, you go to Flow Designer. You go to New, Action, give it a name. We defined an input and added a REST step. And that's where I'm going to jump to on the next slide. And we're going to go through side-by-side with the documentation and what we're doing within that custom action in order to build on it. So I'm doing this with the ServiceNow API documentation that I just showed you. But any API should have similar documentation. Some APIs have absolutely horrid documentation, and I can't help you with that. I'm sorry. You just have to suffer through it. So we're going to do a GET. That's why we set the HTTP method, because I want to get information back into my system. I also copied the URL format into the resource path. And all of those parts surrounded by curly brackets are variables that we're going to need to replace. So those are the path parameters that we're going to replace them with. To make a simple example, I'm hardcoding in the incident table. So this action will get the details of an incident. And then I use the data pill from my input for the sys ID that I want to retrieve the details for. I'm skipping over the connection details, because depending on what you're integrating with, there are a lot of different authentication methods. Everything from a very basic username and password, or sometimes even no authentication, to far more complicated things that are way outside the scope of what I can talk about here today. But there's a lot of good documentation out there when you're looking for specific information about different authentication methods. Next, we have the query parameters. In this case, I set two of them. If you don't set them, they might have default values. The documentation is going to let you know if they're required or optional, and if they're optional, what the default is going to be. Just like the path on my last slide, I can stick the variable pills here from my input or anywhere else in my action, if I want to automate setting those or let the user, when they run those action, define it. In this case, I'm telling it that I want to get all of the details about the fields that I'm asking for-- not just the display value. Not just the raw value, but I want both for each of them. And that I only want to get back the values of a certain subset of fields. I don't want all of them. I only care about a couple of fields. Next up, we have headers. Same thing applies about optional versus required headers as well as the default values. In this case, ServiceNow is saying, well, would you like the response to be JSON or XML? In this case, we're just leaving it blank. We don't even need to set anything, because we're happy with JSON. Different APIs are going to have sometimes more, sometimes fewer things that you can set as your query parameters, header, body. That's why there's documentation. It'll tell you what you need to be building and setting. So great news, we built the request. And now we have to deal with the response that comes back to us. So the docs tell us we're getting name-value pairs. And we already saw that it's JSON name-value pairs. So I added a JSON parser step. And in that step, I set the source data field to the response body data pill from the request. So we finish the request step. We grab the output of that, put it into basically the input of this JSON parser. And the API docs were nice enough to give us a sample payload. So I just copied and pasted that into the source side and click Generate Target. ServiceNow did a whole bunch of parsing magic, and I have data pills for everything that the response might have. Now, some of you are looking at this and furiously writing me hate mail, because you remember that just a few slides ago, I set parameters to only look at some of the fields and not all of them. Then you look more closely and say, hey, you said you were querying the incident table, and that payload says the location table. And those fields aren't the same at all. And you are absolutely correct. Well done. So example payloads might not match your exact use case. And sometimes, you have to make a real request to get back a payload that you can use as a sample that's going to match what you're actually doing. How do you get that payload? Well, you test your flow. And when you run the test, you can look at the execution details. And you can scroll down a little bit and unfold the steps and then click on the response body. And that's going to give you the raw response of the actual API call that you made. So the system didn't know what to do with it, but it captured that you got a response. So I opened that up, copied and pasted into my parser step, clicked on Generate, and now I have a real payload for my API call with the exact fields that are going to get returned, and all of the types and everything else that I need to use for it. At this point, I just need to set up my action outputs. And then I can use this action in any of my flows. It's going to ask me as an input, please give me a sys ID. I can look that up from an existing record, if I'm saving those somewhere, or however else I'm going to get that input information. And then it's going to output those data pills with those values that I asked for. And that's it. You just made an action that's going to call an API and bring back useful data. And then continue on with your flow, and you can reuse this over and over again. Now, I know I went through a lot of stuff. And where do you go from here? I made a GitHub repo with some links to additional resources, the code that I used in this presentation, and other stuff that's going to help you as supplemental things to all of this. You can also feel free to find me on the #sndevs Slack. It is a wonderful community of developers, admins, and other ServiceNow professionals. It is a great place to go get help with whatever you need, talk to people, make connections. And again, if you have questions about this presentation, feel free to hit me up there. Did you like this session? I'm going to be doing it live in Las Vegas, and I would love to see you there. Thank you for watching. I hope that you found this useful and that you have a great time at Knowledge 22.

CCB1117-K22 Knowledge 2022

Stepping beyond the portal: Transitioning your skills to the Now Experience

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Welcome to Stepping Beyond the Portal. I'm Travis Toulson. In this session, we're going to be discussing how to transition your skills from the Service Portal to the Now Experience. So first of all, I want to cover a couple of things that we're not going to be covering in this session. And that's going to be NodeJS, now-cli, Component Project Scaffolding. For help on any of these things on getting started, you can check out the developer site, where there's a URL at the bottom. And there's a fantastic guide to help you get started down that road. So first up, let's talk about the editor experience. And for this, we're going to compare some of the features and attributes between the Service Portal editor versus what we are now working with in the Now Experience Components. So with the Service Portal editor experience, we're all familiar with that three-panel layout. And of course, there's a couple of hidden panels we can switch in. Widget source code is stored in ServiceNow in HTML, CSS, and ES5. The source code is combined primarily in a single record with the sp_widget. There are a couple of other widgets off of that. But for the most part, it's all governed within that single widget. Of course, the editor is browser-based, unless you're using the VS Code plug-ins. And whenever you save changes, you immediately get that update in the instance. You can immediately reload the page and see your results. And of course, one of the key features of Service Portal is that your server code and your client code sits side by side in the same widget, so you can rapidly iterate and build out those widgets on both sides of the network. Now, the UI Component editor experience really changes the game on this. First of all, your components are now stored in source code, basically in local files and folders on your local dev environment, using JSX, SCSS, and ES6. The source code is spread across numerous files. It's no longer consolidated to just one record. And you can bring your own code editor, which I highly recommend VS Code. Those changes also have to be deployed to the ServiceNow instance. So you're actually developing on a local environment. And you'll see those changes in the local environment. But if you want anybody else to see those changes, you're going to have to deploy your component up to the ServiceNow instance. Also, the UI component only contains the client code. So there's no server code inside of these components. And that's a very big difference between the two. So where do I put this code? Well, in the Now Experience, we're working primarily with JavaScript files and SCSS files. So your ES6 modules, in the form of JavaScript files, basically equate to your HTML templates, your Angular ng-templates, and pretty much all of your client-side JavaScript code-- the link function, the client controller, instance options, your angular providers. Basically any of this client's JavaScript that you would have put in Service Portal in various records is now all going to go into JavaScript files. And your SCSS equivalent, basically you'll have an SCSS inside of your local dev environment. And you will import those SCSS modules into your JavaScript modules. So it is a little bit different from what we're used to dealing with. But for the most part, there's really strong equivalent to the SCSS fields and the CSS dependency tables in your service portal widget. And as I said, there really is no equivalent for the server-side JavaScript. Basically, you can use UI Builder data resources or REST endpoints with the HTTP effect. But you really won't have the actual server code stashed in your components. Your components are strictly client-side. Now, in terms of how this looks in your local development environment, on the left-hand side, I've got the File Explorer for VS Code as the sample project that I'm currently working with. And you can see that the ES6 modules and the SCSS modules all fall under that SRC folder. And you can see the index.js and the styles.scss, which is part of your boilerplate project. Now, you can add additional files, additional folders, import things in. You can get as wild and crazy with the folder structure and file structure as you want. And that's one of the key advantages, is you can build larger projects in a very structured way, as compared to what we used to be able to do in Service Portal. So let's take a look at a sample project. And let's start out with the HTML template. So you can see in the laptop on the side there the example of what we're going to be outputting with the code. And so the view typically is done in the HTML template in the Service Portal. But let's look at how we would accomplish this in a Now Experience component. So in the Now Experience component, you can see the code on the right-hand side. And basically, if you look at that orange bar, you'll see a view function. Now, this is using the ES6 arrow function syntax. But trust me, it's basically just a function. So the HTML templates are going to be written in JSX. You'll notice the HTML inside of that view function. Now, JSX is a syntax extension to JavaScript. It's not actually HTML. We're not returning HTML out. Officially, your returning JavaScript objects that represent DOM nodes. But that's a little complicated for this session. The important part is to note that it is not HTML. And it has more equivalence to calling JavaScript functions. It does get compiled to JavaScript functions. And each view function can only return a single top-level element. And the last thing that I'll note is the parentheses after the return statement and at the end there. Those parentheses are very important when you're dealing with multiple HTML nodes. So you absolutely have to have that. And it basically creates the expression. So now let's talk about data binding. So in this one, you'll notice that I've changed the message from Hello, World to Hello, Travis. So basically, how would we bind that dynamic data? Now, in Service Portal, we used one way binding. And that used the double curly brace syntax in the HTML template. So let's take a look at how that's going to be done now. Again, on the right-hand side, you'll see the code. And you'll see in the first orange bubble that there's a var name equals Travis. So we're setting up a local variable. And then on the second red bubble there, you'll see a single curly brace with that name variable inside of it. Basically, since views are just functions, we can declare variables in them the same way we would in any JavaScript function. And that little single curly brace syntax is part of the JSX expression that embeds-- or binds the data to that particular expression. So it's very similar to our double curly brace syntax from Service Portal. And that's going to make the transition really easy. Now typically, we're going to want to get that dynamic data from somewhere else. We're not just going to use a static variable name. So let's take a look at how we can pass some instance options and hold internal state. And basically, this is going to be functionally equivalent to passing instance options into your widgets. Now, the one thing I want to highlight, though, is that there is a bit of a difference. Because in Now Experience components, the properties are much more powerful and a much more prevalent part of components than what they were in Service Portal. So once again, the example is there on the right. And let's take a look at the code. So first of all, take a look at that second orange line down there, where it specifies the properties inside of that createCustomElement call. And you'll see that we've defined a property called name. So this whole scaffolding is setting up our Now Experience component. This is some of the boilerplate scaffolding that is required. And the properties are basically equivalent to instance options. That name property is then being passed in to the view function via the state property. And you'll see on that first orange bubble, the Hello, state.properties.name. So the properties are exposed via that state variable-- or that state parameter. And you can use this in any of your custom components. Any properties that you add in that createCustomElement syntax is going to be available inside the view. And those properties can be updated as we perform different events and actions. But that, basically, is how you are going to pass data into your components in order to expose them within your view. So since we mentioned events and changing that data, let's go ahead and talk about, where's the ng-click? Where are these events? So once again, you'll see on the right-hand side, I have an example view with a button that says Change Name. So instead of changing that manually to Hello, Travis, we're going to change it when we click that button. So instead of using the on-click handlers in Service Portal, you usually use ng-click. And there's a bunch of other events we can use. But the short of it is that that triggers a digest loop, which reprocesses the view and updates it for you. Components are a little bit more straightforward. So once again, we're going to be using that view function. Everything basically goes inside this view function. It makes things very easy. And instead of the ng magic, you're actually going to bind events using on, dash, eventname, Just like you would traditional HTML and JavaScript events. And what's really powerful about this is that it even works with custom events. So if you define custom JavaScript events, you can just use on dash whatever event name you created, and it still works. Basically, behind the scenes, that on dash is just instructing the Snabbdom renderer to call element.addEventListener, where you pass the event name. So it's just a declarative syntax for that. And it makes it really easy to bind any event. So you really don't have to memorize any special magic ng incantations to make it work. You just have to know your event name. And you can see in the updateProperties where we are-- or sorry, we're passing in the updateProperties on that first orange dashed as a co-effect. And then on-- and I'm not going to go too much into that particular topic. You can find more on that in the guides. But we're going to call that update properties in order to update the name parameter to World. And that way, when we click on that button, that on-click event will fire. What's really cool is that we're still just dealing with JavaScript. JSX is just JavaScript. There's nothing particularly fancy about it. So we can create event handler functions the same way that we would in vanilla JavaScript. And this is going to be roughly equivalent to your c.handle something in Service Portal, c.updateName. So if you look at the second orange dash there, you'll see the updateName handler being called in the on-click. And up on that first orange dash, you'll see the updateName function being created. And because it's done within the view function, it has access to the updateProperties co-effect that we passed into the view function. All of this is handled by the Snabbdom renderer and by the overall Now Experience framework. So you just have to plug-in the right pieces in the right places. And the rest just fires and works. And of course, you'll also note that we're still using that curly brace syntax. Basically, any kind of dynamic binding that you will use will be done using the curly brace syntax, which makes it really easy to remember. Now, of course, no component is complete without a little bit of conditional logic. And of course, in Service Portal, we had ng-if ng-show, ng-hide, ng-switch. We had a lot of magical directives that we had to memorize in order to set up some of these conditional statements and some of these conditional templates that show and hide the view. So basically, in this one, when we click the button, we're actually going to hide that button. And once again, we're just using pure JavaScript here. So you'll see that, on the second dash there, the second orange dash, we call a getButtonTemplate function, where we pass the state parameter in. And then you'll see in that first long orange line, you'll see the getButtonTemplate that passes in the state. Now, the important part there is the if statement inside of that template function. So if state.properties.name name is not equal to World, then we will return that button template. So this is how we set up a conditional template inside of our view function. And you'll notice it's just plain JavaScript. It's just an if statement. This will work with switch statements. This will work with ternary statements. So basically, it's just JavaScript. And that really simplifies the learning curve on this. Because once you get a handle on the view functions and some of the magical bindings in the createCustomElement, you're really free to write those components how you want. You're not constrained to the magical directives that AngularJS offers. And also, I'll point out that you can separate the view functions. So you'll notice that I don't have all the HTML in one place. I can call functions to get other fragments of HTML out of it. And this is a really powerful capability. We can also move those functions off to other ES6 modules, which is really going to help us clean up our code and make it very compact and very well-structured. So then we've got lists. Of course, most of what we're dealing with is repeating over a list, repeating the same template over lists. In Service Portal, this is done with ng-repeat to loop over iterable objects like arrays. Once again, components have no problem leveraging pure JavaScript to accomplish this. So in the component, you'll see, first of all, that I'm passing in properties. I'm passing in an array as the default, with five items. And then in the first orange dash, you'll see my little ul tag there with state.properties.items.map. Yeah, it's just JavaScript, array.map function. So we're going to iterate over the array using plain JavaScript. And we will return the list item template that represent each item. So the map function is going to be similar to for each, except that it returns a new array, where each new item in that array is the result of the original item passed to the map function. I'm going to leave it to you guys to go look that one up in a little more detail because I don't have a clear demo of that one for this presentation. But suffice it to say, it works just like for each, except that it creates a new array using the function that you pass it. In this case, we're returning to LI tags that contains the item name. Similar to conditionals, we can separate that template fragment out into its own named function, like the getListItem one that you now see in the code section. And this can make templates much easier to read. And again, we can separate that off into separate files to get a very well-structured project out of it. And of course, we're just getting started with this. There's so much more to add. There's actions. There's life cycle. There's hooks and behaviors. There's a lot of stuff that we haven't really covered today. This is really just a foundation to give you those basic ng-ifs, ng-repeats, how to get data in and out of your components. But for more, you can go to the developer website, where there's a really good introduction, getting started guide, for building out these Now Experience components. But this should really help you get started on your journey in transitioning your skills from the Service Portal to the Now Experience framework. So with that, if you have any questions, you can feel free to reach out to me. My email is [email protected]. Or you can head to the codecreative.io website. Thank you very much. [MUSIC PLAYING]

CCB1118-K22 Knowledge 2022

007 A bond strategy to enable citizen development

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Hello, everyone. Welcome to Knowledge 2022. You're watching a brief session titled 007, A Bond Strategy for Citizen Development. In this brief session, we will give you an eagle-eye view of citizenship development methodology. By the end of the session, our main aim is to push the idea that is innovation is not invention. Also, improvement or automation of current processes has better return on investment. I am Ashutosh Munot. I am a certified ServiceNow Technical Architect and two times Dev MVP, four times Community MVP. Currently, I'm working with an end group in Netherlands as a ServiceNow architect. I'm accompanied by another Dev MVP and a good friend of mine. Dhruv, please introduce yourself. Hi, everyone. My name is Dhruv Gupta. And as Ashutosh mentioned, I am also a ServiceNow Developer MVP. And I currently work as a ServiceNow Architect at Accenture. We are pretty excited for two decisions, so let's start with the agenda. So today, we'll begin with an exploration of citizen development. What is it? Why use it? What are the advantages of using it on the platform of platforms that is ServiceNow for citizen development. Once you are settled with the theoretical aspect of the program, then we'll share our experiences, the challenges we faced, and most importantly, the mitigation strategy along with some key learnings. And finally, there are resources you can utilize along the journey of your citizen development program. So if that sounds interesting, Ashutosh, please guide us through why citizen development is important. Oh, that's a very broad question. And every new initiative starts with a problem, so let's start with the problem. I will summarize this with some numbers. Basically, need for citizen development can be broken into two things-- business challenges and IT challenges. Let's first read the mind of business leaders. As per the research by Mendix, it says 50% of business feel that they are unable to meet their key strategic goals. And then, almost same amount of business leaders find it hard to grab the opportunity of cost reduction, or I should say, scope of improvements. And the usual culprit behind this are IT challenges. Let's see not-so-shocking numbers. When we say not-so-shocking numbers, that means we have experienced this personally, where 77% of tech leaders think that they are struggling because the pipeline is too huge, and stakeholders tend to go away from the requirement over the period of the time. And to cater to those needs, we end up having external parties for our rescue so that they can help us to reduce the pipeline. If you see, 77% of business leaders think that it's very hard in today's era to reduce the cost because of the huge pipeline. Hence, it is very hard to neglect also. These are my thoughts. What do you think, Dhruv? Definitely, these numbers are not shocking for me as well. The reason that I want to highlight is that we always tend to ignore our internal resources who can be a better fit in our IT ecosystem because they're aware of the ecosystem. They know the ecosystem. They know the actual crux of the problem. B, they tend to be less costly-- I should say that-- than if you go for a specialist role. For some domains, you need specialization but not for all. You can cross-train or develop the culture of citizen development. That was an interesting point, Dhruv. So please tell us what exactly citizen development is all about. Sure, man. Citizen development is a business process that encourages non-IT trained employees to become software developers using, how should I say this, IT sanctioned low-code/no-code platform to create business applications. This approach to software development enable employees despite their lack of formal education in coding to become citizen developers. That was the official definition. But in layman's terms, citizen development is basically a process of identifying your citizen developers that can optimize and solve bottlenecks for you using a local platform. So Ashutosh, I know you have an experience on identifying citizen developers, so tell us who is a good citizen developer as per your. Oh, a citizen developer can be anyone within the organization-- a non-developer or a non-IT guy. So basically, our stakeholders can be also citizen developers who can tap into low-code platform to build a specific business application. Since they are facing problems on day-to-day basis, their response is more agile towards the problem, and they can build the app quickly, and they are very quick to the dynamic business landscape. So citizen developers are different from traditional developers. How? You can see on the screen, there are some differences between both developers. So I would say, citizen developers are empowered business users who create new or change existing business applications without the need to involve IT department. So please take a pause and read this slide for a minute so that you understand the difference between citizen developer and the traditional developer. Thanks. Dhruv, you have been an advocate for ServiceNow, especially for citizen development. Why is that so? Please tell us. Yeah, man, I have been recommending ServiceNow, especially for citizen developer and because ServiceNow has literally almost everything that you need for developing an app that run a low-code/no-code approach. And it is scalable. And you can go and ask for your compliances as well-- what else you want. I can talk about this whole day. But in the interest of time, I'll just highlight a few capabilities but the platform has made most of. To begin with, first one is your Flow Designer. This is the main contributor to low-code/no-code functionality, where NLU plays an important role. The drag-and-drop feature in Flow Designer requires no coding and makes it easy for new developers to understand it quickly. Second one is your Integration Hub-- major player to automate things with 200-plus [INAUDIBLE] available out of the box. Automation is the key aspect of why people want to go for citizen development. This is because they want to handle their own pipeline and catalog forms which can automate their tasks quickly. Next one is App Engine Studio. It's a development tool for creators of varying skill levels to build applications that meet immediate needs of your organization. Next one-- my favorite-- UI Builder, a platform for designing and engaging UI experience. Its capability grows exponentially with the level of skill set our developer has. But it definitely caters to more than what is required. Apart from this, we have low code capabilities like virtual agent, machine learning, process optimization, et cetera, et cetera. So it's basically enhanced the arsenal for developer. You can find more details about them in the Resource section. So in short, in short, ServiceNow and citizen development is a perfect match for my site. Great, Dhruv. So this was all about the theoretical knowledge for citizen development, who are citizen developers. Let's deep dive into practicality now. We started our journey a couple of years ago, and we stumbled onto various issues out of which we have got some must do to, make the process moot and extract the best return on investment from the platform. First of all, choose the right use case-- that is those can be developed with no or very less involvement of IT resources. Citizen development is very exciting. And because of that, we end up trying to involve or overdo a few things. Basically, identification of resources and setting up guardrails-- that is governance-- along with their initial trainings are the key to success. We need to understand it's a journey. It's not a one-time affair. So don't do a big code life or onboarding of the teams. But start with a small team and then build upon it. Sharing your success story is equally important because it acts as a catalyst to motivate other team members and citizen developers within the organization. Having the right tool does not always solve all the problems. You always need a right approach along with the right tool to get maximum return on investment. So Dhruv, please enlighten us with the recommended path for this. Yeah, as you mentioned, it's a journey. It's definitely a journey. It's not one-step process or one big goal life. I usually divided into four steps. Step one, prepare the environment and culture. When we say, put on the guardrails, we mean to clearly state what is expected from citizen developers and what they are not allowed to do. And the next step is the enablement of the team. Based on your organization's vision, set up a training plan for citizen developers. And in that training, don't forget to include some challenging activities. And once someone gets the basic skill set, I usually recommend-- or this is something that has been beneficial for us as well-- give them an instance to sharpen their skill set. They can use their PDAs as well. But give them an instance before putting them into some project work. It would be most important for their confidence. And now, it's time for bringing them into the mainstream, assign requirements to allow them to take responsibility. Make sure your IT team is there to help them out but not building on their own. And finally, it's time to scale up. We use the components as it's built. And don't forget to share the success of this journey. By the end, you will realize that you simply use your employee to build something that is cost-effective, quick, and, most importantly, it empowered your employee. Great. Thanks, Dhruv, for showing us the path. Now, as we are approaching the end of the presentation, let's take a moment to summarize some key takeaways of the presentation. If you remember, we had an issue of use pipeline, and we also saw how to solve it. And the answer is citizen development, which is the need of an hour. Also, we saw how ServiceNow will act as a tool or act as a solution to help implement citizen development and how it can help you to bring maximum return on investment. Also, change enablement governance is very important to explain the importance of citizen development and how ServiceNow can cater to this. On your screen, you can see one QR code. It will take you to one of the community articles that we created for this session. It contains link for all the articles that we read while doing this research, while setting up this session, and all the recommended webinar sessions-- whatever we want to pass on. Also, can use this article to put on your queries, and we would love to answer them. Thank you for patience. We look forward to interact with you all. Keep learning, and enjoy Knowledge 2022. [MUSIC PLAYING]

CCB1119-K22 Knowledge 2022

Automate provisioning and entitle users in three minutes with Integration Hub Spokes

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Hello, everyone. Today we'll be talking about automating provisioning and entitling users in three minutes using integration hub spokes. So to start off with the introduction, I am myself, Ishaan Shoor. I'm a senior technical consultant working with a ServiceNow partner, Thirdera And my primary function is ServiceNow development and consultation. I've got around four years of experience in ServiceNow and seven years experience in software development and IT. My favorite part of ServiceNow is working with integrations, orchestrations, custom applications. And that is why we are here. So again, the topic relates to integration of our Flow Designer. So in today's agenda we'll be covering the following topics. We'll be going through the overview, process flow diagram, use cases, benefits, key highlights, and demo. So I'll start off with the overview. So overview-- we, as every organization, uses Active Directory and Azure AD. but the provisioning in the Active Directory and Azure AD is pretty much limited to provisioning of the users or de-provisioning of the users. But there are a lot of other activities that take place around this, which is giving users access to a particular group, a particular application, having some shared mailboxes, some distribution list, and updating some user details-- might be a phone number, might be a second name, first name. It can be anything-- or just starting an email alias to a user. So a lot of other activities are involved, but they are all manual activities that the team do while the-- they get a request, and they get those requests as a manual-- using manual intervention. So using ServiceNow platform, we can automate all these tasks. And we can fully cater these identity management requests. So this automation can be done in two ways again. So the first one is having a third-party software and ServiceNow as a middleware and having connections with AD, Active Directory, and Azure Active Directory and leveraging the integration of spokes and the Flow Designer. The second one can be where we don't have a third-party tool, and we go to the Forms Automation. So, we'll be covering Forms Automation in this demo, as I don't have a third-party tool with myself. So this is a process flow diagram. This pretty much covers all the use cases that we were discussing in the last slide. So as you can see here, there can be some third-party systems involved in this process, where we have got a third-party system, like Workday, SuccessFactors, which generate an event and create a request in the Microsoft product. And again, Microsoft is Active Directory and Azure Active Directory. And from these, the request goes further down to ServiceNow. And then we have got some capabilities to enrich the accounts through ServiceNow, add the users to a particular group, or we can also notify the account details to the manager. So this is one process. And the second one is we don't need the Microsoft works in the middle. So we can also have a direct connection with the third-party tools and ServiceNow. And then we can go around with the enrichment of the user accounts, adding the users to the group, and a number of use cases that we have there. And there's a third step, where we don't have a third-party tool. We don't have any requests coming in through the Microsoft products. We have got ServiceNow just acting by itself, where we can use the service catalog, the ServiceNow forms. We can automate those forms to fulfill these active user account requests or updating some user account, adding users to group, application access, remote network access, employee onboarding/offboarding. So this is where ServiceNow comes into the picture. And we have got all the capabilities to pretty much get a lot of flavors of employee profiles sorted just by using ServiceNow automation. So this pretty much wraps up the process flow diagram. I'll move over to the next slide. Again, I've been [INAUDIBLE] it all over. So for some possible use cases that we have here is updating my cell phone number, updating group membership, user account creation, creating a new shared mailbox, creating a distribution list, rehiring an employee, offboarding an employee. And there can be plenty of use cases that we have here. Now, some of the benefits that we have realized over time-- so I have worked with a lot of similar projects. And plenty of clients are moving towards the ServiceNow or are involving ServiceNow automation in their onboarding/offboarding and user update requests. So basically they are doing this to reduce the manual intervention and fully cater the identity management requests. So what happens when this manual intervention is removed? So in turn they also remove the errors, so reduce errors in processing. Also, dependencies are removed of in-house legacy automation scripts. So these scripts are basically which the AD team or the Exchange team or Active Directory team is having in their systems. So those dependencies are also removed. After all this, the biggest factor is a quick turnaround time. So we'll be coming to that. I'll be circling back to that later in the slides. But the turnaround time is the biggest change that we have here-- reducing the errors, no manual intervention, and also a quick turnaround time. Moving on to some key highlights-- OK. So some of the key highlights here, a number of employee profiles can be digitized. So, as we have got, we can create a user account. We can add users to the group. So many times we just, if we want to give a user access to an application, maybe Workday, we are creating an HR profile. We can simply add that user into the Workday group, and other automation will take place around it. And we have set up a HR profile. And similarly, we can set up a service desk profile, where we are adding user to a service desk group in the Azure AD. So there are a number of levels that we can set up using the ServiceNow platform. And a request form can be configured and automated. And again, this all can be done through the service request form that we have been using all around, all the time. And the design is future proof, configuration friendly, and robust. So why this is the case? Because ServiceNow is highly moving towards Flow Designer. It's promoting Flow Designer and the use of it because it's easy to use, it's user friendly, and in terms of the debugging of the logs and everything are pretty straightforward, if you can just read and see what they show is. And every six months, we are getting an upgrade for ServiceNow, which is again a plus point. We don't have to worry about anything. So there is no technical depth. So if we are having some kind of custom integration, it is on us improving and maintaining the code. But here we don't have to worry about it. So automatically everything is getting upgraded. It's getting better every day. And the biggest point that we have here is the average fulfillment time. As I was just speaking in the last slide, it gets reduced to around three minutes from around 24 hours. And again, these 24 hours can be even more so, if we have got some approvals and they are just sitting there to be approved. And once they are approved, they might take a couple of more days to fulfill those requests. So in those terms, this time can be even more. But when we are using this automation, once the request is approved it just goes in and it's done within a few minutes. So this is a drastic change. And also, the return on investment on this one-- like, if you are having a manual employee sitting there fulfilling these requests, you can get a big turnaround, maybe save a-- so one of our clients had emailed me that they were saving of a full-time employee using this automation. So they were saving a lot on that one. So these are some of the key highlights. And where this can be applied to? So this can be applied to HR systems, as we have already seen in the process flow diagram, some HR systems where we want to automate the identity management requests and also streamline the requests by removing manual intervention errors and unstructured time-consuming processes, also customers who want to transform manual processes into self-service forms automated by ServiceNow workflows. So these are some of the places it can be applied. So before we go off to the demo, we have got some prerequisites that we need for this automation to happen. So first of all, we need a ServiceNow instance with the Integration Hub subscription. The second thing that we need on the instance is we need to install a Microsoft Azure Active Directory Spoke. Again, this can be different for different use cases. But the demo that we are going through today, we'll be using the Azure Active Directory Spoke. And also we need access to the Azure Portal and also the credentials to build a connection between ServiceNow and Azure. So I have got my ServiceNow instance with me. And I have already sorted out the connection between the Azure Portal and ServiceNow. So that's all good. So what I'll be doing the first thing, I will be raising a request for a new user account. And this user account is a fully automated form that we have. And once this form is submitted, it will go ahead and create a user for which we are requesting in the Azure Active Directory. So let's start off. No problem. Now look for-- we'll put 567. And we don't need to worry about the comments. We need to press Submit. So now, once this request is submitted, if I click on it, and as you can see, just within a minute it has actually gone to complete. So if I go to Azure and go to the users, we do have that user created here. So Tom Molly-- and we have got the job title. We also do have the phone number that we have entered. And that's how quick it is. And also, I have got the user provisioning setup from Azure to ServiceNow again. So I think every 30 minutes the users are synced back to ServiceNow. So all the new users that come in are also going back to ServiceNow at the users. So we are also provisioning a ServiceNow application for those users. Now, if I go to the back and backend of this one and check with the executions, so this is the flow that was executed in the catalog item was requested. We updated the record. And Work notes has request-- work in progress. We get catalog variables. So this is a custom action that I've created. I'm building out the account name and password for the user using this. So it's a basic script action that we have, which takes the first name and the last name of the user and generates an account name with first letter and the last name of the user and also gives out a generated password text. Now, once I've got this, I'm again updating the record with the account name-- the requested item record with the account name of the user that we get out of that action. [INAUDIBLE] the next action that I'm executing is create a user. So I am almost setting every attribute that's required for the user. So I'm setting the account enable to True so that the account is enabled for the user, and he is able to log in. So display name is set up through the catalog item, first name, last name, user IDs. We have got it from the previous step [INAUDIBLE].. So this is a servicewow.onmicrosoft.com. So this is my application on the Azure. And we have also got the email alias as Tom Molly. And we've also got the password. So we are also changing force change password for the user. We can set it to False as well. And we also got the other attributes, given name, surname. We've got the phone number, job title. We can set a lot of other attributes, but for this demo I've just used some of them. And once it has success, it gives out a user ID as the output. Now, once this is done, I'm also sending out an email to the manager, so Adam Haro. I'm sending out this email. If I go to the email logs, we should be able to see that there. OK. Let's look. I'll go back to the email in a bit. And, yep. At the end I am marking the request as complete. OK. Yep. So we have got the email there. So, Hi Adam. The account details of the new user request, RITM-- full name this, network account name, and username, and the password. And the manager can, further down, share these credentials with the user to log in. And, yep, post that, we are just marked the request as complete. So once this is completed, it's all good. We're done. We're done within, I think, less than three minutes or so. It was completed. And just in case if something goes wrong, I am also having a error handler, where I'm creating an incident and assigning it to a team, to action, just in case if anything goes wrong, to look at the logs and see what has gone wrong. And they can reticket the flow or the request for that particular user. And, yep, I think that's quite magic. And also just one more thing-- this was just a create user. Again, if I search my Azure, we have got around 39 actions with us. We can look up user stream. We can add users to group, reset user password, disable user, and delete a user, and also update a user, create a user, enable a user. So there are a number of use cases that we can get at. So it's just a small thing that I showed you. But there are a lot of possibilities around this. Thank you, everyone. Thank you for your time. If there are any questions, do reach out to me or my email address, LinkedIn, Twitter, SN Devs, Slack. And Flow Designer is the way to be. So I have been using it since 2018, and I think it's just awesome. And there are a lot of other spokes that we have outside of this use case, Azure AD and Active Directory, that can just do brilliant stuff. And it can be done in hours. So that's also an amazing thing. And thank you. [MUSIC PLAYING]

CCB1120-K22 Knowledge 2022

(ノ◕ヮ◕)ノ*:・゚✧ Hack your environment to work for you ✶✩

## Transcript X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0 [MUSIC PLAYING] Hello, everybody, and welcome to hack your environment to work for you. My name is Maria Gabriela Ochoa Perez Waechter. Some of you may know me as MGOPW, and my pronouns are she/her. I am a 2022, 2021 ServiceNow Developer MVP. And I've got ADHD combined, PTSD, generalized anxiety disorder, and major depression recurrent with stress. I'm a Venezuelan-American immigrant, and I'm part of the LGBTQIA+ community. We're getting a little bit personal in this session today. So I wanted to get all of that out of the way. And I wanted to first share with you a quote that really helped me realize some things about myself. This is from the Disability Science Review, but developmental disabilities are not a disease. They are a mismatch between a person's capabilities and the requirements of their life situation and culture. It helped me realize that my ADHD is really only a problem because I live in a society where I'm expected to sit for eight hours straight and work, and I just can't do that. So it's story time. When I was young, I really struggled in school, and I had no idea why. I got perfect grades, but I could never focus on any one thing. And I could never make my mind up about what major I wanted to be in. I switched majors because I love doing everything, and I couldn't stick to one or the other. I went between advertising, psychology. My dad always tried to get me to do art, but I wanted to make money, so I want computer science in the end. When I was part of the computer science program at my school, I looked around me and I saw just a bunch of men, who could sit there and stare into the matrix and pull out lines of code and somehow just be able to work for hours on end, when I couldn't even focus for 30 minutes at a time. It took me a while to get everything figured out. I went to a couple of doctors and a whole bunch of therapy. And I was finally able to accept myself for who I am and really keep working on my own mental health. Somewhere through that, I ended up getting into a car accident, and I'm still going to school. One day, I'll finish it. And then I ended up getting to ServiceNow. I finally found a place where I could do all the things I wanted to do, and I could do them all at once. I could get to interact with people. I was getting to be creative to the Service Portal, and I got to write code like I had always thought I couldn't do. But how did I get there? A lot of coping mechanisms or alternatively, how the Job Accommodations Network calls them accommodations. Now there's a lot of things that you need to consider, and you should work with your boss or your manager when you do this. But you have to figure out what parts you're struggling in your career with. And I've been very lucky to have had some amazing mentors and role models in my career that have been willing to help me out. One of the hardest things that I just cannot do is prioritize tasks. I'm really great at taking notes, so I'm really great at paying attention and retaining information. But I don't know where to put it. I don't know how to organize it, and I don't know what needs to come first. So I've always asked my managers for help, figuring out which of these 37 tasks need to be done first. Other stuff that has worked for me in the past is being provided a structured breaks, being provided private workspace time, minimizing random things that I have to do as part of my job. To focus on specific things and specific blocks of time has really helped me out. An uninterrupted work time with no meetings has been just one of the biggest and best things ever. You can also do to-do lists or have meetings at the start of the week in order to prioritize the rest of your week and other assistive technology, like pomodoro timers are a lifesaver. They're little cubes or you can even have digital timers that you do pomodoro sprints with. So it could be 30 minutes of work and then a 5-minute break, and then 30 minutes of work and then a 5-minute break. And this has really helped me out because I've been able to just really hard focus on just working, and then I've been able to disconnect for a little bit and then be able to reconnect. And I found that I have been incredibly productive during those pomodoro times. Now there's something else that I ended up figuring out, and that takes me to this code. It's a lot of code, isn't it? It's too much for me sometimes, and this is only a third or a fourth of the final length of the script. And while I was working on this, it was awful because I just have to kept-- I just kept coming back and then leaving, and then coming back and leaving. And every time that I had to get my mind back in the coding mindset and back into the code, it took me at least 30 minutes to really figure out what the heck was going on. Because there's so many words on the screen, all of it makes sense individually to me, but it all doesn't make sense at the same time. So I started looking around because there had to be some way to figure this out. Somebody had had to figured something out with this by now. So that made me turn to Visual Studio Code. It's a great text editor. I highly recommend you use it. There's a bunch of awesome plug-ins, and one of them is called Highlight. Highlight lets you use regex to highlight different things in your code. The suite's called Highlight. So I used it and the help of some of my really good friends, thank you guys so much, to highlight previous, current, and my log statements and change their colors. You can make them be really obvious. You can use background colors. You can change the color, the font way. You can change the color looks on the sidebar, a whole bunch of stuff, and it will just do it automatically for you when you load your script. And it basically turns this giant block of text into something a lot more legible for me. To you, this might not make sense and in my look, even worse. But to me, it's really helped me out because I'm now able to-- well, first, I can look at the entire line of code. And that log line in line 4, it doesn't register in my brain because it's so close to the background color. But I know it's there when I need to reference it. So suddenly, the size of it looks a bit smaller. I also discovered that I could use emoji inside of ServiceNow scripts. So I now use emojis to figure out logic. With this script, I was working on a lot of previous and current objects inside of a business rule, and I kept getting confused about the if and else-if statements because they had to be compared to each other. One had to be empty. One had to be non-empty, and there was a whole bunch of different cases where I needed to do something specific according to the state of previous and current. So I created these little comments at outlines, where it tells me if it's two X's, I know they both don't exist. And if it's an X and a check mark, I know that previous exists, it doesn't exist, and then current exists, and so on and so forth. Because I don't know why, in my mind, I just cannot read if nil or dot nil and remember the meaning of it right away. It always takes me a second to read logic that out in my brain, and I've realized that that was just wasting a whole bunch of time. So when we compare the two, one of them might look better to you. One of them looks way better to me, and that's what this whole session's been about. It's been about you working to find what works for you, and what works for you may not work for me, and vice versa. So I highly encourage you all to take a look at the Job Accommodations Network. A lot of us don't put a term to the struggles that we face day in and day out. Some of us choose to go with mental health therapy, and others choose to find other methods of treatment. But we all end up having our own individual struggles. Even if it looks like nobody else around you is struggling, trust me, they are. Look up imposter syndrome. And then look up the Job Accommodations Network to really figure out how you can help yourself succeed because there's only going to be one person invested in you, and that's going to be yourself. And you need to take that time for yourself. One last thing that I wanted to mention is something that a lot of people come up to me and say is that they can't find any jobs that are looking for people with their experience. They don't know how to get into the field. And they don't want to apply to this job because they feel like they'll be rejected. But what I want you to know is that I have never applied for a job that I was fully perfect for. I have never met the job requirements. They always asked for a degree, which I don't have. They always ask for 20 some years of experience for an entry level job, which nobody has. And what you really just need to do is just apply. You just need to do it. Don't let your dreams be dreams. Just do it. Yesterday, you said today, do it, and just join us over at SNDevs, where we all love to hang out and help each other. We're the largest independent ServiceNow community. You can find the link on the slide right behind me. And finally, make sure you go check out WomenNow.Dev. I'm going to be posting a blog post going further into my experiences, the specific accommodations that have really helped me out throughout my career. And I'm going to be posting a lot more resources that you can tap into and other blog posts to really help you in your journey in getting started or wherever you might be on helping yourself succeed. So thank you so much for watching. And I hope you have a wonderful rest of your day. [MUSIC PLAYING]

Showing 2901–2950 of 4951 sessions