Appian 19.2 Product Announcement Webinar

– [Malcolm] Welcome, everyone This is the Appian 19.2 Product Announcement Webinar Again, my name is Malcolm Ross, VP of Product for Appian I’ll be walking through today’s content To begin with, though, before we jump into the details of Appian 19.2, I’d like to first shout out, put out a big thank you for those who happened to attend Appian World at the San Diego Bayfront hotel It was a fantastic event, just about two weeks ago We had over 1500 attendees and, of course, a great time interacting with each other, networking with fellow peers of the Appian platform, meeting our solution partners, as well as hearing interesting thoughts from Andre Agassi and our keynote speakers, from other customers, as well So, if you did not have a chance to join us at Appian World, of course, all the content will be covered today far as what’s the new product features announced But there’s always another chance, and it’s sooner rather than later We have a save-the-date out now for Appian World 2020 on March 8th through 11th, and of course this is gonna be at the Diplomat Beach Resort in Fort Lauderdale, Florida So real excited to be seeing you there if you didn’t make it at San Diego And, of course, if you were at San Diego, hope to see you again in Fort Lauderdale And, of course as well, if you go to appianworld.com, we also have an interesting call for speakers So, we had a lot of demand this year for people wanting to share their stories and insights on using the Appian platform, so we opened up this early If you go to appianworld.com, click on that call for speakers, if you’d like to share your story of the Appian platform, feel free to click that We’ll try to get you on the schedule for Appian World 2020 and see you on March 8th through 11th in Fort Lauderdale With that, of course, let’s talk a little bit more about Appian 19.2 And, of course, Appian 19.2 is the second release of the year, starting with 19.1 released in mid-February And, of course, 19.3 will follow-up in August and 19.4 in November So, of course, 19.2 is gonna be scheduled for May 31st, 2019, that’s two days from today, just this Friday And, of course, today we’re gonna cover all the new user, low-code developer, administrator, developer, intelligent contact center, and community AppMarket updates associated with the 19.2 release So, we have a lot of content And, of course, if you didn’t see the announcement before, we have extended this webinar from 60 minutes to 90 minutes, to make sure we have a lot of time to cover that content as well as all your questions at the end of the webinar So again, feel free to submit those during the course of the webinar Let’s jump right into Appian 19.2 with the end-user feature capabilities And we’re gonna kick off today, starting, talk a little bit about mobile So, our self-service mobile brand and builds experience has been updated to allow you to do custom branding of your mobile applications directly from the community This provides full-branding management and no support ticket’s needed anymore So now you can create brand new mobile versions of the Appian mobile application via the branding site community This site offers a self-service guided workflow for creating custom versions of the Appian mobile app for your organization It checks a submitted configuration, reduces the time it takes to get a branded build, and eliminates the need to manually provide assets to support engineers You can also download past custom mobile apps, so as you use this tool, it’ll remember all the previous versions as well, from this site, and update your custom mobile app configurations at any time More details can be found in our documentation, which will be released on Friday, so feel free to check that out when it becomes available In addition to our Appian mobile experience, we’ve also added mobile link redirection This will automatically prompt the user to download the mobile app if it’s not already installed So, sometimes our customers want to drive a mobile first experience We don’t want them using, maybe, the native web capabilities of Appian as well for mobile, so we want them to really be aware that there is this mobile application Now, of course, well, you might not choose to use the Appian default mobile application You use a custom branded mobile app having used the previous feature to brand it yourself Well, no worries, of course Inside the admin console, you’ll find a new configuration Right, there’s a check box If you do or do not want them to automatically prompt to download the mobile application, just go to the admin console, check or uncheck that box When that box is checked, if we detect that they do not have the mobile application installed when they follow the link to the Appian environment, it will automatically prompt them to these URLs Now, of course, by default, you’ll see these loaded with the Appian standard mobile application for both iOS and Android, but if you have a custom mobile application, and you wanna forward that to a specific App Store listing, you can just go ahead and update the URL right there for your specific listing It’ll prompt them to download your specific mobile application as well So, great feature to make sure that that is the experience you want for your mobile users Now, going on for iOS specifically, we’ve updated our linking behavioral to support Universal Links So, Universal Links are a specific feature of Appian, or Apple, iOS, that allows you to directly and deep link into an application rather than going to a web browser So if you’re familiar with linking behavior today, in 19.1 or earlier, when a user links to the,

to a Appian specific link from a web URL on a mobile device, it’s gonna prompt them first to the browser, and then the browser will say, do you want to open up the mobile application? So now, with using Universal Links, it will seamlessly link directly into the native mobile application So, this is a great experience if you’re sending users tasks or record links or report links It will, right from the email, open directly into the mobile application Really nice experience Now this does only apply to iOS And it also is only available for Appian Cloud customers that use the Appian for mobile devices iOS application from the App Store, so important caveat there to make sure that if you wanna take advantage of this feature, that you are sending for Appian Cloud The reason for that is it requires us to register the specific domain of your environment with Apple to make sure that that trusted URL Universal Link behavior will work properly So, we can’t do this for on-premise environments, ’cause we don’t know the URL for your server But for Appian Cloud environments, we can deliver this experience Also, in mobile, we’ve also improved the clickability of grid cells for mobile So, this is an improved user navigation with mobile grids The entire cell on a read-only grid is now clickable when the contents contain a single link Important caveat there, that if you have multiple links, still the individual links will be clickable, but when there’s a single link, we’ll make the entire cell clickable So, if you have a small amount of content, like a small icon, just makes it easier for the mobile user to use their finger, to actually click on that link to navigate to the sub-content In addition, we’ve added filter records by date range So, inside the record type configuration, you’ll notice a new configuration allowing to filter by date range for user filters And as you can see, the behavior here, when that’s turned on, the user will be able to say it’s like the range of dates and then filter all the contents of that record inside of that range Now if you’d like to use this feature in a more programmatic fashion, there’s also a new function parameter called a!record filter date range function This is used to query the specific records and filter those records to that date range parameter with a start or end date In addition, we’ve also improved the user picker experience This is a small enhancement, but an important one, for those of us with multiple names, like Anthony Michael Hill, for example In this example on the right-hand side, I’m seeing, I’m typing the word Michael in here There’s a Michael Cooper, but then, Anthony Michael Hill has Michael in the middle of his first name, so he actually has two first names there Some people have that So, to make sure that we properly filtered through those people, we’ve improved the user filter to make sure we identify the first or last names when there’s multiple names inside of there So, a nice little enhancement for those of us who have multiple names in our name So, also inside the end-user experience, we’ve added custom accessibility text This is for screen readers for Section 508 compliance, the U.S. Government, or Web Content Accessibility Guidelines, WCAG And this is a new parameter on most visual components, called accessibilityText If you’re using the expression format, it will be, accessibilityText is the name of the parameter If you’re using the Interface Designer, right there inside the dropdown pane or the right-hand pane, you’ll see this new option called accessibilityText That accessibilityText allows you to prompt that text, so if they can’t actually visually see the content, like here, Billboard of Florida State University Campus, I can actually then have the screen reader read what’s in that billboard descriptor for me So again, this is available for now most visual components It can add that visual accessibilityText onto any of the visual elements of your entire interface Also, speaking of the billboard, there’s a new version of the billboard layout This is enhances it with a number of overlay configurations, the first of which is the fold configuration So before we had the bar and column and none configuration, allowing you to create a nice overlay on top of a billboard, this gives a either light or dark shading on top of that billboard, so it can give kind of like a nice double effect image where I have content on top of a background image It really has a nice look to it And, of course, to make sure you can position it just the right way, there’s also a new position configuration As you can see, I’m gonna choose that middle configuration, and position the content in the middle alignment So, this gives a nice look and feel, short, middle, full, full overlay on top of that, allows you to use that background image to add more kind of richness to the overall interface while still making maximum use of that space for content, meaningful content, for the end user Also, a nice feature has been added too, line charts, the first of which allows you to handle thousands of data points without scrolling So now you can have really large data points inside of your line charts and be able to have that data density that you want to show lots of detail inside the overall line chart flow Next, in the line charts, you’ll notice that there’s new zoom in capabilities So, using the mouse cursor, I can drag and drop a specific section and it’ll automatically zoom in to that section, I can do it again

