Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello everyone and welcome to the March edition of Techspert Talks. I’m Troy Raney and I’ll be your host for today's session. Today's presentation is Debugging Qlik Application Automation with Emile Koslowski. Emile, why don't you tell us a little bit about yourself?
So, I’m Emile. I come on board at Qlik during the Blender acquisition back in 2020. I work in the Application Automation Customer First team.
Great. Thank you, and today we're going to start with an introduction of what Qlik Application Automation is; we're going to take a look at some connectors and templates; and getting some details about some of those; and then we're going to dive into debugging some more complicated automations, and the details there in. Emile, for those of us who are kind of new to this feature, could you please explain what Qlik Application Automation is?
So, Qlik Application Automation is this low code editor that allows you to build integrations with Qlik Sense and various other online platforms. There's a lot of possibilities here.
Okay, and this is a feature of Qlik Sense SaaS, right? Qlik Cloud?
Yeah, indeed yeah. It's only available for Enterprise SaaS versions.
If someone is new to this, where are some resources where they could find some basics in how to get started?
Yeah, if you just go to the Qlik web page, go to Products and Data Services, and then the last one: Application Automation; you'll find a lot of information about the product itself and a few useful links to get you started.
And is this a free feature?
Well, it's included in the Enterprise SaaS license so, everyone with the license has access to automations for free until 5000 runs a month.
5 000 automation runs?
Yeah indeed.
Okay great. What animations do you want to take a look at today?
The GitHub automations are interesting and app management.
All right so, how should we get started?
If you want to build an automation, you just go to your Qlik Sense tenant and SaaS.
Okay.
You go here to Add New from the drop down. You pick new automation and yet this prompts you with the template picker and its automations that are pre-configured yeah I see a lot of options there especially different ways to sort them you got different categories you can choose from a few categories or you can choose by connector these templates are a good place to start if you're new okay you'll get an idea of what's possible so, how do we find the GitHub template we could just search we could scroll through we can even filter by GitHub and then it will only show templates that use the GitHub connector okay we have to start with the template that will commit apps to GitHub for every template we have this detail overview and then for every template there's also, a community article that shows you more detail how the template is built gives you a thorough explanation of every block yeah that's really great getting all the details and having screen grabs and explaining the different steps that's excellent okay so, the purpose of this template is to put an app on GitHub so, that we can start collaborating and creating some version control for creation of apps right yeah it needs and what is GitHub it's an online code collaboration tool we will be using it to allow collaboration for Qlik Sense apps okay so, let's dive in how do we get started using this template well only one button clicking this button use template it will install a copy of the automation that's behind the template inside your tenant so, now this is immediately installed in my tenant and as you can see I have here the full automation I have all the blocks are already there everything is configured and except of course for my tenant specific information okay all right so, let me know just quickly configure this template oh I’ll enter all my tenant specific settings I’ll show you what it does and then afterwards I’ll dive into the details okay cool so, yeah we'll see it run and then we can uh dive in no template is configured it takes only a few seconds yeah that was quick so, I here have my Qlik sends tenant open again and this consumer sales app so, that's the app we're sending to GitHub for collaboration and version control yeah as you see here in this template it's executed whenever an app is published let's just trigger the automation by publishing this app okay so, that automation takes basically all the architecture and barebones that app and puts it on GitHub yeah it needs and that's triggered by the publishing of the app yeah we'll trigger the automation the app is published to the managed space and if you take a look here on GitHub in our versioning branch three new files were created okay so, like the automation created all those files from your app yeah yeah neat the first one is the load script yeah I think everyone knows what that is and then it also, stored a json file we have these headers so, it's kind of comments telling what the content actually is okay exactly so, here we have a few sheets then here we have an overview of all the objects on those sheets okay it's just kind of like a receipt of what's in the app exactly and then finally you have the QVF file which is the binary export file of the app without data just the structure of the app so, the concept here is put a copy of it up on GitHub people can collaborate suggest improvements make comments and you can see the difference between versions as you go indeed I’ll create a new version of my app here this is our source app okay let's remove this button we're done editing and we want to publish a new version of this changed app and in the background that triggered the automation you already have set up right indeed the trigger the automation again you see our three files again and the timestamps the json file and the QVF file those two were changed right so, if you now go to the history of that file okay you can see here all different versions of that file we see here what was changed okay so, it highlights in red things are removed and green things that were added yeah and go back to the automation yeah could you walk us through the automation a bit more and help us understand how that was configured this first block the first block of any automation is always the start block and the start block has a few run modes that's basically the trigger that will kick kick-start the automation indeed you can do it manually by always clicking the green run button you can put it on a schedule when it's in triggered remote you can do it through API calls okay and then we have web book automations and that allows you to almost natively subscribe to an event in a connector then we can select an event we want to listen to in this case it's a published event we added a filter option which allows you to register to publish events only in one space so, basically the connector Qlik services is listening for activities and events happening in your tenants and you're setting it to listen to a specific space and any apps published in that space will trigger this automation yeah indeed okay is there a way to filter it even closer to listen for a specific app in that space that's not possible through the web hook we want to listen to one specific app as you say so, we had to build checking inside of the automation okay to make sure that the automation only continues to run on the right app that was published that's what we do in here in this get app information block we specify it in the comments that's also, a tip if you're working with templates please read all the comments okay also, with tip just right Qlik all the blocks you have edit comments and then you can yourself specify these comments ah and it makes it way easier to collaborate on automations and to understand what's happening that's cool you have to specify the source app right yeah indeed there are a few options in this case you can either the lookup which will list first 500 apps in my tenant easy way to get app ids because it's looking for the specific app ID string yeah indeed this field here requires the app ID string what happens if someone just enters the name of the app there yeah it won't work it will show an error and show you we're immediately taken to the errors page okay we received an error okay so, automation sent an API call to Qlik Cloud services with an app name but it was listening for an app ID number so, returned a 404 error yeah of course this API expects an app ID and not an app name so, it's right it makes sense that didn't find anything okay sometimes you get some errors here and it might be confusing from which block it came. Maybe you have you have these multiple get app blocks yeah what I like to do is I go to the chronological view or the per block view it's maybe easier to see which blockchain has drawn the error now back to the editor oh it highlights the block in red yeah immediate shows you where the error was always use the lookup if you can it's annoying here we have two consumer sales apps and because one got published all right so, it's picking up the source and the published app yeah yeah so, what you can do then is you just go to the app you want to use inside URL you get the app ID from here okay go back to the automation so, we can identify that as a source app would you recommend changing the name of source apps like something like source yeah yeah out there it's a good practice you could just say development app in the source and then you rename it when you publish it okay that's a good practice actually and I see we've got a variable in the next block variables you can just configure them as you like here we have a settings variable which is of type object and yeah as an object has key values so, that's something you can do with this variable you can set key values of course in the template it's already done okay so, this is where you can store your GitHub connection settings for all the other GitHub blocks so, you only need to enter those settings in one location yeah you only have to enter it once and if you want to make changes you only have to make them in one place okay and then here in the settings block we have one final key app ID for backup is this setting referring to the source app and published app from the previous block yeah indeed and this allows you to select which of those two you actually want to listen to the alteration app ID or the published app ID which of those two you want to use okay and then here the condition block will compare these two condition block is just like an if statement encoding okay so, this one is check checking if the correct app is published indeed if the correct app is published we will give an output so, in this case it's saying that a certain app was published it's starting the export to GitHub and in the other case you're aborting the automation okay and then the stop block let's start the animation there indeed so, these output blocks really useful when debugging you can just go to the output of an automation and here under outputs there we see that this automation does not have an output but we have output blocks so, why is that if we take a look at the chronological overview we didn't get to it indeed we didn't get to it whenever an automation has a block with an error it will stop at that block that makes sense right so, let me show you a block that does have an output okay so, this is a similar automation that did finish I see there this is exactly the same automation okay and here we see the output block it says and app was published and the app export is started so, in that run it did what we were expecting it to do indeed can you quickly walk us through the rest of this automation what those blocks do after automation knows that the right app that was published it will start to export to GitHub and so, this block it will export the app to a base64 encoded file and then if you take a look at the GitHub block which will create the file or update the file I see it's picking up that information from previous blocks yeah yeah indeed okay then load script but load script is a textual value so, we have to encode it before we can send it to GitHub to do this encoding first step would be to map the output of the get load script block so, it picks up the data from the previous block yeah indeed you want to map outputs from certain blocks as inputs to other blocks Qlik the field either blocks where you want to use it as an input this gives you a drop down of all the previous blocks so, all the blocks are executed one by one okay and I want to use the output of the get load script block immediately here I see a history very cool most blocks will also, have an example output but I see the get low script block does not have one you can also, scroll to previous rooms also, what you do here is you configure the mapping to the output of the block okay if I’m scrolling through this it will still be the same mapping so, it's not that it's taking a previous run it's always taking the output of this block to take it when the automation is executed yeah that makes sense all right so, we need to encode this because it's a string Qlik here at formula this menu appears a few programming functions the one we're using is base64 encode all right and just like this we can apply a formula okay and then finally we get the bare bones of our app and we store this all in one variable it's called app.json first we get all the sheets of our app and we add those to the json file the objects on the sheets the dimensions and so, on the measures the variables the fields and then finally we also, store that as a json file and get it cool so, it basically is building the json file with all the lists of everything in the app and then copying that json file to the GitHub location yeah okay we saw this all work fairly smoothly is this saved automatically by the way all the changes made well yes now if I would refresh this page so, I made a few changes I didn't save it I got prompted so, you want to keep all those unsaved changes make sure you check that box yeah that's great so, what should you do if things aren't working as expected a great thing to start with here is a test payload which means if I execute this automation manually and then it will always use this test payload it looks like a real payload but it's not okay it's just an example of some tenants not mine you can just execute it manually but if I do that it will take the information from the test payload and as you can see here yeah the app is not exported ah because our automation is looking for a specific app and when you just manually trigger it instead of using the web hook it'll pick up the test payload data instead yeah indeed okay that's interesting the trick here is you can go to the history when debugging this history overview it's very valuable if you're mapping these blocks together it's the first place to take a look if something goes wrong that's great that you can scroll through and see all the history right here in the editor maybe it was working today everything went wrong and then I might scroll through this history what was the payload yesterday what's the payload today okay the latest one I’m afraid yeah you see it's still from the example value so, we don't want to use this one but then here we have an actual result so, we can then copy that to do that we need access to the real json okay Qlik Google view mode all right and this will show you the actual json that's and then we can copy it ctrl c go back to inputs of this block and here in test payloads we selected all control v and now we have an actual test payload if you now execute the automation it is picked up okay so, that replaced the test payload with an actual historical payload and now it works yeah yeah indeed what are some common problems that people might run into when setting one of these things up a common mistake is that you don't configure it properly or you forget to configure a few blocks okay so, let me simulate that all right yeah so, you're just now quickly kind of breaking it or removing some settings yeah yeah so, let's say no I’ve installed this template for the first time the first step is to try to save it okay because then you're prompted immediately invalid blocks indeed all the invalid blocks that don't have the right configuration okay so, that actually went through the whole automation and picked out the things that have some issues that you need to resolve yeah yeah indeed so, we see the app ID is missing okay so, let's go ahead and fix that let's start here with GitHub I get prompted by GitHub asking me to give consent to Qlik Application Automation to use my GitHub okay I sign in Qlik continue and then you redirect it to automations and the connection is linked I know everything is all right okay then we have one more mistake in our automation app ID do you recommend always using the do lookup yeah yeah indeed always use it the only reason not to use it is if you have more than 500 apps okay and then you could copy it from the app itself okay let's maybe dive a bit more in manual error handling and let me show you what I actually mean by manual edit handling again we've entered the wrong ID if we run it the block will throw an error even though a block throws an error you still want to continue the automation okay I’m a little surprised right now why that block isn't popping up in red even though it threw an error yeah why is that I have no idea I think it's not popping up in red because from a configuration point of view the block is configured correctly it has some data in the field right yeah yeah and if I make this empty then it pops up in red again okay but as you're saying uh if you want to try and test things out and have it skip a block what would you do then I would disable the block so, you can just right Qlik it then from the menu that shows you select disable block okay and if you then would execute the automation let's keep it as adjust these blocks for now and if you execute the automation and take a look at the blocks that are executed you see that that get app information block should be between these two it's not there because it's disabled okay so, I just hopped over that yeah indeed but then you should be aware that the output of this block will also, not be available in the automation right let's say you're building bigger automations say this is a GitHub repo I’ve shared with my teams I actually don't want to bug them when I’m building this automation so, just disable these blocks it's now disabled all GitHub blocks and if I now execute the automation nothing will be written to GitHub system all the other calls are executed but I want to know what the result is of app.json but yeah I don't want to send it to GitHub because I don't want to book my colleagues okay I could search for the output block and then give myself this overview of the app.json block right before I send it to GitHub okay so, you would have a result that you could check before you actually publish it yeah indeed yeah publicly to your colleagues yeah yeah right now run it by the way if the automation is running you don't have an overview in the per block but you do have one in a chronological view well that's interesting the max runtime is one hour. all right so, if you're using automations and you want to see a specific block the chronological overview it's really nice to see the order in which blocks are executed really hard to find a specific block in here yeah you could search but you could also, just use the block overview there's only one record for every block okay and that would be why the chronological is kind of hard to see because there's 371 executions of the yeah json yeah also, the order of this table that's another random order we want to take a look at the output block it was output three and then here we have uh here we see the json before it sends to GitHub okay so, that's the end result you're trying to create of course automations is not an editor so, if you want to do a deeper dive just copy it and use whatever code editor you want to use okay all right and then of course we've used an output block so, we also, have it in here let's leave these blocks disabled for now and I want to show you the manual error handling again we made a mistake in this block and we want to now verify see whether this block hasn't added or not can use a condition block it's like an if statement we can access the state of the of the automation like an overview of the errors that's something you have to type manually so, you have kind of have to know it it's also, on the help documentation of automations okay but it's like this dollar.state.blog name dot error block name of course that's the get app information so, this won't work it needs to be something else but I’ve already typed it the mapping is already here so, if you want to edit the mapping you can here, click this toggle formula parsing okay so, that brings it back to its text form yeah indeed yeah I can easily make changes to this no I got app information in the UI it looks like it's all gaps but behind the scenes it's also, possible that there are some underscores you don't see or some hidden characters so, when you're manually working with block names I really advise you to first make a mapping to that block like this you use output of get app information and then of course if you haven't then you need to toggle the formula parsing and then here you'll see the actual block name okay and then copy that thing so, by mapping you can see the actual character specific spelling of block names and once you have that true spelling you can copy and use that yeah like this you reduce the risk of errors and then I can now say if this error if it's not empty meaning we have an error then I want to do something and of course for now I only want to see it and then later we can we can make this smarter okay and then I want also, this adder so, I can just copy this this mapping like this let's try to run this okay so, it's checking the app if it runs into an error it should give you an output of course I think here Troy you already know what went wrong here yeah the automation only executes until the block that throws an error so, if it stops before that condition how can you check for errors inside the block you go to the settings of the block okay and then here you can define the on error setting and you have a few options it's always by default set to stop the automation if an error occurs okay but you could also, set it to warning or ignore if you set it to warning the error is still thrown but the automation just continues and if you set it to ignore the error isn't even shown warning yeah that's what we need right now we still want the error okay we also, need to execute the next box so, if we execute this now it should run but with a warning it's finished indeed with a warning so, you can see that there are warnings we have outputted as well now the output view it will always try to make things prettier and it's very useful if you're working with lists because you'll have this nice overview of columns of what's inside the list okay but for objects I personally I don't really like it that then it's like this so, you can go to again to the per block overview for me this is easier to see what's going on again we get the actual arrow that was thrown so, we can now use this error to maybe yeah we want to alert someone on our team that there's something wrong with the automation and for that we could use the Slack connector for example this is a message block on that connector okay so, you could set it up to alert somebody with a Slack message if there's an error indeed yeah no the use case you don't want to do it when the get app information fails and yeah maybe a battery let's maybe move to a better use case for this manual handling that I think is also, very valid use case for example if you want to do if you're working with dos chains and it happens sometimes it's that the reloads that it failed let's also, detach this part of the automation and I’ll focus on this reload okay so, it happens a lot that reloads fail so, in this case you can alert someone your team to take a look at the load script and maybe also, include a bit information of the load script let's say use our app when you're doing a reload in this scenario we want to wait for the reload to complete okay the thing way to do reload block is it won't easily throw an error because if a reload fails yeah this block doesn't show an error but it will just output the result of the reload so, we can get in here so, we know with no longer listen to this error but we will just say here if the output from the reload if the status
does not equal succeeded and then I want to send a message to my team in Slack. okay so, now it's doing a course a look up to Slack but it can't connect indeed because I still have to I have to create a connection to Slack. okay here again let's allow it all right and now I should be able to do the lookup here let's not send it to ‘General’ here I made one for me and then in here you can include here the output of the reloads so, if it fails I probably want to include the log that's great you can also, use line breaks and maybe the App ID and just like that you can also, do some sort of error handling for reloads and now immediately my team would be alerted if something goes wrong with the reload that's very cool. Emile, what other tips do you have for troubleshooting automations? One more thing I want to share is limiting the output of certain blocks especially list blocks if you're working with other systems I think yeah with Google sheets that's for sure prime suspect for this okay for example this block I won't go into too much detail but it would return a list of records from a certain sheet when I’m building I don't want to process the full list of a thousand records every time so, I can just go to the settings of the block and here I can specify the maximum number of items to retrieve okay so, that could limit it and you know help speed things up indeed yeah so, you can have a lot more iterations when you're building the automations yeah pick a low number and it will be much faster for you okay and how do you know if a block is actually the kind of block that's pulling a list you can see that here by this this structure you see below the block we call this the loop structure okay and if you see that on a block it will return a list and of course how does the structure work every block you drag inside the structure will be executed for every list that's inside yeah that's returned in this case by Google sheets okay for example here I have a list of apps and I want to get some information from an app and send them to Slack and this will be executed for every item in the list that's a very good tip on how to limit the execution of that so, it doesn't do it for ginormous lists especially when you're developing the automation yeah you can see it will save you a lot of time now I was wondering about these uh test runs every time you hover over a block it says test run yeah how would you recommend using those or how do those work if you hover over test run you get the explanation so, this test run it will execute the automation until the block you've clicked it for so, after that block the automation will stop okay so, if I know do for example a test run here for Do Reload, I got a pop-up but I was still able to do the test run ah and then in here I get the result of my test run I see it in the history and it's marked with ‘Test Run’ and that's easy if you just want to quickly do a run without executing the full automation. One important thing about test runs you should know is they are still executing the blocks so, if I would here have a Delete App block and you might think oh it's only a test run so, it won't be executed for real that's not true the Delete App block will be executed if you do a test run and your app will be deleted okay so, even though it says test it is a live execution yeah indeed it's a live execution and it also, counts towards your 5 000 executions limits with the standard Qlik Sense Enterprise license you're allowed to have 5 000 automation runs per month yep but that is expandable and it's not a hard limit but if you go over that you might get a call from a salesman asking if you want to expand yeah okay that's good to know what are some other features you can play with when you're developing automations I think one thing we didn't go over yet is these two buttons here download workspace upload workspace okay today automations they are only my personal space okay if you want to collaborate on automations if we are working on this we will improve this but today the only way to do that is to download a certain workspace this will give you a json export of the automation ah and then how would someone from your team use that exported automation he can start with a blank automation or just any automation that's the start with a blank one and then they can choose upload workspace and then they can select the file you've shared with them import the automation to their accounts very cool so, just basically exports a copy and then someone else can take that and uh apply it on their tenant important to note here and now I’m doing it in my own account in my own tenants so, these connections are still linked but the connections are not included in the export if I would send it to you Troy you wouldn't be able to access my Slack account that's all scoped to my personal Qlik accounts okay so, it wouldn't bring over those connection details indeed that's good to know as a part of collaboration is there any way you can have some notes for the people you're sharing this with or some way to explain exactly what you're trying to do here yeah indeed you can use the comments on every block to give a bit of context to what that block is actually doing if you're collaborating give every block a comment I can see that being very valuable to explain exactly why the block is there and what it's doing that's a good tip for condition blocks makes even more sense if you look at this there's no way to know yeah what the condition is what it's doing even the question mark yeah makes that make that makes that even clearer so, we're checking if it's not succeeded the reload status so, reloads failed question mark I know it immediately makes sense it's after the reload block everyone knows what the block does it's amazing how a simple extra step it clarifies it for everyone in the future including yourself yeah yeah if something goes wrong just take a look at the description of the block to really make sure that you've configured it in the right way for some blocks you'll find that there are articles that can guide you to really understand how to use the block or to see if there's any useful information there yeah that's a really valuable resource it's good to be aware of that all right well now it's time for Q&A. Please submit your questions through the Q&A panel on the left side of your On24 console. Emile we got a lot of questions coming in, should we just start from the top? yep sure all right will Qlik Application Automation be only for SaaS version yeah for now a Qlik Application Automation is only available in the SaaS editions of Qlik Sense Enterprise okay next question how can one see the contents of variables from the automation interface so, you have two types of variables here you have variables inside an automation and you have variables and in Qlik Sense right so, if you want to access a variable inside an automation that's not actually possible when you're when you're building the automation so, if you're working with variables yeah the so, let's read the variable and if I want to set the value of this variable
this variable will only get its value set when this block is executed and then further along the automation it will be available but there's no way to yet to now know which of course here I can see the value was set to test value but sometimes you get these values from other blocks for example they get app information block if I would map it like this and I would set it to the output of my app information for example the name of the app that this will only resolve when the automation is executed so, okay there's no way of knowing the value of this variable when I’m building it has to have complete running at least once yeah yeah it has to run at least once and then you will know so, if I now execute this yeah I will know um what the value was here in the in the output of the run here I can see what the value was during this run but yeah maybe of course this will always return this app but if I change it
what I have here in the variable in the history is still from the previous rum so, it would have to execute again to yeah it only has a value during execution okay and if you want to work with Qlik Sense variables then you can use the List Variables block to take a look at your Qlik Sense variables but again those are totally unrelated to the variables inside automations all right I didn't know that List Variables block was available so, that's interesting next question if someone can't find automations can you show us again how to get started all right so, you go just go to your tenant go to add new automation and then you're prompted with a template picker you can choose any automation or any template from here or start with a blank one if you don't have this feature available yeah I think it's best to contact your Qlik Sense administrator or your sales rep and ask them for more information about why it's not visible okay the next question is what kind of limitations are on automation a lot because yeah it's not you can't do everything with it of course I think the main limitation you should you should know is that per tenant you can only execute 5000 automations every month and or that's at least the free limits included in every Enterprise SaaS license and an automation can only run for one hour at a time so, this is also, a very interesting page about all the limitations in Qlik Application Automation if you think you're hitting the limits take a look here and you'll know for sure great yeah and we'll definitely include the link to this so, people can find it easily kind of a follow-up question that's similar how can I see how many runs are already used of the monthly automation limit for now it's not possible to see for yourself how many automations you've used uh of course we think that's very important to know so, we're working on making this information available to everyone uh but for now you just yeah ask your sales rep inside Qlik to give you the number and they'll they should be able to help you what is the pricing and licensing model for Qlik Application Automation so, if you have a Qlik Sense Enterprise SaaS license you have the free tier and then there are of course there are more tiers available and it's best to contact your account manager for more details yeah there's definitely a lot of ways to increase that free limit but yeah it's always best to contact your account manager next question is it possible to build an automation to perform a Qlik server health no no we don't have access to or we don't have any connections and automations to Qlik server okay what is needed to create automation with some ERP system well yeah um what's needed is that we have blocks for such ERP system you should know when you're working in automations and let me show you inside the editor we only have connectors for a set amount of platforms we didn't add every platform every SaaS platform or every API in the world so, here on the left you have the overview of all the blocks you can choose from and here are my connectors I connect to it for now and I also, have an overview here in your other connectors of systems platforms connectors I didn't connect with yet but in here you'll find the overview of all the available connectors of course inside the editor and we also, have a help page on that and on the community where you can find an overview of all the connectors we have and links to so, if you're here so, I’m now in the Qlik Application Automation forum I got here by going to forums data integration Qlik Application Automation then here under connectors I can choose to explore all connectors and this will take me to an overview of all the connectors that are in Qlik Application Automation today wow that's a great resource I wasn't aware of that let's say I want to work with GitLab then this will take me to an overview of all the articles we have now for GitLab and yeah it's always a getting started article at least and that's great place to start with new connectors great and we are adding new connectors every month so, we're continuing this will continuously change if you're missing something feel free to reach out to us uh with the ask for a new connector and we'll be very happy to investigate that okay great uh next question can this be used to execute task reload chaining in SaaS yeah yeah definitely that's actually one of the first use cases we try to cover with automations and if you go to the template picker you'll see that we actually have a few automations around this and around reloads so, yeah they begin very basically so, it reloads apps in parallel reload apps as a toss chain and then even about notifying your team depending on how reloads go and I think this one might be an interesting one so, let's take a look and here you see you see this multiple how you can do multiple reloads as a task chain and of course you can add much more as many as you like one thing to take in account is I know reloads for bigger apps they can take a long time and the automation runtime is limited to one hour that we have designed a workaround for this okay we've also, written an article for it and here the idea is that you actually build a few automations and they use Google sheets to keep track of apps you've already reloaded um so, it's more of a system solution with multiple automations and then you have one that will start the first reloads and then update those values in a Google sheets file and then you have another automation that's scheduled this one the second one it will run on a schedule every x minutes and it will see if any reloads have finished and then trigger new reloads if necessary but this is more a more advanced use case but please take a look I think it's very useful when it comes to task chaining. Absolutely that sounds like a very smart solution to that problem okay um next question uh will automations be able to move apps from a managed space to a shared space well I’m not the biggest expert some expert on what's possible in in Qlik Sense when it comes to apps we do have a blog to move apps but when it comes to these questions is this possible to do through automations I want to do this in Qlik Sense can I also do it through Automations? The first question you should ask is it possible to do it in the Qlik Sense UI, and if it's not possible to do it in the UI, you most likely won't be able to do it in Automations either. Except if it's like a use case that we've really covered with automations but doing things around app management rename naming apps publishing apps moving apps if you can’t do it in the UI you can't do it in automations so, in here I don't see any way to move this back to a to shared space so, yeah that's not I think it's not possible to do through automations that's a great rule of thumb yeah these management questions just try it in the UI and if it's where it works there it should also, work in the automation okay next question can I limit the number of runs for a specific user no no today that's not possible yeah I think that's something we're looking in as well to give more granularity when it comes to building and managing automations add more features around that for more of the Enterprise use case and that I think this is one of the things we will include for sure to have user level management okay the next few questions are all about limits how is the access to automations via the in app button limited oh that's a that's a tough one inside Qlik Sense on the sheet you can add a button like this and then in that button under actions you can choose to trigger an automation and execute automation then you can search for the automation you can choose to send the selections or not you save it and if I now Qlik this button I will execute the automation everyone who clicks this button will be able to execute the automation so, yeah that's something to be considered before you enabled that kind of power yeah that kind of brings up another question how can you see the ongoing automations happening in your tenants yeah you can you can go to the management console and then you can go to automations. And here you have a full overview of all the automations in your tenants all right do I next question is do I see all automations or only my personal ones for now automations are only on a personal level so, you'll only be able to see your personal automations but you did share that option of how to export an automation and share it with other people so, that's a good tip are there security settings I can set up that's kind of a general question I’m not quite sure how to address that well within the automation itself not really and I’m not sure if that's necessary because for now it's all scoped to your personal account the automation for example the connections you create those are only linked to your account so, you can't you can't share those and of course if you take data from a certain system and you send it to somewhere else it's just similar as if you would do it manually the responsibility for keeping that data safe lies with you of course if I here export this app and I store it manually on an insecure FTP server or a public GitHub repo yeah then that's on me and similar if you do it through automations if you store it on a public get the repo yeah you you've done that so, that's something you need to keep in mind difference is that it's just way easier to do with automations than it is to do manually of course well we've got time for one last question are there limits to how many blocks there can be in a single automation that's a good question yes there is a limit but I have no idea what the limit is because it's not a limit in in terms of blocks but it's more limited in terms of size of the automation here inside the automation you can add a lot of blocks and you can just keep adding them and the limitation is that the UI will become slower if you have very big automations or if you choose to store big strings inside these variables because it has to get loaded every time so, if I want to store a harry potter novel in here the UI will be very slow to load okay but I’ve seen yeah I’ve seen very big automations that you just have to keep scrolling and those work fine so, you can build pretty big automations and you also, mentioned the run time of an hour as a limit yeah super long it may take a while to run yeah that's all the time we have thank you very much for sharing with us today thanks for joining everyone if it's the first time you see Automations if you have the Enterprise SaaS license please just go open up a few templates play around with it see how it feels if you have other questions feel free to reach out to us we are very active on the community on the forum I showed ask any questions you have there or reach out to your sales manager if you have any other questions thank you everyone we hope you enjoyed this session thanks to Emile for presenting we appreciate getting experts like Emile to share with us here is our legal disclaimer and thank you once again have a great rest of your day.