logo

NJP

Platform Academy Session #34 - April 13, 2023 - Updates on Decision Builder

Import · Apr 18, 2023 · video

so welcome everybody uh today is our 34th platform Academy session in this forum I am so so excited to um welcome Julia to our Academy today she's been on this show before on this webinar it's been a while uh it was actually the 10th Academy so it's been over a year I can't believe it's been this long but the good part about it the good news is that we have so so many new updates that we can report on so many improvements feature enhancements for our favorite topic of the day and that is decision Builder so before we get into this I will do a quick introduction of myself and then Julia my name is Lisa hohenstein I'm an outbound product manager I live in Germany I have two cats who are currently uh locked outside of my office so we can do this um I have been with the company for about four years and my major product areas there's workflow Automation and that includes flow designer process automation designer but also of course decision Builder one of my favorite features on the platform uh so for a quick introduction over to you Julia all right thanks Lisa good morning good afternoon good evening everyone from wherever you are um my name is Julia Perlis I am a principal product manager at servicenow I focus predominantly on decision Builder and decision management as a part of the workflow automation team so I also work really closely with um PMS who focus on Flow designer process automation designer and all of the initiatives that tie them together like Lisa um I'm talking to you from Chicago Illinois I also have two cats they are locked away which is both a benefit and a loss um I've been in service now about three years now if I can math correctly and yeah I'm glad to be back here on on the academy and talk a little bit about what what's been going on with the product for the last couple years and hear from folks on the call with any questions either in this moment or you know when you when you play around and have feedback and thoughts later awesome just to be safe we have our Safe Harbor statement you know this one if we're talking about forward-looking uh features of the product things may change so please don't make any purchasing decisions based on this and with that I think we can get into the agenda before Julia take over there we go we have awesome topics today uh we will of course talk about decision Builder uh Julia will tell us a little bit about what the product is for those who haven't seen it before we'll get a little bit into the history of when we published it the first time how it uh got to be where it is today uh since we haven't talked about decision builder in over a year one and a half years we have three whole releases to catch up in awesome features so we'll go through these and then Julie I think has some little demos prepared for you so that we can see decision builder in action all right over to you okay fantastic thanks so much Lisa um and Lisa I will lean on you to interrupt with any q a or chat that is relevant to our conversation because there's only so much multitasking I will absolutely keep an eye on that okay fantastic um so thanks again everyone for joining us to talk about decision Builder I assume people on this on this call have a mixed experience either they've used it before or they've heard of it or they have no idea what this is and we're just curious from the name of the session so I'll try to kind of make sure that I'm speaking to all audiences um and giving people the right context to understand you know what where these features we're talking about fit and what the purpose is so before we dive in on anything new taking I want to take a minute and talk a little bit about what decision Builder is what you're looking at in the screenshot is an example of a decision table um decision Builder is a store application that is used to create and manage decision tables um decision tables are a capability that have been part of the platform since Madrid and we'll talk a little bit about the evolution of the experience but really what it is at its core is a way to organize and manage and create business logic separate from where you use that logic so if you look at a decision table like what we're taking a look at here this is managing the logic for what assignment group women will do fulfillment for request and whether that request requires an approval or not um and it's all based on a set of criteria that is consumed by the decision table through these input variables so the the overall purpose of a decision table that you create in decision Builder is to store and manage logic and then what you can do with that since your logic is in one place is use it in multiple places across the platform and you can simplify and streamline all of your code and all of your flows and this will become a lot more clear through the demos but what I'm sure many of you have experienced is that you end up hard coding a lot of your what some would call business logic or decision rules or business rules right into your code so you might actually have a flow with a bunch of if statements that say if billable is equal to false then check if the item price is less than seven hundred dollars and your flow becomes 30 actions very quickly because you're trying to account for all of the logic oh yeah and as soon as the logic changes you are hitting your head against a wall because that means that you need to totally go back change the flow you know rebuild and retest everything you're doing um even if the actual processor flow itself has not changed and so by splitting out your logic from the places you're using that logic it actually makes it easier to manage both you can use a purpose-built user interface like this to more easily track all of these conditions and if statements and cases um and then when you actually work on your flows and work on your scripts they are much more streamlined and have a lot far fewer values hard-coded in them yeah we have one comment and chat for this uh and Jose tells us that decision Builder uh decision tables are the most under the Raider uh capability at least for his companies so I uh they hope they're uh to learn to Advocate it I am all for it I 100 agree when I went to knowledge last year um I had a couple of people walk up to me after I presented uh or included decision tables in my process automation designer lab and people were like I didn't know the CCS this is amazing this will help us so much so absolutely underrated and all for advocating for it yes we're very sneaky but not on purpose yes um I I honestly I find that myself I think I'm really irritated to work with sometimes because when I'm looking at people's flows I'm like oh but if you just use a decision table for this it would be so much better and like at a certain point I'm just a broken record but the truth is there really is just like so much opportunity in making things much more flexible in when you don't need to just like hard code values and change things all the time um which I think dovetails nicely into a quick run through of some of the key benefits and this is what we're trying to help you know all of our customers unlock with this product we we invest in things because we think there is tangible benefit for all of our customers and for decision Builder um the two kind of categories of things that we hope that you get from it is the ability to simplify app development and maintenance so not only are you capturing your logic in one place but you can use it in multiple places um I'm sure we've all had that experience of you know this eligibility criteria that you needed this script and this flow and you write it twice and then it changes and you need to remember where you had it implemented you need to change it in two places you need to try to keep everything synced up so this tries to reduce some of that friction I talked about simplifying flows and scripts we'll see that through the demo um you can reduce your change burden you know you only change logic when logic changes not changing your code as well and then on the other side um ideally by leveraging decision Builder you can also Empower business needs to own more business logic it is still predominantly like a develop and sub prod experience and then promote to production that's the best practice for doing it but if you have any sort of like process owners or business stakeholders who are working um in your in your instance and are comfortable in a low code environment this really broadens the window for who can keep track of logic who can build logic who can manage logic um we have roles for different access levels which we'll take a look at those are new um since we lasted an academy and we also have an Excel export and import feature as a way to manage large tables but also bring in some of those business stakeholders who may not be in servicenow much at all in a back-end capacity um who or who may just be much more comfortable working um working in Excel so when you're saying simplifying uh simplifying flows and and scripts that means we can also replace some script includes maybe with a decision table that you can call from other places like flows but also Scripts yeah absolutely um and that actually brings us here kind of where you can use decision tables so um and you'll hear me talk in and Lisa and I speak in this presentation about decision tables versus decision Builder it's a subtle distinction decision tables are what you build in decision Builder so decision Builder is like the nice user interface it's a store application it gets Auto installed with every family release starting in Tokyo you can go to decision builder in your left nav or in your drop down nav and open it and create a new decision table but decision tables are kind of the apis behind the scenes the architecture the capabilities that exist whether you're using the UI or not um we also have a few other capabilities that make it super easy to leverage decision tables particularly at the moment in flows and subflows there's an action called make a decision that we'll take a look at where you can point to a specific decision table and and more easily configure the way you want it to run but we also have a whole set of apis for execution where you can call a decision table anywhere you're using script to like like Lisa had mentioned that is so awesome I really like this part you can replace all the switch case statements that's the dream hopefully everyone's dream after we dive into all of this so let's take a quick tour through the history of decision management I'm not going to get into all of the details it's going to be much more interesting through demos um but like I mentioned decision tables have been part of the platform since Madrid as a list and forms experience we also had that action within flow designer um and and callable apis and since the Inception of decision tables they've been used within change management to manage change approval policies so if you've ever managed and done any sort of change approval policy work you're already an expert at decision tables um we really started the initiative around making decisions a low code experience and a user-friendly UI for our roam release um in Rome in our Rome family release which had an Associated store release we launched decision Builder and basically said you know we have this incredibly powerful capability we call it a decision table when you look at it it's just listen forms there's no table so we were like let's let's build a table and let people actually use this the way it's intended to be used um and we have been adding adding capabilities and features based on opportunity spaces and feedback since then so um in San Diego we did a major release and added capabilities around um more ways to return data from a decision table so if you're running a bunch of rules you used to only be able to return a record a single record per Rule and now there's a lot more freedom around what you can do with results we'll take a look at that in the demos um we added support for delegated development and integrated with app engine studio in San Diego and then in our Tokyo release our our major new initiative was exporting and editing in Excel which we'll take a look at today um we built what is called change approval policy Builder the the user interface for using decision builder for change approval policies um as well as some capabilities around complex decisions and bringing more of that compatibility from what you used to be able to do to what you can do now um some new roles and support for localization and then in our Utah release um the main thing that you will see on our user interface is the addition of a default result which we'll take a look at and support for currency um we also built support for the make a decision action within flow diagramming if any of you are diagramming users of flow and a major initiative we worked on in partnership with some of our application teams was new apis that let you create and modify decision tables programmatically so this is something that can be really valuable if you want to use an API to create the structure of a decision table but then you might want to have someone who's the subject matter expert actually go in and do the manipulation of what the rules should be what the logic should be and and get into kind of the details of it not the structure let me find the link for you so I can post it in chat there was a live coding happy hour of our colleagues in the developer advocacy program a while back and they uh they did a whole hour on uh eating results and and conditions with the apis so yeah that's so awesome um we have two questions I think we can address at this point um the first one is is there a licensing cost for decision tables no decision tables and decision Builder are part of the platform so you get them for free one thing not around licensing but one thing I'll mention around application access is that we true up decision Builder with all of our family releases so when you if you upgrade to Utah you'll get decision Builder if you upgrade to Tokyo or have a Tokyo and since you'll have it but the way store releases work you are always trued up to One release behind so what I would recommend for anyone who's on the administration side is that when you're moving to a new family release look for applications Store applications that are available for upgrade because we will always launch major new features at the same time as a family release and so it to get to take advantage of those features you need to be you need to go into system applications and just awesome and then there's a second other restrictions triggers that can be used with this make a decision under decision table inputs for example like choice true false decimal are there any restrictions or can we use any kind of inputs great question um on the user interface we we support a subset of field types so for using decision Builder you'll you'll see that there's the all of the most common input types are available if you do have a use case where you want to use decision tables you have an input that is not one of our supported input types you can kind of flip off the UI and go back behind the scenes to the lists lists and forms experience um and if that's something that you find yourself needing to do to take advantage please be in touch and and um I believe we have some KB documentation on how to do that but if you just reach out to me as well um I can I can help you sort through that and also it's great for us as a product team to be able to understand what those use cases are and make sure that we're accounting for common common needs sweet okay let's do a quick tour through some of the new features I just mentioned and then I'm going to spend the bulk of the time on demos because I think that's really where the where the value is here so new in San Diego which feels like the ice ages compared to where we are now um I think that was the February 2022 launch if I remember correctly yeah yes I think so San Diego is the release we built our last knowledge Labs on yeah that's right okay that's why because I was like right now I'm building a knowledge lab on Utah so that makes sense yes if you don't know yet meet us at knowledge we'll be there see you in Vegas um so in San Diego we we did our first major architecture change for decision tables um and it really unlocked a ton of capabilities around how like what you can use decision tables for how to make them user friendly and like business user friendly and and really what it comes down to is what you see here in these results so before San Diego a decision table could only ever have one result column so for a given rule if you had let's say you wanted to say if the you know if the due date is more than a week ago then you know return X result you could only return one result value and it had to be a record and so there was no ability to return any other field types there was no ability to return two different values for a given rule um with our San Diego release we unlocked all of that so you can now add more than one result column for a given decision table and you have the option to add result Columns of different field types so like I said with inputs we don't support every possible field type with results and if there's a field type that you're really missing for your use case please be in touch but we do support all common field types and that way you can add new columns that are returning data that you can use in subsequent steps in your flow or in subsequent actions within your script based on the appropriate field type then in Tokyo the major initiative that we took on was this export to excel work in Excel and import from Excel this is the kind of overview of what it looks like and you'll see these instructions when you use the feature doesn't really begin to to showcase the value of that so we'll leave that to a demo to really get into it and we also within Tokyo built decision rule view which we'll take a look at in the demo yes one of the questions in the Q a panel and just answer real quick uh can we get multiple results absolutely since San Diego we can and it's amazing and in both ways so you can get you if you have a single decision you can get two results for that decision but you can also say I want to you know I want to run through every single rule in this table and if more than one of them is true I want to return a list of results so you can get more than one value for a given Rule and you can get values for more than one rule if that doesn't make your head explode and the way I think about it is like actually I think approvals are a really good example you might have a decision table with one result column that is um you know one result column that is the approver and it has you know a name and it's a reference to a sys user record and then you might have a different result column in that decision table that is let's say yeah I can't think of the top of my head but another another value maybe a group escalation for uh so if it's a high priority you can have multiple levels for approval and so maybe the first level will be this the person and the second level depending on priority will be the second it will be a group yeah well and then the other thing I was going to say is that if you if you want you can either say run through my rules and the first time a rule evaluates to true that is the approver like return this approver this is the person who has to approve you could also say evaluate all my rules and for everyone that's true generate a list so depending on your use case you might want to say the first this person's the approver on another use case you might want to say the approver is one of anyone in this list that was generated and so you set you set up that way of looking at things when you're actually setting up your execution so either in flow designer or in your API call all right um we're getting a lot of questions coming in uh I will post the session one is asking for a decision Builder uh session and absolutely Julia's working on it so I'll post the link once I find it on the agenda and then maybe um while we're talking about rules what is the minimum role required about to call the new API in Utah that's probably in the next slides right it is not in the slides the actual role required but we have a um we have a role for the API executions so I will I might have to follow up with the actual name for that but um we do provide because we wanted to have a role for the um basically what if you're working in servicenow and let's say you are you you've set up the new apis to work with a UI action so someone clicks a button and it automatically generates a decision table what we wanted to allow was for that person even if they don't have a high level of decision Builder access they can still through the API create a decision table and so we have a separate role that you can give to users to allow for creation via API that's independent of the level of permissions they have in our UI hopefully that answered the question without making it more confusing thank you absolutely um and and roles are something we've been working on in the last year you'll see here that in our second Tokyo release um we did add a couple new roles and improve our existing roles to allow for more limited access roles so you know the decision rule author is someone who can do everything within the table but they can't change the inputs and they can't change the structure of the table um and that just creates a space for kind of safe editing you know if you're building a flow based on an expected structure and then someone changes that structure there's a risk there so decision rule author is like someone who has free Reign Over the decisions but not free Reign Over the decision table um and then decision result editor is an even narrower role it's it's someone who they don't control the rules they don't control the structure all they do is say given this rule what should the result be so that might be someone who is really on the subject matter expertise side the logic has already been put in place but they're the person who's going in and safely saying given this logic here's what it should be so you know you might have um rules around a product promotion or discount and you might have the person on the marketing team who comes in and sets all the discount percentages or the you know the Loyalty levels depending on the conditions in your decision table all right let's do a quick talk through Utah yeah you've already seen this in most of our slides but in Utah we released this lovely little row here in the decision table the default result um it's one of those things that looks small but is very Mighty um I think saves people a lot of confusion and headaches basically what this does is say you have all of your your rules in a decision table each rule has a corresponding result when you execute your decision table you run through all the rules what should happen if no rule evaluates to true what should happen if you know somebody submits a catalog request for an item and the category is hardware and you don't have a rule for it in that case in some use cases it might be the best outcome to not return anything um I think of that as like sometimes we use decision tables for exceptions to existing rules like in servicenow you have that um The prioritization Matrix where you have like Auto set prioritization for tasks based on a couple criteria but you might want to use a decision table for exception scenarios so in that case you really only want to return a value if there's an exception um not if they're you know not if a rule doesn't fire but in a lot of cases you want that catch-all so in this case you know if none of these things apply you still have a result that will be returned with your decision table and that can help protect around um you know in this case if you added a new category and you hadn't updated your decision table yet you'd still have something to be returned you would still have you know some default of an approval required or an assignment group to set and the good thing is so before we only had the option when we use decisions in a flow designer there was the option for an otherwise Branch but that is I think also only available if you do branches so if you want to continue your logic without branches you wouldn't have the option to have an otherwise result so this default result from the decision table from decision Builder is available for those cases but also if you call the table and get the decision through the API so if you call it from a script somewhere you can still get this default result so I think that's an amazing Improvement yeah exactly and I I do think there's still if you don't have a if you don't want a default result there's still value in that otherwise feature in flow designer because really yes what that thing is if you have a result follow these paths and if there's no results follow a different path and so it's more about routing routing that automation rather than the actual data that's returned yeah um but yeah this definitely expands what you can do around making sure all scenarios are covered and then the last thing which I have an absence of screenshot for I didn't really know what to put in here so we're just gonna talk about it briefly is what we mentioned around the new crud apis that were released in Utah and and so these um extend the decision table API and give you the ability to do a lot of programmatic creation and management um which you know as I mentioned as an example if you wanted to have a set of rules related to a record and you want it to automatically generate that table you could use a UI action and call these apis um but definitely like this is a new feature we built it partially for some of our um internal servicenow Partners so if you find yourselves really you know finding a way to make it even more useful for your customers or your users and your use cases let us know and we always love to hear how the features we create or are being used in ways that we didn't even expect I think we should jump into demos let me just pause if there's anything in the chat or q a that we should address before we um just thumbs up and things that what was what I was looking for so all all questions answered for the time being fantastic well let's all hope that nothing I have open is timed out um but I I want to walk through a few different demos that will show you some of the new features we've been talking about um and we will start with an example of determining a discount um for a a customer so in this scenario we're looking at a flow here this flow triggers um when a customer service case is closed and so what we want to do here is based on the consumer's loyalty level we're going to send them a different discount percentage so for their next order they're going to get a discount because they had a problem with their order um and this is the scenario as it's set up before you're using a decision table so when I was talking about a lot of hard-coded if statements and nested conditions this is without a decision table probably the most streamlined way you can do something like this which is having a flow variable that's capturing that discount percent and saying you know if the customer loyalty program of this consumer is is the gold program then if that's true you can set a flow variable value and say the discount percent is 20 percent and if they're not gold then check if they're silver and if they are silver set it to 15 and if they're bronze set it to 10 and if they're not in a loyalty program set their discount to five percent and then we're going to go through and update the case with the discount we're giving them and send a notification so looking at this we're going to use a decision table to get rid of all of this hard-coded logic that we have built here and I'll show you some of our new features as we do that I mean the thing is if we wanted to add another level that would be quite complicated in this case it would like I feel like once you get to the point that this is not all very clearly in one in like one screen you just can never you can never figure it out again and this is also this is only looking at loyalty program if you were looking at loyalty program angiography your head might explode um so we're going to start off with this really simple use case this is a decision table I've started building to tackle this scenario so as you can see we have an input variable here our input is consumer record um because we're going to be making these decisions based on information about that consumer so here um to the question that was asked earlier let me add an input you can see that these are the different field types that are currently supported in the UI as input field types one thing that I will call out that is coming soon to an uh decision Builder instance near you is that if you use the choice field type right now you'll see that you have to enter your choices um with our second Utah release which comes out right before knowledge in May you'll also be able to point to existing Choice lists so really make life simpler so you don't need to copy and paste anything it also works for result columns right yes perfect it will work the result columns as well which is is very helpful yay yay all right so here we have our input in the decision all we're looking at is what the customer's loyalty level is that's what we're going to make our decision on so I've added a condition column here that looks at a field on the consumer table and good thing I caught this not even called the right thing and it's looking at the Loyalty level field from that table and then the last thing we'll do is add a result column So based on the Loyalty level we want to choose a discount percent and I'm just going to set it as an integer because we're not going to calculate with it we're just going to send it in a notification to the customer but like you can see here these result types where you can have Choice currency date daytime and this full list of field types this is all from San Diego forward we're continuing to add new field types that we support here but hopefully this gives you a lot more flexibility than you used to have so we'll set an integer type and now you have the structure of your decision table and all we need to do now that we have this structure is actually add the rules so we'll translate everything we had in here into here which is remarkably simple so we can say if you are enrolled in gold as the first condition if you're enrolled in silver as the second you're enrolled in bronze as the third and then we'll use our default result for folks who are not enrolled in a loyalty program and then you just fill out what should that discount percent be so for gold we said it was 20 percent for silver it's 15. for bronze it's 10. and then if they're not in a program it's five percent and we have now taken everything that was in all of those if statements and put it into this decision table we can go back into flow designer and Implement that decision table into this discount flow if it loads there we go all right so this is what we had to start with what we're going to do now is add flow Logic for making a decision and that will bring up this action here we're going to decide the discount percentage we have that decision table we just created which was called discount percent based on loyalty and then there's a few other settings in this action you can see that we automatically create branches so what branches do is take you on Parallel Paths of your flow based on unique results so it'll create a branch for each of the distinct results in your decision table but in a scenario like this one the branching won't actually benefit you because we want to follow the same flow no matter what we're not looking to do different actions or go in a different direction we're using the decision table to get the different values and so if you only want the values and not the pathing you can just turn branches off and that will remove them from your flow this is also what I was referring to earlier around whether you want to get the first decision that matches or a list of decisions in this scenario you just want to go through the decision table and say as soon as one of these is true return of value because a consumer can't be in more than one loyalty level if you wanted to give you know there's five criteria they each have a corresponding discount and you might want to apply more than one discount that's when you would want to go through and say run all decisions that match and you would get a list of results and then the list could be walk through with a for each uh with for each logic that's the best path forward then all right yeah thanks for calling that out the best path is definitely once you have that list to save for each of those results go through and do whatever you want with the actual values and then to wire the decision table up to your flow all you have to do is connect this input variable with where the data is coming from so in this case we have our case record the case is linked to a consumer and so the consumer from that case is the consumer that we're running through the decision table and we've now configured this decision now that we have it configured if you want to take a look we can use the results from it in a subsequent action so right now in this flow to update the record we're using that flow variable that's what we've been setting through all this logic but if I get rid of this now that we have the decision table you can go into the make a decision action and this is one change I want to call out for anyone who's used decision two tables previously when you only had a single result column we did change the architecture to enable multiple result columns and so what you do now to use the results is you go through the result record and then you will get I did not save these things concurrently I need to refresh sorry folks quick page refresh and then we will see the magic happen magic uh while we're waiting for the refresh of the page uh we have another comment in chat and we thought simpler couldn't get any simpler for hitting the decision table yes that was that was incredibly simple I'm I'm glad to see it yeah I think uh our like teams guiding principles like what's easy can it be easier and that's probably like a a pretty true guiding principle of um everything that happens on the workflow automation team yeah is it intuitive can it be even more straightforward and while we're talking about it and looking at it don't you think the flow diagramming view is just so so pretty uh you know what it is I will say I I am like a I'm so used to the natural language version of flow but when I Was preparing these demos I was like oh this makes a lot of sense right I think I think yes like that man might have made me a full convert yeah I the thing is it the linear view is good for for building out sometimes if you're going from start to finish but to get a good view of what your flow actually does I think the diagramming view is really amazing and one more uh update that I want to call out that was introduced in Utah is uh in the bottom left next to the mini map kind of of your diagram there's a wonderful button that lets you download this diagram as an image let's do it why not because that is so amazing my uh it's as it seems so small but it is so amazing for your process documentation you can just print this out or attach it to your process docs you can attach this to your change request you can attach it to whatever comes up and give this to the process owner and say hey I built out this this what you're thinking about so it's amazing I love it all right well I'm going to keep us moving so we can take a look at that Excel feature while we still have some time um let's finish up this flow so now we can go back in we want to set the discount we're not using the flow variable anymore we can go back This Is The Moment of Truth there's a lot of record oh look at that it's amazing um and so if you had if you had more than one result column so this decision table only has discount percent if you had discount percent and responsible contact and the responsible contact was a user record when you're in flow designer here if you click through this pill picker you would see both here it would say discount percent integer and it would say responsible contact reference um so this is the way that you get access to anything that's in those result columns so we will set our discount percent and then we can do this really nice thing which is um just get rid of all of this goodbye wow um so this is our flow now so I I hope this illustrates what I was saying which is like when you're using the purpose Built tool to manage a logic the logic management is easy and the flow is easy it's not it's like a one plus one equals three scenario um if you start to find those use cases is that like two plus two is five for very large values of two exactly all right well given our time let's move over and take a look at the Excel feature for decision tables I was going to run through this demo but it might have to wait for another day um okay so let me set up this use case we're not going to do the Flow side of things here but this is a decision table we've created um if based on a a catalog request so if somebody submits a request for a new laptop and they one of the one of the questions in that catalog request is do you have a preference between Mac or PC um this is a decision table that takes in the requested item record as well as a non-reference input for the preference um and that is one thing I want to call out not a new feature but just to best practice if you're building decision tables around catalog items the way you would approach the structure is to create separate inputs for the actual questions in that catalog item that you want to link up to the decision table um and then when you put it in a flow you can trigger the flow based on the catalog request and then you can get catalog variables and hook those up to each of the inputs so that's either something that if based on what you've done on the platform will either make complete sense or make no sense if you find yourself trying to do it and get stuck uh please reach out but in this case we're going to look at what someone's operating system preferences and some information from their requested item and there's going to be a set of rules based on that preference based on what department they're in and based on whether they're a VIP employee about whether what laptop they're going to get so we I actually have a separate decision table that determines whether they're eligible for a new laptop or not this decision table is saying all right if you're eligible based on this information what laptop are we going to give you um and I will also copy out that my demo data here is desktop computers so please don't hold it against me so in this case what we've built here so far is the structure of the decision table this is the columns you can see that we have all of our details about columns here um it's not actually any of the content of the decision table itself and that content might be something that you leave up to a business subject matter expert or someone who's more close to the decision making [Music] um and you could let them do that in two different ways the first that I will show you is working in Excel and the second is with roles and the third is you can combine both and and have some with a limited role who can either work in decision Builder or export an import from Excel but let's start with the Excel feature here so you're able to export a decision table to excel once you've saved it and once you have at least you know one input and one condition column and one result column you kind of need that structure in place to export you'll see some information about the exporting process and then you will get this template this is not the template this is what we're going to put in the template there we go and so this is just an empty structure of that decision table it has a lot more sophistication going on behind the scenes but ideally it looks the way you expect it to look we have a tab for instructions there's some things that are like wait how do I do this so anything that is you know not completely intuitive and user friendly we have details for here things like how do you manage it between operator you know what can we use to go between values some information about date date time and due date but going back to the decision table you have drop down lists of what all the operators are and these are specific to the field type of this column so this is not Universal this is because this is Choice here are the operators available to you and if you try to use something else like I think use try to type you'll get a foundation error and get stuck from doing that so this is to try to prevent errors there are some cases where we have suggestion lists but we won't hold you to those lists so here you can see the available Choice values but you actually could type something something different and the reason for that is because we have operators like contains and starts with so there's an infinite number of Avail of of acceptable options for here we give you the choice list so that you know what's you know what the options are but we don't constrain you from using all of the operators um so it's kind of trying to manage that balance of how do we prevent errors but how do we also give you freedom to use Excel the way it's meant to be used and really where we see the value in this is a if you are building a really large decision table um we do everything we can to make decision Builder as intuitive as possible but at the end of the day we're not trying to rebuild the spreadsheet tool and so if you're trying to build 500 rows you're probably going to have an easier time doing it in Excel than you are going to have doing it in a copy paste yeah and the other is that oftentimes for um for different applications the logic is already being shared back and forth in Excel and so rather than having to move it from Excel directly like click and click and click into decision Builder we give you this as a bridge to be able to maintain that logic in a way that it is already living so in this case I'm just going to show you what it looks like when we add some logic into that decision table so we'll paste in some rules here like you can see these are following the options available same thing with the Department we're choosing one of these available departments um and then there's a list of Records here as well there is a system property if you want to prevent export of any any records so by default you can do this download and work on a decision table but we have a system property if you at an Administration level want to prevent export of any record names and just require people to type in the names directly so with this setup I'm going to save our changes you can change the name of your file that will that's no problem but when you import you do need to import a file that was previously exported so when we export a template it has a bunch of data behind the scenes like the sysid and things that will connect your template back into your decision table and so you'll get an error if you try to just copy this into a new file and import that but you can always re-export a template if you find that you need that so let's come back to our decision table here we'll import and choose that file we were just looking at and you can see that it immediately brings all of that data from Excel into decision It's Magic and the other thing I'm just going to show you quickly on that is let's say we go in here and we start to mess around with things change that to product management let's change this to Linux I think we can change this to something oh no that is a validation list if you try to go through and import this version with errors let's take a look at what will happen you will get this message three out of six decision rows have errors nice because of the decision tables works we don't do any partial Imports so either it's importing and it's working or it's not importing and it's not working we found that anywhere in the middle just creates more confusion than it than it solves but from there you can download this error file which you can also access in your Import and Export history um when that loads but I'm just going to pull it up here yeah we just had a question before you did that it's magic how to make sure we don't have any error I think you wonderfully displayed what happens if we have an error yeah there's no way you can't you can't make sure you do everything we can but what we what we try to do and try to do with this file is you can see for each of these errors we point to the specific cell where you have an error and we'll tell you what the issue is so here there's an invalid reference value this does not exist there's an invalid Choice value there's an invalid reference to Value um and so the other thing that you can do here is if you fix these errors and save this file you don't need to go back and create a new template you can import this error file directly once you've corrected it you don't need to get rid of this column you can just go back into your decision table oops I didn't mean to export you can import and you can see this is the error file but when you go to import it because we fixed it um nice you now have all the data and you go ahead and save that wonderful and we have our history which I don't know why it's not loading it's just having a demo moment of course Susan asks does the import always do a full replacement or is it additive it's a full replacement always and the reason for that is that you can't do a partial export so when you go to generate that template it's going to export everything that's already in your decision table so you're already working with the whole table um and the other reason is that with a decision table because it it executes sequentially the order is so important that we didn't want to do anything to like append things to the bottom and potentially confuse the order of the rows all right uh when testing how can you determine the past the decision table uses so yeah it's a great question you can't do that necessarily at the moment right now um the best place to test a decision table is by dropping it into a flow and running data through it in that flow um there's another question and I hope you can all see the answers that I will put there um if there is any now learning uh courses for decision tables um as far as I'm aware there's currently no now learning training but we do have still have last year's decision table creator con lab decision Builder and as as mentioned before Julia's delivering a new one this year at knowledge and that one will be available on non-learning as well as far as I know um yeah I will say the so there's the Creator con lab last year which is a very in-depth instructional lab on how to build decision tables the lab this year is meant to be both new content for folks who attended last year but also an entry point for anyone who didn't attend last year so I'm trying to have my cake and eat it too you guys can all join and let me know if we were successful yeah yeah that would be lovely lovely uh and if you're so done with the demos so far did you want to show the the ACLS the I think are we at time yeah we are pretty close tonight I won't show the ACLS the one thing I want to show just because the question comes up sometimes is the decision rule view um for any Row in your decision table in this little left menu you can open in decision rule view which will give you this condition Builder experience um I would say this is something that you should use if you absolutely need it for your use case it does kind of break the convention of a table so let's say you wanted to have a new condition set here where you say you know the requested item activity is due today which is completely outside of what your decision table does but is available with that input data what you'll get is this experience where you merge across your rows so we've we've certainly had customers who have a use case that's perfect for a decision table but they have one or two pieces of logic that just really need like an ore condition or to look at two things and we don't want to constrain you so you can do that more sophisticated rule view through through this experience you will lose access to the edit in Excel capability though we are working for Vancouver to have a way to let you also have your cake and eat it too and you you know be able to work on these rows in Excel even if you can't touch this Row in Excel so stay tuned on that but if you find yourselves in a in a scenario where you do really need that the feature is available awesome wonderful uh so if you could uh catch up with the presentation once more so I can get through the last exactly where I'm going amazing let's get that I think those demos were really impressive just the reducing like the 10 branches in in the flow into like three actions and we're done one logic two actions and we have everything covered that's so amazing so we will share the presentation I will share the presentation as a PDF it also has a couple of more use cases if you need some in ideas um as I mentioned at the beginning of this session we do have more academies so uh please please join my colleagues they have a wonderful backlog content and we really really appreciate that you are here with us today our next session is in two weeks and my uh loveliest bestest colleague Andrew Barnes will join me for an amazing session hopefully on a flow designer approval so we'll dive really deep into anything flow designer approvals how to do very complex things that you didn't know was possible in flow designer so make sure to join us in two weeks we will then take a little break for knowledge because we'll all be traveling and there's no time for editing videos and I will pick up pick back up I think on June 8th uh together with my colleague Ashley Snyder and we will be uh speaking about speaking about Knowledge Management so uh sign up for those upcoming sessions um if you don't know yet there is the center of excellence with more workflow automation uh resources uh on the community you can get to it with my wonderful shorting with the QR code and I hope that the content is helpful it's also collected training and I think that's about all thank you thank you so much Julia that was an amazing session yes thank you for joining me and thank you everybody uh for being in this in this webinar see you next time folks hope you have a great day wonderful bye-bye

View original source

https://www.youtube.com/watch?v=W2J6a9AYQHU