and zoom in again to that section just like this And finally, for the x-axis, the bottom axis there, it’ll automatically format the x-axis for the user’s time zone So, making that line chart based on date and time, you’ll automatically adjust the appropriate time zone for which that user is interacting with to make sure it makes sense for the specific user usability Now, of course, for these features, you don’t need to do anything from the design experience These are features that are automatically inherent with the line chart component So, all your line charts will automatically be enhanced with these capabilities of the zoom in and autoformatting capabilities We also updated email styling So, I know this has been a common request for many years we’ve finally gotten to Now, we can allow our customers to modify the email branding configurations, so inside the admin console, if you go to the branding configuration, you’ll see there’s a new area for email branding Inside the email branding, you can modify the color of the email header here, as well as the accent color of that button control And finally, you can also add a optional logo, so it’s gonna be branded with your specific corporation, as far as those email notifications You’ll also see a nice, new format, the email, which is gonna give it a much more consistent look and feel from the email, what they get from the actual Appian user experience, as well And it’s gonna apply for things like task assignments, task escalations, and news notifications when they receive those notifications from the Appian system And then finally, for end-use capabilities, a very popular and demanded one, which is auto-refreshing interfaces Auto-refreshing interfaces allow a designer to create an interface It’s gonna auto-refresh specific variables at a interval time That time can be between 30 seconds and 60 minutes Now, here, you see I’m refreshing quite rapidly, because I used Camtasia to advance the videos, so I didn’t have to wait 30 seconds for the refresh But we’re gonna see that live in a demonstration, as well, in a second So, this is, first, to take advantage of this feature, you need to add those design capabilities into your backing interfaces where appropriate And it is isolated to refresh specific target variables So you don’t have to refresh the entire content I can say these specific data points, I want to set to refresh But to see this in action, let’s first talk about the design time experience in our low-code developer section So, very first thing, to get that auto-refresh, is the introduction of a new local variables declaration The new local variables declaration is gonna be replacing the load and with variables So, if you’re a common sale slinger, you’ve built a lot of interfaces You’re probably very familiar with load and with Load and with is the loading of variables in initial page load and with is the refreshing of those in the page content Now, you no longer need to use load and with, but you also have full backwards compatibility with load and with So, you do not need to erase and try to replace all your load and with statements with local variable statements You can just stick with the ones, load and with, where it makes sense Don’t worry about refactoring that And we recommend for future interfaces or designs, start using the a!localVariables function to define local variables inside of a interface So, a!localVariables works exactly the same way as load and with You define your array of variables, and then the final parameter is the expression And also, there’s some nice features with this, so there’s no more re-querying of data from each component the user interacts with Appian will automatically detect when relevant variables change and update the data automatically Very simple configuration now, rather than having to remember when to use load or with Only local variables created using the a!localVariables function will get this behavior automatically, so you do want to think about that as you convert over That there is a lot of benefits to using local variables instead of load or with I encourage you to think about the proper application of that But, of course, one of the most exciting features of local variables is the auto-refresh control So, in order to use the auto-refresh control, you can see my example function on the right-hand side here, where I define local variables I defined a specific local variable called order info And then, when I define the value, I’m gonna use the refresh variable function The refresh variable function allows me to define the value first, so here I’m going to call a rule that’s gonna do the query And then, the parameters The parameters, as I said, are reverse refresh always When refresh always is true, the value of this local variable will be refreshed after each user interaction and each interval refresh Because the variables continually say refresh, you cannot update its value by saving into it So, it’s an important consideration that it will always kind of refresh the variable The refresh interval configuration is how often the variable gets refreshed in minutes When null, the variable will not be refreshed at all on the interval because the variable is periodically refreshed in updates value by saving into And, of course, valid values are 0.5, so 30 seconds, one, two, three, four, five, 10, 30, or 60

is their intervals that you can define for that specific parameter Next is the refresh on referenced VarChange So, refresh on referenced VarChange, when true, the value of this local variable will be refreshed each time the value of any variable it references, when the variable parameter is updated So, that means, if it detects that there’s something referenced, then it will automatically be updated The refresh local variable, when another variable is not used within the value, changes autorefresh on true, default is true So you can set that to false if you wanna maybe not have something refreshed, even though it’s a dependency And then, finally, refresh on VarChange So, refresh on VarChange refreshes the value of a local variables each time any specific variable changes So the parameter for this one is a array of inputs It’s gonna be, sorry, an array of local variables So, you define when these variables change, I want to refresh this one as well But that might be confusing, so this is what I encourage, you guys You all go in and hop in to Appian 19.2 This is the first thing I want you to do when running with the refresh variables This is what I will call the Hello World example of auto-refresh Let’s go ahead and created a new interface So, SimpleAutoRefresh Hit create So again, this is the best way to kind of dig in to the auto-refresh area of the environments I’m gonna go to expression mode here And go and use that local variables function And now I have that array of local variables undefined So the first one I’m gonna say is gonna be random and now I’m gonna define the refresh variable So, I’m gonna type in the word refresh Refresh variables You can see the first thing I wanna do is to find the value The value, I’m just gonna use the random function, just like this Now after the value, I want to set the, say, refresh interval Refresh interval’s gonna take in that value of 0.5 through 60, so I don’t wanna sit here, wait for 60 minutes to actually refresh So, I’m just gonna do to the 0.5 So there we have one, and now I’m gonna define another one, random two And this one, again, I’m going to use, instead of refresh, so refresh variable Value is also gonna be your random, just like this But for this one, I want to refresh on VarChange, so, again, I’m not gonna refresh on an interval, but I’m gonna refresh this one when another variable changes That other variable’s gonna be the random variable, so when it detects that local random has changed, I want to automatically refresh random two So, there we go I have my simple environment I’m gonna define a text field here And then we’ll have the label, we’ll say, is random one, value is local!random, just like this And to make it simple, I’m just gonna go ahead and copy that, put this in some array brackets, and then we’re gonna call this one random two and make that two, just like this There we go And let’s see, I have my mistake somewhere I need to put a comma in-between There we go So, cleaned up, think you’re nice So, there it is So, this is your Hello World version of auto-refresh Kind of understand the behavior of how these work So we’ll wait here 30 seconds and I’m gonna fill up some time by just talking And you see that 0.53 in random one, 0.48 on random two When that triggers the auto-refresh, we’re gonna see random one auto-refresh, which will then have a cascading effect because of that on VarChange Two random two, there it is 0.65, it cascaded down to then 0.75 So, great starting example of kind of how you wanna think about how refreshing variable’s gonna work and the cascading effect that those can have across other data points The nice thing is, though, I can come in here as well, and say, local, random, three And, random three, I just wanna define as random, just like this And I’ll go ahead and say define this one in similar fashion And let’s do this one, random three, just like this And I need to put a comma again Can’t forget those commas So there you go, random three has run, but now you’re gonna see random one and random two re-evaluate, but random three will remain static And this is a great example of how you can get that really fine grade isolation, so if you wanna do some performance tuning of your specific environments, you can really kind of target which variables you want refreshed and which ones you do not And, of course, by not refreshing certain variables, you can get better performance So there we saw another refresh 0.25, 0.466, but that random three stayed the same And, of course, yes, you can then, you can build bad interfaces using this tool So you always wanna be cognizant

