Decision Builder Testing and Publishing | Creator Toolbox - ServiceNow
[Music] thank you [Music] foreign [Music] that robot keeps stealing my tools he takes them out of the toolbox it goes off screen and I never see them again but yet the toolbox never empties ah just like this show Welcome to Creator toolbox this is a show where we bring you all of the tools for you our creators the builders the developers the admins out there that want to know more about the servicenow platform this is for you we have some juicy tidbits and we are in the midst of Vancouver season as Earl uses his left hand to point to the Vancouver logo you can always tell what release you're looking at well going back a couple of years anyway since we got that cool logo up there so you know if you're looking at Tokyo content Utah content this is Vancouver released in Q3 of 2023 and we have one of my favorite features but before we get into that let's do some quick introductions my name is Chuck tomasi I am a senior servicenow developer Advocate I don't know where I was going with that it's early and I'm having troubles focusing so this is live not edited I've been with the company since 2 as an attendant was a customer for a couple of years before that with a long long history going back about 40 years into computers development and Tech so I'll play the old man card any chance I get over to you Earl I will not play the old man card hi everyone I am Earl DK I am also senior developer advocate here at servicenow I've been with the company for two years but before that I was doing about four to five years of development uh for different customers mostly in higher ed and before that since we're talking about all the whole career before that I was actually in student affairs doing a lot of uh student development theory stuff within the higher education space and to Julia all right good morning folks um speaking to you today from Chicago Illinois my name is Julia Perlis I'm a principal product manager here at servicenow working on decision management and other initiatives as part of the workflow automation team um this is an extra special release for me because I am Canadian so big for the Vancouver release um and I've been at service now oh almost exactly three years at this point so it's very exciting milestone in terms of being at the company and you know another time around on Creative toolbox so I'm happy to be here yeah I was in Chicago last week when it was nice and hot oh it was hot it was like 100 degrees felt like 110 and I was just very grateful that I can work from my apartment it didn't have to leave coming from Phoenix Arizona I thought you might want some warm weather yeah then I left on Thursday and took it back with me thanks well you have been on this show once or twice this and live coding happy hour a combination your face should be no stranger to those who have watched our videos in the past and uh usually talking about one of my favorite topics as I mentioned before decision Builder and decision tables and all the cool stuff so I am very excited to let you show us today what is new in Vancouver around decision building because I think it's going to make a big difference yeah it's it's really exciting I think we you know we've started getting into some features that have been long requested things that are going to make decision tables and decision Builder even more powerful and make the developer experience smoother um and safer frankly like allowing for safer editing safer authoring and and bringing some testing capabilities right into the building experience instead of what it used to be which was create your decision table drop it in a flow go test your flow so we're really trying to make things as um as easy to use as possible that is a constant theme as we continue to prioritize our roadmap for decision tables because it is what can be and should be such a simple but powerful tool and I think you know hopefully we see today both the ways building decision tables is easy but also how it can make managing your flows and your workflow you know so much easier and more flexible I gotta ask you Julie real quick uh decision tables are they intended to be a replacement for the lookup tables that we've had for a while yeah absolutely I mean I think decision tables can serve a bunch of different purposes but I would think of them as as more powerful lookup tables you know a lot of our customers are using some of their custom table allocations to create these lookup tables where you don't want to have a flow with a bunch of if statements you want to be able to just say you know take this in evaluate it against a set of rules and then return a result with decision type tables you get a UI to build that and you're not using any of your custom table limits to do it so you can author your decision tables manage your logic in those decision tables and then rather than calling out to a custom lookup table you can actually just point to a decision table to be able to take in some data run some rules on it and then figure out whatever you need from that whether that's another record whether it is you know a score or a decimal or a percentage or a string value it's kind of like souping up the concept of a lookup table it's also built into flow designer they're they're coupled together decision tables and flow designer whereas if you had made a custom lookup table you'd have to do so some scripting around it with a Glide filter call and that's the way I've traditionally used them up until the point where decision tables came out yeah absolutely and you know uh Safe Harbor things that we say and hope for and work towards but hopefully um with the upcoming release we'll also have decision tables built into process automation designer so you know even more utilities around being able to quickly and easily integrate the logic that you're building in your decision tables into the workflows and and processes that you're building awesome well I don't do you have a presentation or demo or how do you want to approach this I I jump right into a demo I mean I mean Builder but uh I think everyone's going to get the goods so the two main capabilities that we're looking at that are out of Vancouver if I understand right are publishing and testing which would you like to do first um I kind of built them all in together we'll start with the draft authoring and then we'll we'll build testing in with that as well okay and then I'll throw in a few bonus features along the way I understand you have a fun use case for us too I I do um I was you know for all the folks joining us today I was telling Chuck and Earl that I was working on this presentation and my two cats were just harassing me and sitting on my computer so we'll be walking through um a cat adoption application and running some rules around those adoption applications you know just in case I need to re-haul these cats of mine no just kidding they're wonderful except they're locked in my room right now so that they don't join our call let's take a look all right pull up this demo screen here all right are we set up with the screen chair yep we're doing good fantastic so what I'm going to try to do today and um please you know add a con add questions as you have them I'm happy to stop along the way and answer questions also if you lose the threat of the demo um chucker Earl please bring me back um but what I was envisioning is you know showing the way decision tables work can work with a flow and then also showcasing the different features as we go through this use case so the concept we're going to work with here is um an application for a pet adoption so this flow is going to run automation around that adoption application and I've put the bones here so the application will be created that's a custom table I've created in my application and then the process for managing incoming applications for this organization is that the first thing they do is check the finances and that's just a couple questions on the application then they're going to based on some other information determine whether the person applying is even eligible to adopt a pet and then if they're eligible we're going to score their application kind of create that tears of how desirable is this applicant and then at the same time we'll figure out what staff member at the adoption agency should be responsible for this application and as you can see each of these steps here are actually calling out to different decision tables so here where you see this Dot and three lines this is actually flow logic here under the make a decision action and I'm sure for many of you if you're not yet using decision tables or if you're you know building flows with more built-in logic what you would expect to see is a flow like this would not be six actions it would probably be a lot four actions and 30 logic steps where all of the if statements around figuring out whether someone's financially acceptable for adoption would be built into the flow and then there would be nested if statements with nested if statements with nested if statements so even before we've looked at the logic in the decision tables you can see here that this flow is very simple and consistent so you could totally transform your program around how you determine Financial viability how you check eligibility how you score and we'll do some of that in this demo and it wouldn't change anything about this flow your flow could stay consistent um you know if you are upgrading making changes like this could stay the way it is and then you're building all of the actual nuances of your process into the decision table your first ones would be a million nested if statements and then you would realize like oh I should probably push this into a function off by itself and and call that function make it reusable and stuff like that same thing right here yeah it's exactly and you can imagine someone on like on the program side handing the developer like uh you know okay here we need to check applications first we need to finance check then we do the eligibility check then we do the score scoring and then we figure out who to assign it to and if it were a totally new developer they might build it all into one thing and if it were someone more seasoned they'd be like no let's modularize this module so that that's really what we're doing here well that's the part about decision tables and formerly look up tables that still exist I shouldn't say they're gone but uh it abstracts that decision making logic from the the workflow from from the flow in this case so if requirements change and they usually do where they say oh you no longer need this particular eligibility criteria you don't go back to the float you go to the decision table or maybe even delegate that and say hey it's your decision table you make the change and when it's ready it I don't really have to do anything and as developers we love that exactly and for me I mean even preparing for this demo I was making changes all over the place and I kept coming back to the flow and being like do I have to change this and I was like no I don't this still works so let's now what if you had um like specific cases I know you can put a decision table into multiple output criteria and and if the decision table changes its criteria let's say for example we're doing Airline points or something yeah we have silver gold platinum and Diamond as as their levels today the the the criteria is 25 000 miles to get to Silver tomorrow it's 30 000. in that case you wouldn't have to change because the output is still you are silver status here's what you get yeah but if they change from Silver and maybe add a bronze and you only had those four cases before you would have to go into the flow and make a case for bronze correct you would it depends a little bit on how you are managing it I tend to So within the just make a decision action you can use branches which automatically create branches backup based on unique results that's to me it there's there's pros and cons and it really depends on how you work and what you're trying to do um the pros of the branches is that if you add bronze as an option it would it would automatically add a new Branch for bronze you would still have to go into the flow and you know say what you want to do when it's bronze if you're trying to path your flow in different directions based on that result right right um what you're trying to do is update field with the new loyalty program if you add bronze your flow still wouldn't change it would just be that maybe sometimes it okay right right so it really depends on what you're trying to do but if you're trying to path based on unique results then you either do that with this use branches function and then when you come in it would automatically have that new branch and you just either move things or copy things or create that new pathing underneath it um or you can take a little bit more control of it and and use if statements based on results so if you look at this flow here we have an eligibility check and then what I've done is say you know this is based on the result of this the decision so I'm saying this decision table has a result for whether someone is not eligible and then I've used that result from the decision table to say if they're not eligible is false so if they are eligible then go down this path and so what that means is that if the results change nothing will automatically change in my flow because I've kind of hard coded that that pathing so there's there's trade-offs to doing it different ways I think it's thinking it's worth thinking about you know what are the likelihood of the different results changing um additionally when you use branching it creates parallel branches so you want to make sure that you actually want parallel versus sequential branching if you're gonna true go with that approach I gotta gotta put a plug in here for the flow designer people I love the new look it's so clean yeah yeah now the all of the Improvement all of the you know incremental improvements are looking fantastic all right well let's jump in so this I'm going to show you a few different things that are new in decision Builder I've already created a decision table for checking finances but I do want to show you what it looks like in our new creation experience with a slight modification to enable draft authoring so as you can see from flow designer you can always create a new decision table right in there one of the things that is on our roadmap and we're working towards for a couple releases is really improving um and expanding the inline authoring experience so when you click this plus button how can you use data that is already in your flow to make it even faster and easier to create a decision coming soon-ish to an instance near you safe harbor Safe Harbor safe very safe harbor um So within creating a new decision table if you've been working in decision Builder before you'll see mostly familiar stuff here you have a name you have a description you know this can be our creator toolbox example table for fun very very creative I know I'm like that um and then you can determine you know where you want this to be accessible from this checkbox here is is new and is part of draft authoring so right now when you create a decision table it either exists or doesn't you know if you create it it's automatically active it's all automatically available to be executed to be dropped into a flow what we're doing with safer editing is allowing you to create things in a draft State and edit in a draft State before you make any of your logic available for someone to actually drop into their flow or drop into their process or call from a script so this will now from V5 forward be enabled by default and you can see and we have a little bit of a description of what this actually means if it's enabled you can author your decision table in a draft format this is optional so for added decision table level you can turn this off but let's turn it on and see what that changes from our creation experience so if anyone's used decision Builder before for those who have this will look super familiar there are a few new things you'll see on the interface the first is this view toggle right now we are looking at a draft you can see that the decision table is inactive which means you can't use it you can't execute it yet and then we have some new buttons up here we have the test button we have the ability to create a draft and then to publish so this is the the new creation experience when you're enabling draft authoring and what it means is that anything new that you're creating you're creating in a draft format and once you've added a certain number of artifacts so once you have an input and you have at least one row in your table and you have at least a condition column and a result column then you're able to publish that decision table and once it's published it'll be available for use and we'll take a look at what that actually looks like looks like um excuse me in in action is that something you could change later like I've got all these decision tables that I'd like to add that to that is a great question Chuck and actually the first thing I wanted to show you with an example so ah she's good how about that let's look at this is if we go back to our flow the first thing we're doing is checking finances so here's a decision table for checking finances the inputs here you can see I'm using individual Fields this is more to show off testing down the line but uh probably what you would do is just take in an application as the input or reference input and then you would build your logic based on that that reference input for flexibility's sake but this is a decision table that was built without excuse me without draft authoring so you can see here you're missing all those buttons you don't have the toggle you don't have create draft you don't have publish this decision table just exists and is active but what we can do is go into properties here ding ding ding ding easy and you can see that we are able to enable draft authoring and what happens when we do that you might ask many a conversation to determine the logic that takes place here but basically if you enable draft authoring for something that was previously just a black and white active decision table what will happen is it will then become a published decision table okay because what we didn't want to do was say okay this was active but now that you have drafting enabled it's draft you can't use it anymore we wanted to make sure that you were still able to use it you're still still able to execute it but you're just now dropped into the new flow of work for what happens yeah when you're using Drafting and Publishing existing Behavior so what that practically means and and what you'll see with published and draft decision tables is that this decision table is published we don't have a draft version yet because you only had one version of it it was published that's what it is and what changes between the um the old way of doing things in this way is that now that this is published it's become read-only so you can no longer make changes to it you can see everything about it you can take a look at information about your condition columns you can see what's in the table um but if you want to make changes to it you need to create a draft and what that will do is just copy everything that's in your published version and generate this new draft for you and you'll see we our toggle went over to draft if you want to make changes here like let's say you know we I actually did Google what the average budget is to own a cat and a bird for a year fun fact okay um but let's say you know things change cats are needing a lot more these days you know it used to be greater than six hundred dollars and now we need people to have more than 800 available to care for these cats eight is still low for my cat I mean it's definitely low for mine but you know they're like my children so um I didn't want to apply my own budgets to this this longer anything reasonable pii on your pen I don't think pots are going to suffer if they don't have like every new toy available for them not so much the toys it's the vet yeah I mean pet insurance is a is a game changer that's for sure that food doubled for me in the past year wow I know I always live in fear that they're going to have like an obscure allergy again I'm gonna end up buying like kangaroo meat or something ours just keeps changing it's like I don't feel like eating that stuff anymore now I gotta go find what he does he oh so now that we have this we can actually take a look at you know the finance check initially when we had that published version as you can see this is what's what's running if you have it in a flow to check what the about the finances see if they can pay their adoption fee if they can't then they're not financially viable if they can pay the adoption fee and their budget's more than 600 and they're trying to get a cat then they're they have Financial viability and then there's different Logic for birds um but now we can go back and look at our draft and see that that has been changed to 800. and the default result we gotta cheer from the crowd big cheer for the default result which was a huge Game Changer in terms of covering all bases and you'll see that this is similar it's similar to what you get in flow designer you know if you're in flow designer you have a flow you save it you can activate it right and then you can work on it without changing the version that's active but what we wanted to do with with this in this kind of initiative and decision Builder and we're trying to kind of move forward in our different Builders and and automation areas and then take take a page from everyone else's and like move forward together but it's going to happen in jumps and sports across releases and across product but really be able to let you see both because we find that's you know it's feedback we get for flow designer we wanted to get ahead of that for this and be able to say if you're clicking execute right now this is the logic you're using but here's the work in progress and what that sets us up to do is in the future also be able to have version history you know potentially the ability to revert to past versions to name your versions if you had you know a version that you're using for a certain time of year like a promotional version of your decision table um this just lets you keep that keep that history and and what we're hoping to build towards in the future for versioning is having more of that version history so that you can see what it was you can see at a point in time what rules were were running within your flow um and then be able to do kind of more auditing and and understanding of how your logic was acting in your workflows who made the changes yeah and who made the changes exactly everybody logs in his head nobody let's jump in and look at a couple other features shall we yeah um let's see so we took a look at the finance check the next thing I want to do is let's build this decision table for scoring the application I've already built the structure here we have an input for the application this decision table corresponds to this step in the flow where we're going to score the application and you can see that we're taking in that application record to to return the score um but we don't actually have any rules in here yet so we're gonna you know throw out to the uh export and edit an Excel feature because even for me that's the easiest way to build a bunch of rows in a decision table and what I'm feeling particularly lazy um and then you can see from here there we go that we have this empty decision table it has our structure in it we can go in and say you know if they were a prior pet owner and they want more than one pet it is very desirable for adoption agencies if you want more than one cat I know that and if they don't go on vacation much that's also an important thing you know is they only go on vacation for zero to four weeks a year then we can say they're tier one and I've already jumped the gun on this and built the logic so you don't need to watch me baking games [Laughter] keep things simple we can save this and then go back into decision Builder and directly import those rules feel like on a live coding happy hour I try to build the logic and stuff like that live and now everyone has learned don't do what Earl did often and I've done it in like smaller demos and I just realized I'm boring everyone so why why bother with that but here we go we have now a great decision table we can save this as you can see um like is true across our products a lot of the utilities are are disabled until you save it just creates a lot of um confusion when you can Muck around with things that are not saved so once you save here it opens up your world of options we can start testing we can publish um and you know if you think about a typical workflow you can build this logic and then maybe with this logic we want to run some tests and make sure it's working the way we expect it to work before we publish the decision table so let's click this test button it is I love that test button incredible powerful and not incredibly snazzy but it does the trick um you can see here you're able to choose which version you're testing right now we only have a draft so we can only test the draft um you can test using the two different execution methods for decision tables so you can either return the first decision that matches rules or you can return all decisions that match the first one will give you a single result the second will give you a list of results and then for this it'll just surface whatever the input is so here the input is just the application and I'm going to show you let's see this is a list of some example applications so that we can figure out what the test no test result actually should be I put some notes in here to kind of like their way through the logic I'll just let you know so let's say we're going to test out this Morgan pet owner application they want a cat they are away zero to four weeks a year they've had pets before they want two cats uh they're a dream owner we're really we're really Pro Morgan pet owner so let's look for that record here and then once we run the test we will not get an application key or tier well that's not promising oh I know why I didn't update my uh test data you know I made a bit of a mid Midstream change part of the way and then didn't actually change it in here working as intended here we go there we go I was doing a choice list for the weeks away and I was like that's a number what am I doing so we're back at it um what you can see here is like like we expect that's working for this use case let's take a look at more test data um here where let me just put that field on here so I can make some updates estimated weeks away all right so let's steal this use case for an upcoming demo that I've got hey go for it I'm happiest happiest cats on servicenow demos I think is a win for everybody pets and plants we got a lot of demos around plants too really yeah that's a good one all right all right Chloe cat mom you know they're away five to ten weeks a year they've had pets before they want more than one so really it's a bit of a concern that they're being gonna be gone for eight weeks but still a possible good owner amazing not the right logic what did I mock up here I'm sorry guys don't be this you're demonstrating why the test feature is so important that's actually true I'm like what did I do wrong that this is showing up as tier one otherwise we would need to be running actual records every single time or running scripts to test these things each time so having you're demonstrating why it's important to have the test feature oh I can't tell you how many decision tables I've built a bespoke flow for just to test the decisions oh that's why I see why huh it actually is true we did just realize why this feature is important I was like that's not supposed to be the result all right let's try it again perfect this was all planned Julia this is all of it no one will ever know if it was or not hey it's something that you just taught somebody to look for it's like if it's not giving you the results either check your Source data or you check your decision table true how do you debug so here you can see we actually are are we've got it now this one is is tier two which is exactly what we expected I'll show you what it looks like when you execute all decisions in this use case it doesn't make any sense because you're only going to return one tier but let's say you were trying to you know use a decision table to figure out what notifications to send and it might be more than one and you want to generate a list of notifications or you want to generate a list of people who should be on the watch list for a certain record for example in that case you might want to go through your rules and say every time like if this is true this results should this person should be part of the list and if this is true this person should be part of the list and that's really returning a list of results and I'll show you what that looks like even though it doesn't is not super relevant for this use case so in that case what you'll see is just your test return return one result and you'll just see this kind of scroller between the results so if you had four different results you'd just be able to click between them and see what they all are nice so keep it simple but keeping it powerful um and it is great that you know here we can publish this decision table we've tested it we've figured out that it's actually working correctly in this case we don't want a default result because everything should be covered by these scenarios and if it's not covered we don't want to score the application so we don't want any catch-all you get a little warning when you publish because once you publish you have to create a new draft to make changes yep on the topic of drafts Julia we have a question um are drafts tied to the user that's creating the draft or are they like workflows where uh any Dev admin will modify the draft and then when it publishes it publishes for everyone can there be multiple drafts how does that work right now the draft is tied to the decision table not a user there can only be one draft so at your decision table is either if you're using draft authoring it's either in draft or unpublished and if it's in published it might also have a draft associated with it so you can see in this case um we have a published decision table there's no draft right now because there's no one's working on it it's active this is read-only if we want to make changes to it we can create a draft and then from there it's still active because the decision table has a published version that's that's running in the world because the old workflows so many times I'd go in to edit a workflow says Earl already has that checked out and Earl's on PTO yeah and um well so what I liked about all the decisions that are going into how this UI is made is it's all lending to uh letting delegated people in production have a handle on the data side of things for workflow and other source stuff it makes sense to have multiple versions and then have a merge con like a merge thing at the end of it because that's all configuration stuff this is that decision table is based off of data and so when it's all based around data if you are giving a citizen developer or some other uh tenant in your organization the ability to update these data these decision tables then it makes sense to not give them the conflict the complications of what if multiple drafts have a have a merge conflict no they they work together to figure out what the draft is and then they publish it together and it makes sense for if you're giving this to certain people to update live kind of thing so that makes sense to me yeah and I think I mean I think there is a lot of thinking work to do on our side is like how do we build around some of those complicated scenarios around Drafting and versioning um I I will say that technically like we view this as data technically the the rows in a decision table are metadata so official best practice is doing it in in sub prod not production but figuring out the right you know you can certainly have someone make these changes in Pride you just have to if you wanted it back in your sub prod matching you'd have to sync it back um but between what we're doing with flow what we're doing with processes what we're doing with decision tables we're trying to figure out what is the right consistent experience for versioning for having that you know draft and publish experience for making sure that things are the same across our products where they should be and they're different where they should be my ask and call out to folks who are either watching like part of our session today or watching in the future is you know reach out to us with your specific use case is around Drafting and Publishing and versioning we want to make sure that we're tackling this really complex area in a way that actually matches what our customers are trying to do and adds value instead of creating the need for workarounds um so you know for us we we kind of intentionally decided to start with this simplified way of doing things just saying you have it's published or it's draft you have one draft um rather than you know investing two releases and building this whole experience around versioning and then putting it out in the world and getting feedback and hearing back like actually that's not quite how it works so we want to approach this incrementally really working with our customers to understand what's going to be most valuable to build experiences that work for them we did have a question earlier what is the history button oh it's around it's the Excel history uh okay it's your import export history and if you have error files you can get them here too nice yeah and so even when it's in read only you can still export you can still look at your history um if we go back to this draft this is where we're actually going to do let's let's make some changes to this decision table so I'll export it again oh that's what I was going to add a column trying to remember my own demo I have notes here so right now let's say we want to have some different Logic for whether someone's trying to get a bird versus a cat we can add a column here for pet requested and this will be from the application let's look at the animal type so if they're trying to adopt a cat we care about whether they were a prior pet owner or whether there want more than one pet and how many weeks away they are let's say that if you're adopting a bird um you know you can leave birds for a long time I don't know I'm not a bird owner I have cats can't have Birds but maybe if you are adopting a bird you know in that vein it's so let's say like other pets we can add another column here that is uh other pets in the house and we'll build out this logic even further to include our our lovely bird owning friends I love when that all the buttons are grayed out before you hit save yes as do I so you can see here's our existing logic let's say we make changes here all of this logic is for when someone's trying to adopt a cat let's go well formatted already thank you so much even the colors are right so so much work went into this lovely Excel template but it's it's I let I what I like about it is that it's both um easy to read and use but you don't lose the power of excel because I think it can be really hard to have Excel experiences where you want to put controls on it but then it makes it makes Excel kind of unusable and so that's really what we were trying to strike the balance between and then here we can say all right if they're gonna get a bird you know we we care if they've had a pet before we care if they want more than one pet we no longer care about how many weeks they're going to be away and we want to know if there's other pets in the house so if this is true if this is false that's going to change our logic and I did actually build this elsewhere too so that we don't need to do what I'm doing you're going fast I'm impressed within yourself all right let's see um let's just copy this because I think I got everything else in there I always appreciate a veteran Excel user first three years of my career just like spending hours and hours and hours and hours of the day in Excel so I I was one of those people who was like if you can't do it quickly Google it every single time because otherwise you'll drive yourself nuts all right so we can import this we've got our new logic in here for our Birds and then same thing once that's saved all right we can take a look at what our draft has we can take a look at what our published version has um and the cool thing is this really gets at what we were saying at the beginning of this demo which is that if you make this change you know this this decision table is taking in an application it's spitting out an application tier that's true here and it's still true with this version it's taking in an application it's spitting out an application tier so when we publish this change and let's go ahead and publish it we probably want to run some well-round we'll run one test we'll be responsible all right I was about to think let's let's look at the test for the aspiring pet parent bird they should be tier three actually this doesn't matter for them anyway so where do we go with that the aspiring pet parent bird [Music] is tier two probably because of the logic I set up um let's see they're a prior pet owner they only want one and uh do they have other pets in the house let's see if they do other pets in the house they do have other pets so they have other pets in the house um this one is false and this is true oh tier two okay my logic was correct so we have tested it it works correctly we could publish it same thing it'll tell you when you publish it what happens is basically this this bumps off the last published version so this will become the version that is running whenever you're executing your decision table now that's pretty dang impressive Julia because I was thinking if you had to do that same type of we want to add a new criteria to our decision we want to add some values and we're going to have different results ignore these other ones pretty much what you did in that Excel spreadsheet if you tried that inflow that would be hard if you tried that in code that would be really hard it would and to take the time to test it and everything you just did really collapsed that time frame so I just want to keep talking to my inner voice of old programmer that this is a better way well I think it's it like you and I were saying it there there's natural patterns we fall into it's like it's so easy to create the if statements it's so easy to write this and this but um if you can kind of Nest this in your brain from the start it makes your life so much easier down the line oh absolutely I I think I conferred with you what was it about a year ago when I was looking at somebody else's code that had a lot of script to figure out as we get closer to an event we want to do this integration more and more frequently a week apart than a day or 10 hours and even minutes and I asked her can you do date differences in decision tables you said yes and I was able to take a whole bunch of code that took me it was a non-trivial amount it wasn't an afternoon but it took a while to figure out what they're doing how they're storing it where it's going what it's affecting and Crush that down to at a flow a subflow in a decision table so future me or Earl or Lauren or whoever has to pick up this thing in a few more years and make some changes it's so much easier to reverse engineer than looking at something yeah and it and it means that you don't need to assume a level of developer skill in the person who like to pick it up like you might look at this and be like how does this work but as soon as you know that these are conditions there's an and operator between these columns if it's blank it's not part of the evaluation and this is the result like learn you know spend a couple hours learning what a decision table is and then that's in your mind that like that's an easy to understand easy to carry forward thing for infinite use cases um I'm going to quickly show one more thing and then I think we're pretty much through with the new features this is the the off menu feature um if we go back to our flow here we've scored the application the last thing I'll show you is on on this last decision table where we're figuring out what staff member is responsible for the application so I've created an adoption app assignment decision table you can see that this is in draft state so because it's in draft State when we go to flow designer we can't find it here right it was called adoption yep not available because we haven't published it yet so we're still working on it for now this is looking at the pet type and the time zone of the applicant and that's going to figure out who's responsible for the application and what we've added let's say this is going to be staff number can't get that one right this is a reference it's going to be a user and I think we've all had the experience of the way some servicenow tables are used for so many different purposes and have endless lists of Records if we add this as it is to our decision table you get all the users you get every user it is overwhelming there are only you know some of these might be applicants some of them might be staff some of them might have different purposes so what we have released now is the ability to add reference filters makes life so much simpler so we can add a filter here and let's say is this person adoption agency staff yes great then when we come back into our list look at that these are the only people we have to choose from very nice show-offs is so much simpler now you can quickly and easily create this decision table that's nice we can fill out who's responsible for what I noticed those are not display values though those are I was just mucking around with what the display values are they are the display values oh okay you scared me don't worry that's this is a Julia exploring around her instant situation it's not a nothing's broken so if you had the full name as the display value that's what would show up here can the default result be a list of values or multiple can only be the same type as the type here so we don't currently support lists as a result type um so this is you know because this field type is referenced the default result needs to be a reference got it that's cool you all are really tackling all of the quality of life stuff Precision tables that's like music to my ears thank you so much um let's save this it's looking good I'm gonna be bold and just not test it and publish it let's just go crazy and then now that it's published if we go back to our flow we can find this assignment decision table and put it in here and just link this to the application record and then oh we don't actually need to do branching because we don't want to do anything different in our flow based on who it's assigned to yep and then we can finish with the beautiful step that I love which is when you just take that application record and we update the fields based on our decision so here we already are updating the score with the score from this decision table and we can update the staff assigned with the result of that last decision so from here we can look and find that staff member and now what we've done is you know with a few detours along the way and a few uh tests and updates we've created a flow that looks at when an application is created checks the finances of the person who's of the application it checks whether they're eligible for a pet if they're eligible we figure out what the score is for the application we figure out which staff member it should be assigned to and then we actually make those updates and from there we could you know continue on we could add a notification step to that staff member we can add an update to the person who submitted the application we can just go to town building this flow but if we change any of this logic if we change that scoring like we already did if we you know if somebody leaves the organization and we need to change who the staff are that are responsible we can make all of those changes without ever touching this flow and it will still continue to work successfully yay Julie I have one more thing to ask about please and it's probably just a Chuck thing and I'm pretty sure I know what your answer is going to be so if you go back to your your main platform UI tab yeah the next experience and you go to all type decision down under system definition you have decision tables which lists them in a standard list format sure does yep but when you open one of those it brings up decision Builder on that tab you want to bring it up on a new tab well this is where I think I know what your answer is going to be because I was just looking at this go back up to the all menu yeah the Garrett's is going to be Chuck just go to decision Builder yeah that is my answer um member if we tried to open this in a new tab and like that didn't work with the with the override the redirect override um yeah it's a it's a good question I can't really remember I mean in reality you should just open decision Builder and do it that way um I'm thinking otherwise this module has no purpose other than maybe you want to see some additional fields that aren't here I don't know yeah it's a little bit like when we build new experiences for things that were previously platform how do we make sure we don't pull the rug out from it under anyone you know if they're used to going to this module and they're used to going to things we can direct them to the new experience but we don't want them to lose their entry point um and I think as we go release to release it's worth revisiting like it's been so long since we've had this new experience do we need those old entry points but um I know we're always really cautious around doing anything that would break someone's experience that they're used to using um even if we're going to guide them to a new way of doing things we don't want them to feel lost all right just in case somebody's followed that same path and went oh decision tables wait now I don't have my next experience menu or anything what happened just yeah decision Builder decision Builder and you're welcome to decision Builder here you go nice nice experience it opens in a new tab with the same list of stuff yeah um though I I should excuse me throw out with my Safe Harbor I'll jump over actually to a quick sum up of some of the things that are coming up for decisions because I don't want to double down too hard on that go to the tabs and go to decision Builder one thing that is coming up and all of this is under Safe Harbor but you can look look ahead to these things hopefully in the future is a unified home page across all of our workflow and automation builders so right now if you want to go to flow designer you'd go into that nav and you type flow designer and if you want to go to decision Builder you go in that nav and you type decision Builder and if you want to go to process automation designer you go there and we've found that it is confusing for customers to have all of these different home pages that are kind of doing connected things it also makes it really hard to like discover new stuff because you have to go to all of these Niche areas so we are um rolling out and I don't know where we are on any sort of like advertising of naming so I'm just going to steer clear but there will be announcements coming up about a unified experience to go to a one spot and see all your decision tables and see all your processes and see all of your flows and see all of your actions and then be able to create from there so is it a tile in AES app engine Studio yet um decision tables yeah yeah yeah we've been integrated in AES or sent with AES since I think San Diego cool yeah so unified homepage is coming I think that will make things easier and then um along with that that kind of like connected experience I'll jump down and just reiterate that we are um planning for uh even more powerful inline authoring experience so that you're not working in a flow and then duplicating the inputs into your decision table just really making it as simple as possible kind of the way like you can build a subflow or like Trend like convert parts of your flow into a subflow yeah how can you use data in your flow to easily make a decision table um so that's something we're working hard on and then we are also as I mentioned working on alignment with some of the kind of universal features so there's things we have in flow designer or action designer that are also really powerful to have for decisions like copy decision table which is something we have across process automation designer and flow designer um the ability to generate a code snippet so that you can execute your decision table anywhere you're using code without actually even having to write that code that's a feature that we have in in subflows that we found is really powerful um also you'll have the ability to view related flows so if you have a decision table that's being used in a flow you can see where it's being used so that if you do make some of those changes to columns or to excuse me inputs you know where to look to make sure there's no no breakage thanks um we're making you know we're always looking at making minor and major UI enhancements how can it be even simpler and easier to build decision tables um one thing we are doing is copy row so that is that's like a personal request that right now I have to just keep clicking my drop downs and I just want the ability to duplicate and change a few values but yes I think it will make buildings so much faster and easier like the combination of copy decision table and copy row will make people Unstoppable well maybe even less need to export to excel too yeah I think for this is like the one we were looking at today that really is only like 10 rows it will make it like Excel won't be the right path for you in most cases like I can just copy a few rows and this will be really easy to change um then as I mentioned we are working on integrating decision tables directly into process automation designer so that when you have a process you can execute rules without having to Nest them in a subflow and then um Additionally you know now we've gotten this start on drafting and Publishing we're working um across all of our workflow Builders to expand what versioning looks like what does it mean to keep version history you know do you need the ability to name your versions do we need to be able to have multiple drafts how do we manage you know viewing history and reverting so certainly if you have use cases and strong opinions on any of these things um dare I say please be in touch please be kind but I you know it's it's a total joy for all of us to connect with customers and make sure that what we're building is really resonating and and providing value to you on a similar note I think Jeffrey in our chat is actually seems to be a power user of decision tables and has been very excited about all the features you've been showing off so awesome we'll connect you with Jeffrey later if you ever need a person to talk to from the actual using side of it that's great thank you so much thanks Jeffrey all right it's nice to hear I can't I can't see the chat from my screen share so I just like these little nuggets of Engagement that I am not fully aware of foreign every time Jeffrey was like oh it reference filters ah interesting thing we've been displaying it on the screen you've had a few people cheering in the audience this whole time thanks so much folks oh thank you Julia for showing us again where we're going with uh decision Builder decision tables it's a lot of great stuff a lot of smiles on the faces of the developers this is one of those things on my list of underutilized features so the more we can expose developers and low code developers to it it just it makes all the difference trust me I've been there I've had to digest somebody's old code and I've had to look at somebody else's flows that use decision tables and hands down I want to keep using decision tables going forward great to hear I enthusiastically agree um and so yeah we're doing everything we can to make it as as easy as possible and like as fast as possible to use decision tables instead of doing things the old way all right and with that we have reached top of the hour thank you everybody for joining us we will have more more Vancouver content coming up if you're looking for that or you want to see if you missed anything you can go to devlink.sn Vancouver and get the whole content calendar or rewatch this over and over and over again instead of Netflix it's a it's a wonderful thing to do on a Friday night am I the only one okay well no you want to be the only one thank you again everybody take care thanks so much everyone [Music] foreign foreign
https://www.youtube.com/watch?v=bhpyuaYcjP8