<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Automating Dev → UAT App Deployment in Qlik Cloud Using Qlik Application Automation in Management &amp; Governance</title>
    <link>https://community.qlik.com/t5/Management-Governance/Automating-Dev-UAT-App-Deployment-in-Qlik-Cloud-Using-Qlik/m-p/2547715#M32755</link>
    <description>&lt;P&gt;&lt;STRONG&gt;Overview&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Most Qlik Cloud environments use at least two managed spaces:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Dev&lt;/STRONG&gt; – where developers build and test apps&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;UAT&lt;/STRONG&gt; – where business users validate and approve them&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;Traditionally, promoting an app from Dev to UAT requires several manual steps:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Back up the existing UAT version&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Go to Dev&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Move the updated app to UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Delete the backup after validation&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;To simplify this process, we built a &lt;STRONG&gt;Qlik Application Automation&lt;/STRONG&gt; workflow that performs the entire Dev → UAT deployment automatically — safely, consistently, and without manual intervention.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This article explains the automation flow, block-by-block, so you can implement it in your own environment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Automation Flow Summary&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The automation performs the following steps:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Identify the UAT app to back up&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Create a timestamped backup&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Identify the Dev app to deploy&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Move the Dev app to UAT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Update environment variables (vEnv)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Reload the app in UAT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Delete the backup after successful reload&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Send a confirmation email&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;Below is the detailed explanation of each block.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step-by-Step Block Explanation&lt;/STRONG&gt; &lt;STRONG&gt;1. List Spaces (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all spaces in the tenant. &lt;STRONG&gt;Input:&lt;/STRONG&gt; None &lt;STRONG&gt;Output:&lt;/STRONG&gt; A list of all spaces (Dev, UAT, Shared, etc.)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We later filter this list to find the &lt;STRONG&gt;UAT&lt;/STRONG&gt; space.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;2. Filter List – Find UAT Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select only the UAT managed space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Output from &lt;EM&gt;List Spaces&lt;/EM&gt; &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; name = "UAT" &lt;STRONG&gt;Output:&lt;/STRONG&gt; The UAT space ID&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This ID is required for backup creation and app movement.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;3. List Apps (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all apps inside the UAT space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of apps in UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;4. Filter List – Identify UAT App to Back Up&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the specific UAT app that needs to be backed up. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of UAT apps &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; App name contains the user‑provided string &lt;STRONG&gt;Output:&lt;/STRONG&gt; The UAT app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;5. Create Variable – BackupAppName&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Generate a unique backup name. &lt;STRONG&gt;Input:&lt;/STRONG&gt; User input + timestamp &lt;STRONG&gt;Output:&lt;/STRONG&gt; A string like: SalesDashboard_Backup_20240424_1530&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;6. Copy App (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Create a backup copy of the UAT app. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;App ID from Step 4&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Backup name from Step 5&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Backup app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This ensures rollback is always possible.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;7. List Spaces (again)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve spaces again to locate the &lt;STRONG&gt;Dev&lt;/STRONG&gt; space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; None &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of spaces&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;8. Filter List – Find Dev Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the Dev managed space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of spaces &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; name = "Dev" &lt;STRONG&gt;Output:&lt;/STRONG&gt; Dev space ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;9. List Apps (Dev)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all apps in Dev. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Dev space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of Dev apps&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;10. Filter List – Identify Dev App to Deploy&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the Dev app that needs to be moved to UAT. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of Dev apps &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; App name contains the user‑provided string &lt;STRONG&gt;Output:&lt;/STRONG&gt; Dev app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;11. Move App to Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Move the Dev app into the UAT space. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Dev app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; App now resides in UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This replaces the old UAT version.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;12. Update Variable (vEnv = "UAT")&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Update script variable so the app uses UAT connections. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;App ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Variable name: vEnv&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Value: "UAT" &lt;STRONG&gt;Output:&lt;/STRONG&gt; Updated variable inside the app&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This ensures the reload uses UAT data sources.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;13. Do Reload&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Reload the newly deployed app in UAT. &lt;STRONG&gt;Input:&lt;/STRONG&gt; App ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Reload status (success/failure)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If reload fails, you can extend the automation to restore the backup.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;14. Delete App (Backup)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Remove the backup after successful reload. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Backup app ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Backup removed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This keeps the UAT space clean.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;15. Send Mail&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Notify the team that deployment is complete. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Subject&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Body&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Recipients &lt;STRONG&gt;Output:&lt;/STRONG&gt; Email sent&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;With this automation, Dev → UAT deployment becomes:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Consistent&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Fast&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Error‑free&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Rollback‑safe&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Fully auditable&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This approach eliminates manual steps and ensures that every deployment follows the same controlled process.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 24 Apr 2026 19:52:46 GMT</pubDate>
    <dc:creator>rohitk1609</dc:creator>
    <dc:date>2026-04-24T19:52:46Z</dc:date>
    <item>
      <title>Automating Dev → UAT App Deployment in Qlik Cloud Using Qlik Application Automation</title>
      <link>https://community.qlik.com/t5/Management-Governance/Automating-Dev-UAT-App-Deployment-in-Qlik-Cloud-Using-Qlik/m-p/2547715#M32755</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Overview&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Most Qlik Cloud environments use at least two managed spaces:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Dev&lt;/STRONG&gt; – where developers build and test apps&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;UAT&lt;/STRONG&gt; – where business users validate and approve them&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;Traditionally, promoting an app from Dev to UAT requires several manual steps:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Back up the existing UAT version&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Go to Dev&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Move the updated app to UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Delete the backup after validation&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;To simplify this process, we built a &lt;STRONG&gt;Qlik Application Automation&lt;/STRONG&gt; workflow that performs the entire Dev → UAT deployment automatically — safely, consistently, and without manual intervention.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This article explains the automation flow, block-by-block, so you can implement it in your own environment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Automation Flow Summary&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The automation performs the following steps:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Identify the UAT app to back up&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Create a timestamped backup&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Identify the Dev app to deploy&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Move the Dev app to UAT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Update environment variables (vEnv)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Reload the app in UAT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Delete the backup after successful reload&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Send a confirmation email&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;Below is the detailed explanation of each block.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step-by-Step Block Explanation&lt;/STRONG&gt; &lt;STRONG&gt;1. List Spaces (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all spaces in the tenant. &lt;STRONG&gt;Input:&lt;/STRONG&gt; None &lt;STRONG&gt;Output:&lt;/STRONG&gt; A list of all spaces (Dev, UAT, Shared, etc.)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We later filter this list to find the &lt;STRONG&gt;UAT&lt;/STRONG&gt; space.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;2. Filter List – Find UAT Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select only the UAT managed space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Output from &lt;EM&gt;List Spaces&lt;/EM&gt; &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; name = "UAT" &lt;STRONG&gt;Output:&lt;/STRONG&gt; The UAT space ID&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This ID is required for backup creation and app movement.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;3. List Apps (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all apps inside the UAT space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of apps in UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;4. Filter List – Identify UAT App to Back Up&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the specific UAT app that needs to be backed up. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of UAT apps &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; App name contains the user‑provided string &lt;STRONG&gt;Output:&lt;/STRONG&gt; The UAT app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;5. Create Variable – BackupAppName&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Generate a unique backup name. &lt;STRONG&gt;Input:&lt;/STRONG&gt; User input + timestamp &lt;STRONG&gt;Output:&lt;/STRONG&gt; A string like: SalesDashboard_Backup_20240424_1530&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;6. Copy App (Qlik Cloud Services)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Create a backup copy of the UAT app. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;App ID from Step 4&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Backup name from Step 5&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Backup app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This ensures rollback is always possible.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;7. List Spaces (again)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve spaces again to locate the &lt;STRONG&gt;Dev&lt;/STRONG&gt; space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; None &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of spaces&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;8. Filter List – Find Dev Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the Dev managed space. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of spaces &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; name = "Dev" &lt;STRONG&gt;Output:&lt;/STRONG&gt; Dev space ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;9. List Apps (Dev)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Retrieve all apps in Dev. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Dev space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; List of Dev apps&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;10. Filter List – Identify Dev App to Deploy&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Select the Dev app that needs to be moved to UAT. &lt;STRONG&gt;Input:&lt;/STRONG&gt; List of Dev apps &lt;STRONG&gt;Filter Condition:&lt;/STRONG&gt; App name contains the user‑provided string &lt;STRONG&gt;Output:&lt;/STRONG&gt; Dev app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;11. Move App to Space&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Move the Dev app into the UAT space. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Dev app ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;UAT space ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; App now resides in UAT&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This replaces the old UAT version.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;12. Update Variable (vEnv = "UAT")&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Update script variable so the app uses UAT connections. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;App ID&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Variable name: vEnv&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Value: "UAT" &lt;STRONG&gt;Output:&lt;/STRONG&gt; Updated variable inside the app&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This ensures the reload uses UAT data sources.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;13. Do Reload&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Reload the newly deployed app in UAT. &lt;STRONG&gt;Input:&lt;/STRONG&gt; App ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Reload status (success/failure)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If reload fails, you can extend the automation to restore the backup.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;14. Delete App (Backup)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Remove the backup after successful reload. &lt;STRONG&gt;Input:&lt;/STRONG&gt; Backup app ID &lt;STRONG&gt;Output:&lt;/STRONG&gt; Backup removed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This keeps the UAT space clean.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;15. Send Mail&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Purpose:&lt;/STRONG&gt; Notify the team that deployment is complete. &lt;STRONG&gt;Input:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Subject&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Body&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;Recipients &lt;STRONG&gt;Output:&lt;/STRONG&gt; Email sent&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;With this automation, Dev → UAT deployment becomes:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Consistent&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Fast&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Error‑free&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Rollback‑safe&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Fully auditable&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;This approach eliminates manual steps and ensures that every deployment follows the same controlled process.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2026 19:52:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Automating-Dev-UAT-App-Deployment-in-Qlik-Cloud-Using-Qlik/m-p/2547715#M32755</guid>
      <dc:creator>rohitk1609</dc:creator>
      <dc:date>2026-04-24T19:52:46Z</dc:date>
    </item>
  </channel>
</rss>