of the performance monitoring capabilities to see the exact rendering performance of your overall environment, identify poorly performing areas to make sure that you’re not auto-refreshing, say lots of queries across the back end system that are gonna take a long time You’ll always have that detailed breakdown of exactly the performance of that specific charge, just like this So, let’s take one more look at a more comprehensive example Part of Appian’s product strategy team had developed a comprehensive refresh of the case management framework So you can download this yourself from the Appian AppMarket or, of course, if you just spin up a Appian free trial, you can also see all the new UIs So, this is the new order dash, where we have, with the Appian Case Management framework And what I did is I went ahead and took this one and said, wouldn’t it be cool if I made this one auto-refresh? Something more realistic of what we’d actually expect So, here, I came and actually removed all the load variables and replaced them with local variables and then added on the targeted ones, like this order info Say I don’t want to refresh industry filter, but order info, yes, I wanna refresh that That’s gonna call this other query rule That query rule’s gonna return all my information And, of course, the refresh interval, I set to every half second So, if I go ahead and kick off a bunch more, so let’s go ahead to my Tempo environment on another tab here I’ll go into my actions We can see how this is gonna behave in reality I’ll generate some random orders Again, this is all just part of the sample application, which is the Appian Case Manager framework It kind of demonstrates a lot of the features of the Appian product That kicked off 10 more orders, so I should then see those orders represented here Gonna refresh it every half second inside the environment So Let’s see here, it’s gonna refresh So while that’s going, just to answer a few other questions, like one of the things I had to debug here was I had that local variables defined in order info, but I actually had some load variables and with variables maybe nested inside of that So I had to get in there and actually refresh or change configurations of some sub-elements as well So, if I go back inside of here, you can see actually how that just ticked up one, so I had one new order, and it went up by 987 But, here, you can see I also had to replace inside my expression my load variables with So typically, you do want to make sure if I’m using local variables and there’s cascading, kind of, or nested load variables, you probably do wanna switch those out also to local variables as well, ’cause the loads won’t necessarily take advantage of the refresh capabilities that are part of the local variable declaration So, really look forward again, feel free to play, take, check it out Start with that random example I encourage you as, to kind of understand the relationships between variables And then, of course, dig in to some of your existing interfaces and see how you can add refresh capabilities to the URL interface It’s really a nice interactive tool as well So, let’s jump back into the PowerPoint Next, in application management, we can quickly clear patch contents from the main application now So, instead of having to open up each individual patch, you have a nice, little trashcan icon right there Simply click on that It’ll give me a confirmation window to clear out all the patch contents in one action A nice, little productivity feature for app management And also, for downloading inspection results, when I go through and import or export, I have the inspection and now I have a quick link to actually see the inspection results right there while I’m inside that inspection window So, a nice, easy access to the full log Now, back inside Interface Designer, we’ve also added easier rich text editing inside the Interface Designer This is not to be confused with rich text editing for end users This is the design time experience for building rich text If you’ve done it before, you might have been familiar with those nested kind of styling functions I had to apply Now, you don’t need to have all those nested styling functions This automatically builds it for you in a rich text designer So, I can highlight text, I can make it bold, change the size, highlight a specific text here, change the color, just like this Without ever having to break into the expression language Now if I switch to expression language, you’ll see that this actually built that whole expression language for me, but this masks it in a nice intuitive rich text design time experience In addition, you saw already in that rich designer a new color picker So, the new color picker is available in areas like the rich text designer, the app designer, and admin console configuration for branding, as well the sites branding configuration This is just gonna be a new color picker Instead of using the operating system default color picker, it gives you a more consistent color picker regardless of the browser And, of course, has all the color controls that you’d expect before The new very fine ring color control, or just input a hexadecimal color code to get at a very exact color that you’re looking for We also can monitor real-time record performance So, in 19.1, Appian introduced a new monitoring capability

to monitor proc activity and proc model metrics In 19.2, we’ve expanded this to also monitor record response times This applies to both list and views So if you have a customer that’s complaining that a record list view’s taking a long amount of time, click on that monitoring window, that monitoring tab, you’ll see both list views and record views broken down here As I click on individual renderings of it, I get a detailed performance of exactly why it’s taking so long So, yes, you can still design bad interfaces, but we’re gonna give you very granule detail of why that’s not performing to the user’s expectations Not only that is Appian’s record response time monitoring is also gonna take advantage of the DevOps infrastructure So, while you’re inside the development environment, I can actually do a compare or see the performance in my production or test environment, as well So I can say, well, I’m in development, I wanna see the performance of my production users and get a breakdown of exactly where the bottlenecks are occurring inside my UI designs, so I can build better UIs for my end-users In addition, we also, taking advantage of the DevOps infrastructure capabilities, to compare application objects across environments So, inside of here, when I choose to, say, compare apps, I can use this to build patches that can pair two environments together This is gonna really facilitate kind of the streamlining of the patch creation Understanding what maybe even multiple developers are working on as well So, in the first step here, as this goes through, I select the environment I can have multiple dev environments or dev test prob environments set up It’s gonna give me a comparison between the two environments I can then review the patch, inspect the patch to build it, and then export the patches like this Now going back, let’s go ahead and kick this off again in my little recorded video I can select the target environment right here Now, when I compare objects inside of here, it’s gonna give me a comparison of this application, but importantly, I can also do a side-by-side change, so I can actually see side-by-side, in this case, a record view of what it looks like on this environment versus the other environment So you get that granule comparison of the individual objects between environments before I actually move that to a patch So, I can very, make sure I target the right environments in that patch I can also do the missing precedence to understand what’s missing in the possible import of that patch on the target system And then, finally, export that patch just like this So really streamlining the overall patch process I can also compare versions of more objects So, not only we added connected systems and process reports in comparing versions, and this applies to both the version compare on a single environment as well as the cross app compare apps that I just showed But as well, we also enhanced the process model comparison to show a visual processed diagram So now I can see in my compare versions my latest published version 1.0, I can see visually right there, exactly what these cross models look like and how they’re different between the two design paradigms So, great feature, again, to get more detail of exactly what’s changing and who changed what inside the overall development experience Next, we have a series of kind of enhancements on the zero-code Query Editor So, if you saw the 19.1 release, we introduced a brand new Query Editor tool, which was aligned to have the query capabilities directly inside of the Expression Builder as well as the Interface Designer Now, this Query Editor has been enhanced with a number of core features, the first of which is query aggregations So now I can do groupings I can say, well, I wanna group by specific user, a date, a month, just like this You get very granule groupings as well to aggregate to maybe feed that to a pie chart or bar chart as I see fit In addition to aggregations, we also like to easily query into nested field selections So, here I have maybe the shipping address, shipping to city, which is a nested CDT, and very quickly, I can get into that CDT to query that additional information And finally as well, I can easily open up the Query Editor from any existing query object So, here, I had a 18.3, 18.3 query, I can do Control + Click or Command + Click on a Mac and easily open it up and it’ll open up the query editing tool right inside the query design tool So you can go back and edit all your existing queries in the visual format as well Let’s take a look at those, though, in action Going, say, go to my examples And first, let’s create a new query So, we’re gonna say, QueryThis If I can spell the word this correctly There we go So, here’s my blank expression editor It has a reminder the Query Editor is right there You also have access to that via the Command option V or Control + Alt + V on a Windows computer

Go ahead and select that Query Editor It’s gonna prompt me for the specific data store entity constant I would need to select from, so I’m gonna choose my order data store entity Again, this is part of the sample application in the CMF Hit continue It’s gonna launch now the visual Query Editor, so again, you really have full parity between the expression based Query Editor and the visual one And the reason for that is, at any time, you could break into expressions So, I can use rule inputs or logic any time I want to easily reference, say, dynamic values inside of here But I can go back to the basic just like this as well So, I’m gonna sort my orders by, say, the order date I want to add some filters just like this if I so choose In the queries events, see this is 19.1, there’s lots of great features such as, if I choose order date, I can very easily say, get a date range, and it’s gonna prompt me for very common date ranges, like it says, I wanna orders for the past nine months So, I don’t need to know how to write that expression It’s gonna actually build that expression for me So, really nice ways of filtering all that data Down below, I gonna just go ahead and remove all my individual elements and let’s first, say, group the data So, I’m gonna apply a group data, just like this And I’m gonna group that based on, let’s say, the order date, makes sense So I’m gonna see order dates and right now, it’s grouping that by order date, but if I go ahead and say, add another grouping, just like this, you see, as I add additional order dates, I can add additional groupings There it is, at begin Year, month ordered, individual order date Let’s go ahead and remove this You know what I like is just the year and the month would be a logical grouping for me And what I want to get is the total So I can go ahead and add total, just like this And that’s gonna apply to sum Now of course, if I want to modify that, I can go ahead and modify that sum, average, min, max, counts, but if I just go ahead and add more totals, I’m just adding another total like this It’s gonna automatically iterate through those, so if I wanna get the sum, average, min, and max orders, just like this, I just keep hitting the total button It’ll automatically iterate through those elements Hit test query And there we go I have all my orders for in April Unfortunately here And of course, the total sum here was $239,000, and that’s my average as well But let’s go ahead and, maybe, let’s change group by month, group by year, or I can do other types of group by’s as well Makes sense, so let’s go ahead and check out another query here Let’s go ahead and hit remove all I’ll remove grouping Just like this Instead of that grouping, I just want to see, maybe, all my orders Just like this And we’ll get the order number I wanna get the total But more importantly, I also wanna get the customer information so down below, that was in a nested CVT, so down here, I can drill into the nested CDT, grab the customer name, I can grab, maybe, also, say, their main contact or email, the contact name And then, down below, I can also say, I wanna get the shipping address, which is a nested CDT inside of that CDT, so you can have all those levels of nesting right there as well as the state for which I want this shipped Hit test query, just like this And there I have it So, I have my order number, the total for each order, and exactly which customer and the main contact for those and which state those orders are shipping to Hit generate query And there it is I have my entire query done And so, all those configuration’s done in a simple, visual way So a really great tool I’m gonna encourage you to jump right into this one as well It’s one of the main features of 19.2 But there’s a great complement to this as well Of course, the Query Editor is also, as I mentioned before, inside the Interface Designer So, this makes it really intuitive to access in Interface Designer as well as to associate with local variables Now, on top of that, we’ve also integrated the Query Editor to the Grid Designer It’s a brand new Zero-Code Grid Design capability So, in this, I have intuitive zero-code experience for building those complex read-only grids inside the environment With just a few clicks, you can drag a grid from the pallette, add data using the Query Editor, and watch as Appian configures the paging, sorting, automatically generates all the formatted columns for your data, all super-intuitive and easy without having to write any code or get into the expression logic whatsoever But, let’s not trust it Let’s actually see it, and build a grid So, let’s go ahead and build an interface, just like this Say, GridThis H key is sticking a little bit And so here we have a basic grid The first thing I’m gonna do is show some of these local variable decoration, access to the Query Editor, so I’m gonna go ahead and define that local variables function again Local1query, just like this And then I’m gonna define my expression, just like that, so it makes sense But over here, I have my, in my design mode, I have my local variables,

So I can see right there, I have a easy way of now navigating to my local variables, but right there, as I hover over, I can say, well, yeah, that local variable, I’d like to populate that from a query So just like this, I can say, go ahead and get that order Data store entity again Access that data source Hit continue Open up the query designer Hit generate query And just like that, boom, I’ve populated that local variable with a query, just like this So very easy to kind of use the design mode now to actually define the contents of a local variable with a query, just like this Let’s go ahead and wipe that out, go back to design mode, and now let’s just use the grid mode instead So down below, again, as a reminder, there’s two grids in Appian One is a editable grid, which is really a grid layout of laying out components themselves in a grid format The other is the read-only grid, and this applies only to the read-only grid, so I’m gonna drag and drop that read-only grid right here Now I have the baseline grid As you can see, for the grid design experience, I have a really intuitive flow here, so I’m gonna first, prompt me for the data It will auto do all the columns for me I don’t need to touch that at all Then I can figure paging, sorting, layout, styling, selection, all the other configurations that treat that grid just the way I want Let’s go ahead and create that query just as we saw before I wanna get that order query, just like we saw Order data store entity Hit continue Now, from here, I want to, again, format this by, say, order date For this, I want to define those parameters as I had before, like I want the order number, I want the total amount of the order, just like this Down below, I wanna get that customer information, so I wanna get the, the account owner will be great, so who’s the exact sales rep on that order? I need, of course, to get the name of the customer That’s important And then I’d love to also get the logo of the customer, so right here, there’s a logo ID And that looks good, so let’s go ahead and hit test query to see if that looks like what I want And there we go, so I have all my order numbers, totals, customer account owner, name of the customer, and their logo as well So, hit generate query and boom, done, grid is built So, I could just accept this as is but, of course, the styling doesn’t look too great You know, I could add some links inside of here I could style those account owners And you can see everything’s been nicely formatted for me, so it took away those dot notations I can see customer account owner, customer name, using all the names of the fields themselves to give those column header labels Let’s go ahead and style this up a little bit more Like that customer account owner, instead of seeing the user IDs, I’d love to maybe see their pictures Let’s go to the display options, I have all my different options for displaying it Just choose user image, and it’s done There’s all my user images now for the individual account owners I can hover over them as well to actually see the names, so there’s Maria Lopez It actually added the hover text as well inside of there Now, same thing with the logos You know, document IDs aren’t very useful for seeing the customer logo ID So, let’s go ahead and modify that column I’ll go back up to my read-only grid and go to my customer logo Go to my display options and here’s a little design paradigm or design trick to remember When I click on document image, just to make sure that we’re not going to blow up the grid by selecting, maybe, a enveloped document image, we’re gonna insert a safe image inside of there, so there’s always a extra step when you insert document images I need to go into that logic here I can either go in expression view or the designer view And here, we’re gonna insert that function, which is this example document And just to make sure that we don’t destroy the grid, that would give you an error To fix that behavior, of course, what I wanna do is grab that customer logo ID, give that a two-document function, and then insert that customer logo ID, just like this Hit okay And there we are There’s all my logos nicely styled And, of course, if we wanna modify this a little bit more, like wouldn’t it be great if I had the total amount? Be like a nice dollar with rich text I can go inside of here, of course I can break into this expression logic at any time I can go inside of here and say, well, it would be great if I just render this as dollar Hit okay, just like that And there’s my dollar capabilities It’s dinged the notation, just like this, with the commas now And, of course, if I go to my display options, I can also go in to say, well, it’d be great if I, maybe, added some styled text here So for the styled text, I wanna maybe make this a little bit richer configuration for the specific styling So, I go to my styled text inside of here and what’s the link style I wanna use? So maybe I wanna use for my color, maybe I wanna use the accent color I wanna make this medium sized, and I wanna make this strong, just like this So now bring forward that order amount just like this So really easy now to modify all the styling in my grid

And just like that, I have a really great grid Of course, I go through the same pattern and links here, but you get the idea Everything now is much more intuitive to do, and in kind of a no-code, zero-code design experience for grid design and query design Go ahead and save that I like this one And go back to the PowerPoint So, in addition to our interface design capabilities, we’ve also added new report-centric templates So this is really inspiration for your reporting interfaces When you go into the Interface Designer, you’re gonna notice a patterns tab, right here Under the patterns tab, you’ll see three new report patterns A year over year report, a trend over time report, and a drilldown report Again, those are there just to kind of give you a design time inspiration The idea is that we’re gonna give you a nice layout that makes sense for this type of report and you can go there and populate your own specific data fields that make sense for your use cases rather than use those default reports So, create an interface design from a data type’s also been improved This is a feature we introduced in a previous version of Appian We’ve improved this so that now designers may choose between editable and read-only interfaces So when you choose to create a interface from a data type, you can now choose to say, I want to make it editable, read-only, or both Now, we’ll add a little rule input flag that can toggle between editable or not editable So, nice way enhancement for rapidly creating interfaces using data type discovery Going on to integrations for a while, we now have a business object support added to Blue Prism So, this, it gives you more flexible session management with Blue Prism in our zero-code integration objects So, most importantly, we’ve heard you, that Blue Prism business objects are more flexible for session management and their process and that using them always allows for close adherence of Blue Prism for best practices So we enhanced the Blue Prism connective system to give you that functionality Now you can discover and configure available business objects, enter data inputs, and this allows you to quickly and easily call them from Appian using no-code design experience In addition, we’ve also added a skill for Blue Prism RPA This allows you to easily connect to Appian from Blue Prism and download Blue Prism’s from Digital Exchange So, you can see, as I drag and drop this Blue Prism skill into a design experience, you can see I dropped out of all the actions available to me to easily connect to the Appian system and send information back to Appian Now, if you do not have Blue Prism, and you’re interested in adding Robotic Proc Operation to your overall Appian platform, we do offer Blue Prism bots as a la carte licensing on top of Appian, so the Blue Prism integration connectors come free with the Appian 19.2 release, but, of course, the bots themselves are offered, Appian directly sells and supports these bots, or you can use our integration connectors to existing Blue Prism bots that you might have purchased from another source In addition to integration designer, we also now like to generate sample expressions in integrations This allows you to quickly create the right expression syntax to push data to other environments So in this example, I’m trying to connect to Blue Prism Now, since I know the data model that this bot is expecting, I can toggle over there to, say, define all in a single expression, hit generate expression, and it’s gonna generate that sample expression to format the data properly to communicate with this robot in Blue Prism or other target environments And speaking of other target environments, we also added a Zero-Code Salesforce integration This is the new great way to integrate to Salesforce rather than using the Salesforce functions So, this allows you to integrate to Salesforce with Zero-Code, and I’m really impressed with what our engineering team did here is that they made it possible to integrate to Salesforce without ever really referring to the Salesforce documentation Now this gives you CRUD on any object, create, read, update, delete, even those custom objects as well as the ability to send custom SOQL or SOSL if you so choose and handle OAuthentication of per-user credentials or service account credentials Let’s jump over and see some of these Salesforce integrations I like it a lot, so here’s my Salesforce connective system As expected, I’m gonna give it all my OAuth credential information, in this example I have a username password Oauth configuration Go ahead and test that configuration, just like this Test is successful It’ll go ahead and use that in a new integration Now, as I choose to use a new integration, I can define then the specific operation I wanna perform, such as a SOQL query I wanna create a new object inside of it, the system Describe an object Let’s go ahead and choose create object CreateSFDCObject, just like this And I’m gonna see if it’s inside my Appian World 19 demo environment There you go So, this is gonna launch the Integration Designer And again, you’re never gonna see me have to refer to the Salesforce API documentation There’s just hundreds and hundreds of documented APIs at Salesforce This really simplifies the entire experience I just choose which CRUD object I wanna do Either CRUD it or search it I then, I can choose which object I want

So I can see that there’s some custom objects here as well as standard objects in Salesforce So you have a full listing of all your objects in that target Salesforce environment so I’m gonna choose a contact, just like this And I’m gonna create a new contact, so it’s gonna automatically discover the data model for that contact information, so you can see it’s querying Salesforce, my progress bar, right here And it’s just the same box environment, so it’s not the fastest And, of course, I have the option to define as a single expression Here’s that generate expression format, if I so choose So, here’s that generate example expression that I talked about before, so it’s gonna format that, just like this, but I’m gonna specify each input instead And this is the really cool feature is if you’re familiar with Salesforce, you can also not only just customize the data model, but you can also customize all the dropdown values For example, I wanna have my name in here And here’s the salutations So you can customize this stuff in Salesforce Same thing with, like, my street address One 123 Main Street, just like this And again, country codes, Åland Islands All these dropdowns, it automatically introspects your Salesforce environment to understand, like for example, lead source This is that area that it’s highly customized for each Salesforce implementation We will do those cascading APIs to get all the information, get all the description of all the objects back to make sure I have all these specific campaigns available to me So here, I’ll have a PPC Bing campaign I’ll go ahead and test this request and see if it creates an object And, there it goes One second See my progress bar going all the way over See if Salesforce, again, sandbox environments are never as fast as the live production Salesforce environment But it’s just waiting for that query to come back from Salesforce And this is how you also know it’s a live demo Not a pre-recorded, there it is Finally, all right So, here’s my contact ID that I just created That’s a return value It says, okay, I created that contact Here’s the ID value for it So if I wanna do something like a SOQL search, now, again, you don’t need to know how to write SOQL We made this super simple as well Of course, if you know how to write SOQL, you could provide your own SOQL query, just like that, if you’re into coding SOQL But you don’t have to do that You can go ahead and say, I wanna select, maybe, a contact I’m gonna select an account I want to see if the ID equals, say, this value, which is the value I just got back And go ahead and test that request to see if that’s gonna work properly And there it is Mr. Malcolm Ross, 123 Main Street, in the Åland Islands was created successfully inside of there And again, it’s gonna make it really easy to query things on those specific elements Like, if I wanna query by last name, first name, salutation, I can very easily select the individual operator, give those specific values, just like this, to make that a much more intuitive experience for querying the Salesforce environment as well So, I really hope, if you’re integrating to Salesforce, this is really the new best way to integrate to Salesforce, dare I say, from a API level integration, I think it’s a better integration that even most Salesforce have with themselves as far as API level integration between the systems So, going on with integration theme, though, we also added another other key enhancements, the first of which is pulling documents into Appian using Binary and Base64 So Appian will now automatically detect if the response is gonna return a Binary or Base64 document, even if it’s nested inside of a JSON element And then aligned to save the document as a Appian document object So, a lot of you have been waiting for this So, again, I can response the body parsing, so I’ll convert Binary to Appian document, just like this I can say, give the document a name Each of these fields is also expressionable and then define the folder, of course you’ll wanna save it inside of, so here I’m gonna define that inside of my, it’d be 19 folder but, again, everything’s expressionable inside of here So again, now you can have the full sending documents and receiving documents all from the Integration Designer and new, cool design patterns, like initiating downloads from an interface, automatically download content using the interface interactions rather than a process model You can now also configure integration timeout, so every single integration design object now also has the timeout control If you leave it blank, the integration will run indefinitely until a response is returned It will protect the whole system, though, from slow integrations if you define the timeout So, I encourage you, if you’re using a lot of integrations, set that timeout threshold to what you think is a reasonable value to automatically terminate that integration so it doesn’t remain open waiting for a response back from the target system It also, we’ve also added fewer syntax errors

while editing expressions by now allowing an extra comma after the last parameter of a function is ignored This is one of those ones that I was super excited about because this is what I’m, something I’m guilty of very commonly Like, when I remove in it a function, or you just get in the habit all the time of when you define a parameter, always adding a comma at the end, even if it’s the last parameter Now, if it is the last parameter and you add that column, a comma, rather, we will not automatically generate error We’ll just ignore those commas And this is gonna apply in the expression editor, Interface Designer, anywhere we define expressions, we’re gonna ignore those trailing commas to not generate those errors inside the expression logic Now, some other exciting features to announce is with our Appian AI capabilities As you know, last year Appian introduced not only a native system analysis capability, but also package integrations to AWS and Google AI services Those services, though, required our customers to contract with Google or AWS separately in order to take advantage of those Now, we’re gonna be bundling Google AI services with the Appian platform, so that you have automatic market leading AI capabilities with the Appian out of the box The first of which is Google Translate It allows you to automatically translate, I believe, over 100 different languages between two language formats In the Free Standard Tier that you get with the Appian AI, we’re gonna allow for a million characters per month So this is double what you get from Google for free out of the box by using Google Translate with the Appian instead In addition, we’re also gonna give you Google Natural Language processing This is gonna be 10,000 calls per month So, Google Natural Language Processing, there’s a wide variety of entity analysis, of text strings, sentiment analysis, great features to add to customer communications Again, 10,000 calls per month, which is 10 times what you get from Google in their free tier as well And then, Google Vision OCR, which is gonna allow for up to 10,000 records per month Now a record’s not to be confused with an Appian record A record in Google Vision OCR is a transaction with up to 1,000 characters So, for example, if I have a PDF document I wanna do OCR on, I can apply that, let’s say the PDF document has 2,000 characters in it, that’s gonna be two records in accounting towards your 10,000 records per month Again, that is double what you get from Google out of the box with Google Vision OCR So, if you would like to take advantage of the free AI services, it does require you to sign an additional contract to get the API key So what’s gonna happen is when you sign that additional contract, reach out to [email protected], or reach out to your account executive to guide you through this, once you get that API key, you’ll get access to all these services from the connected systems in the Appian system or from the AppMarket where appropriate And, of course, it’s gonna give you that Free Standard Tier It’s gonna cap and stop transacting after you hit these limits Now, if you need to go beyond these standard tiers, we’re also introducing Enterprise Tiers, both at level one and level two Google Translate provides 10 million characters per month or 20 million characters per month on level one or level two Natural Language Processing gives 100,000 to six, and 600,000 records per month for level one, level two And then, of course, Vision OCR provides 300,000 and 600,000 calls per month, again, at records per month as well on the Vision OCR as well Now, to talk a little bit more about this, the Google Vision OCR does require also Google Storage, which you’ll also get API keys for when you sign up for the free AI service as well as the Enterprise Tier The Google Storage capabilities is only used as a temporary store before Google Vision processes it So documents are loaded inside Google storage and then cleared once it’s been processed by Google Vision OCR Now, obviously, this means that when you’re starting to take advantage of Google AI services, what about the security? I’m gonna be integrating these other AI services, passing maybe customer communications or documents through these other AI services, how can I trust those sources? So, Appian’s also available to help you set up that properly and encourage you to look at cloud.google.com security/compliance, you’ll find that Google has leading security credentials ISO 27001 SOC 2, SOC 3, FedRAMP two, HIPAA, we did a very detailed security audit and review of their compliance before suggesting this to our customers We’re confident with it but it does require, of course, the data to be flowing into these AI services and out of that to get that information back So, again, which is also why we have an additional contract on top of this So, if you’d like to take advantage of these as well, some of these, such as Google Storage, Translate, Document OCR, are available for download from the Appian App Market When you sign that additional contract, we will issue you the API keys directly, not Google That gives you that Free Tier, which is two times

and 10 times what you get from Google’s free tier And finally, in regards to integration, inbound API key authentication for web APIs So, this allows you to create API keys to webAPI authentication API can be used for basic auth, bearer token, or custom HP headers So to access this, you go to the admin console in Appian You’ll see under the authentication area a new APIs key configuration You choose to create a new API key based on a service account Now, for those of you who know, service account, wait, that’s a new thing, as well Yes, in Appian 19.2, you officially have service account definitions When I define service accounts and use API key authentication, I do no longer need to, I no longer need to worry about expiring passwords, ’cause the API key authentication will bypass the password expiration or PCI password management features of those other service accounts Which takes me to the administrator features of Appian And the first of which is service accounts So, how do I create service accounts? So, inside the object’s view of the Appian system, if you look for the group structure called service accounts, you can add members inside of here to be members of the service accounts environment Only service accounts members can be used for API key authentication webAPIs So, it’s an important thing to know is that if I wanna use API key authentication, you first create a service account, I register the service account inside the group called service accounts, and then you can go to the API key and look for those users It’ll filter just the users of that specific group inside the environment And again, API key authentication, I like to bypass the password management features that you might have configured Also, in the admin area, we also are happy to introduce Appian’s own ISO 27001 certification for handling information security HITRUST CSF Certified, which is a leading healthcare certification of handling client data And also DoD Impact Level 4 secure certification Now, the last one is in partnership with a company called Smartronix Smartronix is the security cleared hoster for the Department of Defense content If you’d like to take advantage of this, you would be technically hosting via Smartronix, but it’s all compliant with the Appian Manage Cloud service So, it works just like a regular Appian Manage Cloud service, but it’s part of the Smartronix hosted U.S. DoD Impact Level 4 hosting arrangement You also have the additional option to host in either Azure or AWS, which is actually the first Appian Cloud, Appian Manage Cloud service that offers that additional Azure service, which is really happy to get that out to market Also, in the admin area, Data Server is now available for high availability So, Data Server now supports a high availability configuration Now, as a reminder, Data Server is currently used for tracking of design objects added to application patches So this simply means that when I have a high availability configuration, that we will replicate patch information across all systems So in the case of a full outage, you’ll see that those patches are still persistent So, a relatively minor feature, but we have big plans for Appian Data Server in future releases Appian Data Server similarly has additional read scalings Appian Data Server now runs two real-time data stores that service queries Reads the data server processed in parallel and enable queries to be serviced at a higher throughput Again, this only applies now to application patches but stay tuned, later feature, later releases, we have big plans for what we’re gonna use for Appian Data Server Also, we’re happy to announce a new Pre-release Testing program This is to allow Appian to securely clone your system to run automated platform level tests Appian runs these platform tests and automated unit tests only This does not apply to functional testing and is a opt-in program So what this means is that essentially, that we allow you to opt in to allow Appian to clone your system When we clone your system, we securely clone it Have zero access to the data inside the environment But we can run platform level tests on the system to make sure that as we do weekly updates, the Appian development cycles, before we get to a GA release, we can validate our implementation against your production level system This is just gonna give you greater confidence that when we get to our GA releases, like the 19.3 and 19.4 release, that your specific application platform has been tested on these latest release capabilities This does not include your functional tests It does not test the functional behavior of your application It tests the platform only Nor do you get the test results, so this is really for Appian engineering to make sure that we have a higher quality platform with each release So you’re volunteering your own clones of your systems This could be a dev test or production environment, that it’s gonna give you the guarantee that, hey, we have tested against your specific environment

for greater confidence of a better quality platform when it hits GA It does not replace functional testing of your application This is a opt-in You can express interest at [email protected] In addition, we also have certificate-based authentication for VPN tunnels So, if you’re using Appian Cloud, we now like to have certificate-based authentication for additional level encryption instead of pre-shared keys So this is a greater level of managing encryption between the two systems of Appian Cloud and your on-premise environments And also, we recognize that many of our customers have been adopting AWS to host other applications on your environment So it doesn’t make sense that when we have Appian hosting AWS as well as your own systems hosting AWS that we, maybe, have a VPN tunnel back to your fire, through your firewalls, then back to the same AWS environment Now we can securely connect to your AWS virtual private clouds to Appian Cloud This is a highly available scalable connection that never leaves the AWS data center, so network traffic stays within AWS It means it’s gonna be super fast and a bunch better way to connect your infrastructure in AWS with the Appian Cloud Finally, let’s talk about the developer features And first, I’d like to really thank all the developers who participated in the integration of SDK Beta during 18.4 And, of course, released a number of integration SDK components over the past quarter And what I’d like to call out is the 16 new component UI plugins made available inside the Appian AppMarket Highlighting also some of the winners like the Appcino won on report charting from Google Charts So these 16 new UI components allow you to do detailed mapping using Google Maps or OSM Maps Report charting using Power BI or Google Charts Real-time communications using Temasys or Twilio Events engines using PubNub or Event Pusher Media players for real-time media players of, like, advance audio playback as well as advance video playback and real-time speech to text And timer controls as well In addition, we’ve also introduced 20 new connected system integration plugins These were introduced as map geolocation capabilities, event engines, robotic proc automation for automation anywhere in UiPath, AI services, ticket management integration to Jira, address validation via USPS, data warehouse capabilities, and cloud content storage I’d like to really also thank the contributors, specifically Appcino, one of our partners, Vuram, Vision Point Systems A number of those key partners were critical in making sure that we had this rich library of integration SDK components available to you So, enough talking about it, though Let’s actually see some of these I was really excited about a lot of these when I saw them come out and what I did is I started using them right away So, in building some demo examples, so for example, one of the ones, I’m gonna go to some interfaces here One of the ones I felt was very cool is the advance video player by Vision Point System So, this one is really great for, if I need to build a learning management system So, a learning management system, of course, allows me to control the video playback, so the default video player really was not adequate Since I have the default video player, here I’m gonna just play this video behind the scenes I get really granule controls on how I want that video interaction to occur with the user So, for example, you can see I don’t have a progress bar right now I can’t fast-forward or stop I can turn on the progress bar, just like this, and configure that and now I have a progress bar, allowing me to, say, fast-forward through the video or go backwards through the video, just like this And if you’re not familiar with this video, this is the Open Source Big Buck Bunny video, which is kind of the default test video that everyone uses for testing video embedding So, anyways, a nice feature of learning management system, though, is I don’t want people to be able to skip forward or fast-forward, so I can go ahead and say, well, I’m gonna allow them to turn the, have the progress bar to see how far they are, but I’m gonna disable fast-forward, just like this So now if I choose to fast-forward, no, I can’t just, I have to watch all the content Make sure I actually watch it all As well, I can also disable reverse if I so choose So, they can see how far they are, but they can’t go backwards and forwards inside the video Now, as well, if the user chooses to stop the video, resume the video, you see, every single time I pause and start the video, it’s gonna record the on play on pause times So this is a great feature to know the video interaction How often they stepped away from the video, paused it, which areas people are commonly pausing on It’s a great, again, platform for building a LMS type solution on Appian Another great example is, I think, from Appcino on the speech to text I thought this one was really cool It implements a web speech to text function, so all you have to do is embed that speech text component Again, you can see all these in Interface Designer on your custom components See that advance video player, here I have pretty much all of them loaded, and here I have that web speech to text one

I dragged right there Now all I do is to have the user click that button and this is gonna automatically record the speech time to text So you can see when I started it, it recorded the exact time of when I started the audio capture It’s gonna perform a real-time speech every few seconds This is gonna update that first text box, and when I hit end, it’s gonna end the capture and record all the content I just said into a speech to text diagram Let’s go ahead and hit stop, and there it is There’s everything I just said, you can see it’s maybe my slur here, X box, you know, right there, not necessarily accurate, but it’s looking pretty good as far as real-time speech to text So, go ahead and I’ll look at a few other examples here, like Google Maps This is actually a contribution from the Appian product strategy team under my group And this, of course, gives you nice, detailed mapping controls If I wanna see Reston, Virginia, where I am right now, I can just say, make that my center point Zoom in at level eight, all the way in Maybe, let’s go all the way down to 10, Reston, Virginia, and I wanna enable street view, so I’m gonna enable that So you can control exactly which features of Google Maps you wanna use and then very easily overlay that, and, hey, it looks right in the middle of Reston Town Center There we are And that’s about, just about two blocks or so where I’m at right now So, very cool feature and, of course, it’s gonna give me feedback exactly the location I’m at right now, so I can see nice interactivity with the overall sale interface So again, there’s probably too many to talk about Probably the last one is the one that was the Appian AppMarket award winner, which was the Google Charts from Appcino I have this one example of a Gantt chart view And, of course, if I select individual Gantt chart elements, I can have it interact with the overall UI, opting into individual interfaces So, a great way to show rich kind of detailed information of what’s going on inside of a Gantt chart of a project plan like this, like a home construction project And, of course, Appcino didn’t just do a Gantt chart, but they did a whole variety of other custom components from Google Charts such as bubble charts, calendar, candlestick, combo, Gantt, Sankey, timeline, tree map, and word tree, so, and, of course, pie chart, as well So, great contribution from them, and, of course, I’d like to thank everyone again for contributing to this And finally, of course, I wanna talk about the connected systems Probably the two to highlight the most here is the connected systems from UiPath, as well as from Automation Anywhere And these were done from my product strategy team, and I think we really did a great quality job on these Specifically I’ll look at that UiPath integration here Here we have that new UiPath integration I have the specific port and the URL I wanna connect to I can go ahead and test that connection and make sure my UiPath server is up Hit use new integration I wanna maybe run a box, like start a job StartjobUI UIP Like this And see that in my Appian World examples And again, the goal for every connected system is no code, no referring to the API documentation, everything the user needs to do to connect should be very intuitive So, here, I just choose the operation I wanna perform Next, we automatically discover all the UiPath environments So, I’ll choose this next one, say, app dev As I choose the app dev, it’ll automatically discover all the UiPath processes on that environment So, here’s a Appian UiPath at dev one And then I can see all the input parameters required for this like account name, time to send, and the strategy So, specific, I want the specific strategy inside of here Again, this is some of the nomenclature you need to, UiPath, and then which robot I actually want to execute inside of there But again, I didn’t need to refer to the documentation of UiPath at all It’s very intuitively laid out to flow naturally, to easily connect to that UiPath environment and go ahead and trigger that robot just like this And there it goes So, again, check out the Appian AppMarket It’s the best way to explore all those contributions Next, we have a few updates in intelligent contact center The first of which is our Twilio component This is an enhanced voice call routing with Twilio Specifically, the Twilio component now includes a transfer to a named agent capabilities So, as I’m handling a voice telephony call, I can say, I need to transfer this call to a specific named agent Go ahead and type in that person’s name and directly route it to them Now, before I route it, I also have a consult transfer capability, so I can choose that consult capability, I can talk to that agent I’m about to route to before I actually transfer that customer call to that new agent And then, finally, the click to answer The click to answer is gonna make sure that the agents can, say, acknowledge when they’re ready to take that call rather than auto, auto sending the call directly to the agent, starting to call automatically Now, more excitingly, with the Twilio integration, is that Appian now bundles Twilio with the platform in a single contract This is similar to our Blue Prism relationship Appian now can provide a single contract for Appian

and Twilio telephony and messaging services This bundling, of course, provides, Appian provides first level support for all the Twilio integrations as well as provide U.S. and Canada calling and messaging with a separate contracting for international rates So, if you’re interested in integrating telephony call services and messaging services in your applications and the intelligent contact center, I encourage you to reach out to your Appian account executive We can add Twilio calling capabilities in a single contract with Appian to your overall Appian portfolio And, of course, we also are enhancing our Genesys PureEngage voice control component So, basically, what we added to the Genesys component that we introduced in 19.1, is to add Genesys voice transfers So now I can, just like Twilio, transfer to another agent while I’m handling that individual call And, finally, a few acknowledgments for the community and application marketplace Specifically, first, the Robotic Workforce Management Solution We knew we wouldn’t have enough time to talk about this in detail There’s a lot of interest in this I’ll simply say that if you are using Blue Prism, you really should look at the Robotic Workforce Manager Solution It is an ideal solution for getting a greater control of your robots, understanding the deployment life cycle of those robots, managing a process for the deployment life cycle, managing, having a control center to do detailed scheduling, control of those robots, measuring the effectiveness and the value those robots are generating, as well as human in the loop acception processing So, when the robot fails, easily kick that into a human interaction to handle that acception and keep those processes flowing So this is gonna give you metrics such as the total resources, sessions, total work times, completed times, detailed analytics of how effectively you’re using your robotic workforce investments with Blue Prism and, of course, Appian, as well So, we will probably have another session on this in the summer timeframe, giving you more details so it feels like this specific solution as well But we introduced this just like two weeks ago at Appian World But I’d also like to acknowledge the Appian AppMarket award winners that won awards at Appian World most recently, specifically, the first of which is, again, the Appcino CRM on Appian So, this is a complete deployment-ready CRM solution, providing marketing, field service, customer service 360, configure price quotes and sales operation management Really is quite a comprehensive solution and we applaud Appcino for delivering a very complete CRM approach on the Appian platform So, Appcino CRM customer service 360 module is a part of Appcino’s CRM suite Helps organization provide first class customer experience in quickly interacting with cases for those customer interactions Also, another suite winner was KPMG’s privacy apps These are really two comprehensive solutions This provides a complete view of GDPR compliance with confidence Now, there’s five modules that’s part of this There’s a Data Subject Rights module, Privacy Impact Assessment, Article 30 Inventory, Personal Data Breach, and Privacy Helpdesk Again, you can read more about all these on the Appian Application Marketplace by filtering by KPMG as the author The Data Subject Rights one, specifically, app is part of Appian’s KPMG Privacy Apps Suite that gives you the ability to meet privacy requirements in a way that’s automated, integrated, scalable, and robust The application covers the processing of Data Subject Rights within the GDPR regulation from initial capture to redaction and closure Now, for the individual accelerator wins, the Home Health Manager at Bits in Glass, really stood out This provides a real-time schedule management in home health visit capabilities for healthcare, at home healthcare, services Allows you to match the right nurse to the right patient at the right time So, BIG or Bits in Glass’s Home Health Manager provides real-time schedule management, as I mentioned before, with home health visit capabilities The application’s easily configurable and can be expanded to accommodate patient and care team scheduling along with any home health services provided to your patients Provides transparency and traceability necessary for supporting high quality care for home health patients And then, finally, I’d like to also acknowledge the Vuram contribution for credit card dispute management system Handles the entire dispute life cycle management for credit card disputes from audit trail for each activity on any transaction, assignment of any transaction to a compliance team for special investigation, and generate of a settlement report Dispute and charge back processing is a labor-intensive and costly process for financial services institutions With this application, a faster card dispute, card resolution can be achieved, which can lead to increased profitability on the card fulfilling all banks It also helps to minimize human error and mismanagement and therefore reduce the customer attrition rates So, thank you all for those Appian AppMarket submissions Encourage your customers, if you have specific needs for these areas, check out those solutions on the Appian AppMarket I’d like to thank, again, everyone for attending this Appian 19.2 product webinar Again, if you have any additional questions,

feel free to post those in community.appian.com and, of course, look forward to also seeing everyone March 8th through March 11th at the Diplomat Beach Resort, Fort Lauderdale, Florida As a reminder as well, if you’d like to share your story and best practice of using the Appian platform, we do on appianworld.com have that option for call to speakers right now to go ahead and register your name as opportunity to present at Appian World in 2020 Thanks, everyone, I look forward to seeing you at the 19.3 product webinar