<?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>article Diagnose failed app reloads with AI and notify your team on Slack using Qlik Automate in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Diagnose-failed-app-reloads-with-AI-and-notify-your-team-on/ta-p/2549376</link>
    <description>&lt;P&gt;&lt;SPAN&gt;This article gives an overview of how to &lt;STRONG&gt;&lt;FONT color="#339966"&gt;analyse failed app reloads with OpenAI using Qlik Automate&lt;/FONT&gt;&lt;/STRONG&gt;, which is now available as a template. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This template&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;is triggered when a Qlik Cloud app reload fails. It then analyzes the reload error with OpenAI and sends a Slack message with the app, space, reload details, and AI diagnosis. Session app and data preparation reloads are filtered out to focus on user-created script issues, keeping your alerts relevant and actionable.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This template is a good starting point if you want to:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Automatically detect when an analytics app reload fails&lt;/LI&gt;
&lt;LI&gt;Get an instant AI-powered analysis of the likely root cause&lt;/LI&gt;
&lt;LI&gt;Notify your team in Slack with all the context they need&lt;/LI&gt;
&lt;LI&gt;Keep noise low by filtering out session app and data &lt;SPAN&gt;preparation&lt;/SPAN&gt; reloads&lt;/LI&gt;
&lt;LI&gt;Maintain a clear automation run history through readable run titles&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="full automation.png" style="width: 747px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188720iE4605C0BA592CA66/image-size/large?v=v2&amp;amp;px=999" role="button" title="full automation.png" alt="full automation.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The template is available on the template picker. You can find it by navigating to&amp;nbsp;&lt;STRONG&gt;Add new &lt;/STRONG&gt;-&amp;gt;&lt;STRONG&gt; New automation &lt;/STRONG&gt;-&amp;gt;&lt;STRONG&gt; Search templates,&amp;nbsp;&lt;/STRONG&gt;searching&amp;nbsp;for &lt;EM&gt;Diagnose failed app reloads with AI and notify your team on Slack&lt;/EM&gt;&amp;nbsp;in the search bar, and clicking the&amp;nbsp;&lt;STRONG&gt;Use template&lt;/STRONG&gt;&amp;nbsp;option.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You will find a version of this automation attached to this article: "&lt;EM&gt;Diagnose-failed-app-reloads-with -AI-and-notify-your-team-on-Slack&lt;STRONG&gt;.&lt;/STRONG&gt;json&lt;/EM&gt;".&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Content&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-TOC indent="15" liststyle="none" maxheadinglevel="4"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;What this template does&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When an analytics app reload fails, the automation:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Triggers on the App Reload Finished webhook event, filtered to analytics app reload errors only&lt;/LI&gt;
&lt;LI&gt;Ignores session app reloads&lt;/LI&gt;
&lt;LI&gt;Looks up tenant, user, and space details&lt;/LI&gt;
&lt;LI&gt;Sends the reload error details to OpenAI for analysis&lt;/LI&gt;
&lt;LI&gt;Posts the result to Slack&lt;/LI&gt;
&lt;LI&gt;Updates the run title so the automation run history is easier to scan&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The Slack message includes:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The app name with a direct link to the app&lt;/LI&gt;
&lt;LI&gt;The app reload ID for reference&lt;/LI&gt;
&lt;LI&gt;Space name and space type&lt;/LI&gt;
&lt;LI&gt;The time the reload failed&lt;/LI&gt;
&lt;LI&gt;Reload duration&lt;/LI&gt;
&lt;LI&gt;An Error code or codes&lt;/LI&gt;
&lt;LI&gt;The AI-generated diagnosis and suggested next steps&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="example output.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188461i5934A0812A149503/image-size/large?v=v2&amp;amp;px=999" role="button" title="example output.png" alt="example output.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Before you start&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;Before using this template, make sure you have access to:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Qlik Cloud Tenant with permission to create and run automations&lt;/LI&gt;
&lt;LI&gt;The OpenAI connection configured in your tenant&lt;/LI&gt;
&lt;LI&gt;The Slack connection configured in your tenant&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step-by-step walkthrough&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 1: App Reload Finished (Webhook event)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This is the first block in the automation. It acts as the listener that starts the entire workflow.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The block runs in webhook mode and listens for the App Reload Finished webhook event from the Qlik Cloud Services connector. T&lt;SPAN&gt;he template uses an App ID guard in the event filter to prevent unnecessary webhook triggers:&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;(App Ids eq "Specify_Your_App_Id_Here")&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Event Filter:&amp;nbsp;&lt;/STRONG&gt;Pre-set to &lt;STRONG&gt;Reload status&lt;/STRONG&gt; (&lt;STRONG&gt;A&lt;/STRONG&gt;) as&lt;EM&gt;&amp;nbsp;Failed (error)&lt;/EM&gt;&amp;nbsp;and &lt;STRONG&gt;Usage&lt;/STRONG&gt; (&lt;STRONG&gt;B&lt;/STRONG&gt;) as&amp;nbsp;&lt;EM&gt;Analytics&lt;/EM&gt;. Replace &lt;EM&gt;Specify_Your_App_Id_Here&lt;/EM&gt;&amp;nbsp;in the &lt;STRONG&gt;App Ids &lt;/STRONG&gt;(&lt;STRONG&gt;C&lt;/STRONG&gt;) parameter with your actual app Id during development.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app reload finished inputs.png" style="width: 557px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188463i579DD285F57E63E5/image-size/large?v=v2&amp;amp;px=999" role="button" title="app reload finished inputs.png" alt="app reload finished inputs.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;When moving to production, either:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Keep the App Ids filter to monitor only selected critical app(s)&lt;/LI&gt;
&lt;LI&gt;Keep the Space Ids filter to monitor apps that reside in specific space(s)&lt;/LI&gt;
&lt;LI&gt;Remove the App Ids and Space Ids clause to monitor all analytics apps in scope&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 2: Condition: skip session apps&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block provides a second layer of filtering, specifically for session apps.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Even though the &lt;STRONG&gt;App Reload Finished webhook event filter&lt;/STRONG&gt; only includes analytics app reloads, session apps can still slip through because they share the&lt;I&gt;&amp;nbsp;Analytics&amp;nbsp;&lt;/I&gt;usage type. This condition checks the app ID for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;SessionApp_&amp;nbsp;&lt;/EM&gt;prefix.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Session apps are temporary apps, primarily used by background system processes rather than front-end user consumption, so including them usually adds noise and low-value alerts.&lt;/P&gt;
&lt;P&gt;Only include session app events if you intentionally create session apps through Qlik Cloud APIs. In that case, you should filter on the actor so that only your own generated events are processed.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If the app is a session app, the automation stops early. The run title is updated to&lt;EM&gt;&amp;nbsp;Analysis skipped (SessionApp)&amp;nbsp;&lt;/EM&gt;so the automation history clearly shows why no alert was sent.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If the app is not a session app, the automation continues to the next blocks, where it gathers tenant, space, and user details before sending the failure analysis to OpenAI and posting the result to Slack.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;SPAN&gt;Nothing. This condition is pre-configured and requires no changes.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Optional: If your use case depends on API-generated session apps, remove this exclusion and add an actor-based filter to avoid unrelated system events.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 3: Get Current Tenant Info&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block retrieves the hostname and other details about your Qlik Cloud tenant.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The tenant hostname is later used to build a direct link to the failed app in the Slack message. Without this step, the link would be incomplete.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 4: Condition: check if a space exists&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block checks whether the failed analytics app reload came from an app that belongs to a space.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;How it works:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It checks whether the space ID in the event payload is empty.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If a space exists, the automation continues to the &lt;STRONG&gt;Get Space&lt;/STRONG&gt; block. This block retrieves the name and type of the space where the analytics app lives. It uses the s&lt;STRONG&gt;pace ID&lt;/STRONG&gt; from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; to look up the full space details, and it's stored in an object variable. The space name and type are included in the Slack message so your team immediately knows where the failed app is located.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If no space exists, which means the app resides in the user's personal space, the automation creates a default object with the name&lt;EM&gt;&amp;nbsp;Personal&amp;nbsp;&lt;/EM&gt;and type&lt;EM&gt;&amp;nbsp;personal&lt;/EM&gt;. This ensures the Slack message still has a space value to display, even when the app is in the user’s personal space.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This condition is pre-configured and requires no changes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 5: Get User&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block retrieves details about the user whose app reload failed.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It uses the &lt;STRONG&gt;user ID&lt;/STRONG&gt; from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; to look up user details. This information can be referenced in the Slack message and is useful if you want to escalate directly to the app owner or expand the notification with owner's contact information later.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 6: OpenAI: Chat Completion Message (prompt builder)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block constructs the prompt that is sent to OpenAI.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It formats the app reload error details from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; payload into a structured message and passes it to the &lt;STRONG&gt;OpenAI Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;The pre-written prompt instructs OpenAI to act as a senior Qlik Cloud Analytics engineer, identify the root cause of the app load script error, explain why it happened, and suggest the exact changes needed to fix it. Responses are capped at 800 characters and formatted as plain numbered paragraphs so they fit cleanly into a Slack message.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Connect this block to your OpenAI connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Content:&amp;nbsp;&lt;/STRONG&gt;The prompt is pre-written and ready to use. You can edit it if you want a different tone, more or less detail, or a different response format.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Role &lt;/STRONG&gt;(required parameter): Set the role value (for example, assistant). This is required for a valid chat message payload.
&lt;BLOCKQUOTE class="quote"&gt;The role field is empty by default. The automation will fail at this step if you do not provide a role before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Other optional parameters&lt;/STRONG&gt;: Leave the optional fields (Name, Functional Call Arguments, Function Call Name) empty unless you have a specific advanced use case.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chat completion message.png" style="width: 524px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188464i812D3A0020EE75D1/image-size/large?v=v2&amp;amp;px=999" role="button" title="chat completion message.png" alt="chat completion message.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 7: Variable: chatList (message formatter)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block bridges the prompt builder and the &lt;STRONG&gt;OpenAI Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The OpenAI Chat Completion block&lt;/STRONG&gt; expects messages to be passed as a list, not a single object. This block first empties the&lt;EM&gt;&amp;nbsp;chatList&amp;nbsp;&lt;/EM&gt;variable to make sure there is no leftover data from a previous run, then adds the response from the &lt;STRONG&gt;Chat Completion Message block&lt;/STRONG&gt; as a new item in the list. The result is a properly formatted list that can be sent directly to the &lt;STRONG&gt;Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This block is pre-configured and works automatically based on the output of the previous step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 8: OpenAI Chat Completion (AI call)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block sends the prompt to OpenAI and receives the analysis response.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It calls the &lt;STRONG&gt;OpenAI Chat Completion API&lt;/STRONG&gt; using the message built in the previous step.&lt;/P&gt;
&lt;P&gt;The token limit is pre-set to 300 to keep responses concise. &lt;SPAN&gt;It prevents the model from rambling, helps cap output length to reduce cost, and remains bounded by the selected model's own architectural limits.&lt;/SPAN&gt; The model field is intentionally left blank so you can choose the model that suits your subscription.&lt;/P&gt;
&lt;P&gt;We tested this template with the&lt;EM&gt;&amp;nbsp;gpt-5.4-mini&amp;nbsp;&lt;/EM&gt;model, and it performed very well for reload-failure diagnosis.&amp;nbsp;&lt;SPAN&gt;In most cases, lower-cost models are generally very effective at diagnosing.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Make sure this block is connected to your OpenAI connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Model&amp;nbsp;&lt;/STRONG&gt;&lt;SPAN&gt;(required parameter)&lt;STRONG&gt;:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;Use the &lt;STRONG&gt;do lookup functionality&lt;/STRONG&gt; to select the model from the options available for you, or enter the name of the model you want to use.
&lt;BLOCKQUOTE class="quote"&gt;The model field is empty by default. The automation will fail at this step if you do not provide a model name before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Other optional parameters:&amp;nbsp;&lt;/STRONG&gt;Keep defaults unless you need specific tuning.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chat completion.png" style="width: 398px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188465iBCF602146FE38732/image-size/large?v=v2&amp;amp;px=999" role="button" title="chat completion.png" alt="chat completion.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 9: Condition 3, check if the AI response is too long&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block checks whether the AI response fits within the Slack message size limit before sending.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It measures the character length of the OpenAI response. If the response is 2800 characters or more, the message is too long to be posted cleanly in Slack, so the automation takes a fallback path.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch, response is too long (≥ 2800 characters):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable is set to a fallback message:&amp;nbsp;&lt;EM style="font-family: inherit;"&gt;"Generated message was too long. Refer to [link] for full response."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The link points directly to this automation run in the history page so the team can still access the full AI diagnosis.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch, response fits (&amp;lt; 2800 characters):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable is set to the full AI response from OpenAI. This value is then used in the Slack message in the next step.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This condition is pre-configured. You can adjust the 2800-character threshold if needed.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="check if the message is too long.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188466i92BAA8A701C09EDE/image-size/large?v=v2&amp;amp;px=999" role="button" title="check if the message is too long.png" alt="check if the message is too long.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 10: Send the Slack Message&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block posts the &lt;STRONG&gt;App Reload&lt;/STRONG&gt; failure notification along with&amp;nbsp;&lt;SPAN&gt;AI diagnosis&lt;/SPAN&gt; to your Slack channel.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It formats all collected details into a single Slack message. The message contains:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;A red circle emoji as a visual alert indicator&lt;/LI&gt;
&lt;LI&gt;The app name as a clickable link to the app in Qlik Cloud&lt;/LI&gt;
&lt;LI&gt;The app reload ID&lt;/LI&gt;
&lt;LI&gt;The space name, space type, and space ID&lt;/LI&gt;
&lt;LI&gt;The time the reload failed&lt;/LI&gt;
&lt;LI&gt;The reload duration in seconds&lt;/LI&gt;
&lt;LI&gt;The error code or codes&lt;/LI&gt;
&lt;LI&gt;The AI diagnosis from the&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable — either the full response or the fallback link, depending on which branch was taken in Step 9&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Connect this block to your Slack connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Channel&lt;/STRONG&gt; (required parameter): Use the &lt;STRONG&gt;do lookup&lt;/STRONG&gt; functionality to find the ID of the Slack channel or directly enter the ID of the Slack channel where alerts should be posted.
&lt;BLOCKQUOTE class="quote"&gt;The channel field is empty by default. The automation will fail at this step if you do not provide a channel before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="send slack message.png" style="width: 425px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188467iD1B31A859B4BBDA4/image-dimensions/425x816?v=v2" width="425" height="816" role="button" title="send slack message.png" alt="send slack message.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 11: Output 3 (run output display)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block writes the full Slack message content to the automation run output so it is visible directly in the Output section of the automation run history.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It captures and displays the exact same formatted message that was sent to Slack — including the app link, reload ID, space details, error code, and AI diagnosis. This means you can review what was sent without opening Slack, which is useful when debugging or auditing past runs.&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 12: Update Run Title and Update Run Title 2&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;These two blocks make automation run history easy to scan without opening every run.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Run Title&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is used on the main processing path (non-session apps). It sets a clear run title like:&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;Assessed {app name} ({app id})&lt;BR /&gt;&lt;/EM&gt;&lt;BR /&gt;This tells you the reload failure was analyzed and an alert flow was executed.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Run Title 2&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is used on the session-app skip path. It sets:&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;Analysis skipped (SessionApp)&lt;BR /&gt;&lt;/EM&gt;&lt;BR /&gt;This tells you the run intentionally exited early and did not send the full analysis flow.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Why this matters:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Improves observability in run history&lt;/LI&gt;
&lt;LI&gt;Makes triage faster for support teams&lt;/LI&gt;
&lt;LI&gt;Distinguishes successful analysis runs from intentionally skipped runs&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Nothing. Both blocks are pre-configured.&lt;/LI&gt;
&lt;LI&gt;Optional: You can customize the title text to include the app owner or severity labels.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Customization ideas&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;You can modify this automation to match your specific requirement:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Change the destination channel:&amp;nbsp;&lt;/STRONG&gt;send alerts to a different communication channel, like Microsoft Teams&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Add escalation steps:&amp;nbsp;&lt;/STRONG&gt;end email or Microsoft Teams alerts for critical apps or production spaces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adjust the AI prompt:&amp;nbsp;&lt;/STRONG&gt;make the response shorter, more technical, or tailored to your load script conventions&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Filter by app or space:&amp;nbsp;&lt;/STRONG&gt;extend the App Reload Finished webhook event filter to only alert for specific production apps or managed spaces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Connect to a ticketing system:&amp;nbsp;&lt;/STRONG&gt;automatically create incidents in ServiceNow or Jira for severe app reload failures&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Tips for new users&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Test the automation on a non-production analytics app first.&lt;/LI&gt;
&lt;LI&gt;Keep the AI prompt concise and specific so responses stay focused.&lt;/LI&gt;
&lt;LI&gt;Make sure all connectors are authenticated before running the template.&lt;/LI&gt;
&lt;LI&gt;Check the automation run history if the Slack message is missing or incomplete.&lt;/LI&gt;
&lt;LI&gt;Review the AI response for accuracy. It is designed to start the investigation, not replace your own validation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Troubleshooting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;The automation does not send a Slack message:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Confirm the reload event had&lt;EM&gt;&amp;nbsp;Reload status eq "Failed (error)"&amp;nbsp;&lt;/EM&gt;and&lt;EM&gt;&amp;nbsp;Usage eq "Analytics".&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Verify the Slack and OpenAI connections are authenticated and valid.&lt;/LI&gt;
&lt;LI&gt;Check that the user running the automation has access to the app and space.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;The AI response is too long:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The template falls back to a run history link, which is expected behavior and avoids message truncation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;A reload you expected to see was not processed:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Check whether the app is a session app. It will be skipped.&lt;/LI&gt;
&lt;LI&gt;Verify the reload was an analytics app reload and not a data preparation reload. Data preparation reloads are excluded at the webhook level.&lt;/LI&gt;
&lt;LI&gt;Confirm the event filter on the webhook block is correct.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;This template gives you a focused, low-noise starting point for AI-assisted analytics app reload failure handling in Qlik Cloud. By filtering to analytics app errors only and excluding both session apps and data preparation reloads, it keeps alerts relevant and actionable. Teams can respond faster to app load script issues by receiving a clear Slack notification with context and an AI diagnosis the moment something goes wrong. You can modify the automation by adjusting the AI prompt, changing the destination channel, or adding escalation steps such as email or Microsoft Teams alerts.&lt;/P&gt;</description>
    <pubDate>Wed, 03 Jun 2026 10:43:40 GMT</pubDate>
    <dc:creator>AfeefaTk</dc:creator>
    <dc:date>2026-06-03T10:43:40Z</dc:date>
    <item>
      <title>Diagnose failed app reloads with AI and notify your team on Slack using Qlik Automate</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Diagnose-failed-app-reloads-with-AI-and-notify-your-team-on/ta-p/2549376</link>
      <description>&lt;P&gt;&lt;SPAN&gt;This article gives an overview of how to &lt;STRONG&gt;&lt;FONT color="#339966"&gt;analyse failed app reloads with OpenAI using Qlik Automate&lt;/FONT&gt;&lt;/STRONG&gt;, which is now available as a template. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This template&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;is triggered when a Qlik Cloud app reload fails. It then analyzes the reload error with OpenAI and sends a Slack message with the app, space, reload details, and AI diagnosis. Session app and data preparation reloads are filtered out to focus on user-created script issues, keeping your alerts relevant and actionable.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This template is a good starting point if you want to:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Automatically detect when an analytics app reload fails&lt;/LI&gt;
&lt;LI&gt;Get an instant AI-powered analysis of the likely root cause&lt;/LI&gt;
&lt;LI&gt;Notify your team in Slack with all the context they need&lt;/LI&gt;
&lt;LI&gt;Keep noise low by filtering out session app and data &lt;SPAN&gt;preparation&lt;/SPAN&gt; reloads&lt;/LI&gt;
&lt;LI&gt;Maintain a clear automation run history through readable run titles&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="full automation.png" style="width: 747px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188720iE4605C0BA592CA66/image-size/large?v=v2&amp;amp;px=999" role="button" title="full automation.png" alt="full automation.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The template is available on the template picker. You can find it by navigating to&amp;nbsp;&lt;STRONG&gt;Add new &lt;/STRONG&gt;-&amp;gt;&lt;STRONG&gt; New automation &lt;/STRONG&gt;-&amp;gt;&lt;STRONG&gt; Search templates,&amp;nbsp;&lt;/STRONG&gt;searching&amp;nbsp;for &lt;EM&gt;Diagnose failed app reloads with AI and notify your team on Slack&lt;/EM&gt;&amp;nbsp;in the search bar, and clicking the&amp;nbsp;&lt;STRONG&gt;Use template&lt;/STRONG&gt;&amp;nbsp;option.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You will find a version of this automation attached to this article: "&lt;EM&gt;Diagnose-failed-app-reloads-with -AI-and-notify-your-team-on-Slack&lt;STRONG&gt;.&lt;/STRONG&gt;json&lt;/EM&gt;".&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Content&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-TOC indent="15" liststyle="none" maxheadinglevel="4"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;What this template does&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When an analytics app reload fails, the automation:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Triggers on the App Reload Finished webhook event, filtered to analytics app reload errors only&lt;/LI&gt;
&lt;LI&gt;Ignores session app reloads&lt;/LI&gt;
&lt;LI&gt;Looks up tenant, user, and space details&lt;/LI&gt;
&lt;LI&gt;Sends the reload error details to OpenAI for analysis&lt;/LI&gt;
&lt;LI&gt;Posts the result to Slack&lt;/LI&gt;
&lt;LI&gt;Updates the run title so the automation run history is easier to scan&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The Slack message includes:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The app name with a direct link to the app&lt;/LI&gt;
&lt;LI&gt;The app reload ID for reference&lt;/LI&gt;
&lt;LI&gt;Space name and space type&lt;/LI&gt;
&lt;LI&gt;The time the reload failed&lt;/LI&gt;
&lt;LI&gt;Reload duration&lt;/LI&gt;
&lt;LI&gt;An Error code or codes&lt;/LI&gt;
&lt;LI&gt;The AI-generated diagnosis and suggested next steps&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="example output.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188461i5934A0812A149503/image-size/large?v=v2&amp;amp;px=999" role="button" title="example output.png" alt="example output.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Before you start&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;Before using this template, make sure you have access to:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Qlik Cloud Tenant with permission to create and run automations&lt;/LI&gt;
&lt;LI&gt;The OpenAI connection configured in your tenant&lt;/LI&gt;
&lt;LI&gt;The Slack connection configured in your tenant&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step-by-step walkthrough&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 1: App Reload Finished (Webhook event)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This is the first block in the automation. It acts as the listener that starts the entire workflow.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The block runs in webhook mode and listens for the App Reload Finished webhook event from the Qlik Cloud Services connector. T&lt;SPAN&gt;he template uses an App ID guard in the event filter to prevent unnecessary webhook triggers:&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;(App Ids eq "Specify_Your_App_Id_Here")&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Event Filter:&amp;nbsp;&lt;/STRONG&gt;Pre-set to &lt;STRONG&gt;Reload status&lt;/STRONG&gt; (&lt;STRONG&gt;A&lt;/STRONG&gt;) as&lt;EM&gt;&amp;nbsp;Failed (error)&lt;/EM&gt;&amp;nbsp;and &lt;STRONG&gt;Usage&lt;/STRONG&gt; (&lt;STRONG&gt;B&lt;/STRONG&gt;) as&amp;nbsp;&lt;EM&gt;Analytics&lt;/EM&gt;. Replace &lt;EM&gt;Specify_Your_App_Id_Here&lt;/EM&gt;&amp;nbsp;in the &lt;STRONG&gt;App Ids &lt;/STRONG&gt;(&lt;STRONG&gt;C&lt;/STRONG&gt;) parameter with your actual app Id during development.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app reload finished inputs.png" style="width: 557px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188463i579DD285F57E63E5/image-size/large?v=v2&amp;amp;px=999" role="button" title="app reload finished inputs.png" alt="app reload finished inputs.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;When moving to production, either:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Keep the App Ids filter to monitor only selected critical app(s)&lt;/LI&gt;
&lt;LI&gt;Keep the Space Ids filter to monitor apps that reside in specific space(s)&lt;/LI&gt;
&lt;LI&gt;Remove the App Ids and Space Ids clause to monitor all analytics apps in scope&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 2: Condition: skip session apps&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block provides a second layer of filtering, specifically for session apps.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Even though the &lt;STRONG&gt;App Reload Finished webhook event filter&lt;/STRONG&gt; only includes analytics app reloads, session apps can still slip through because they share the&lt;I&gt;&amp;nbsp;Analytics&amp;nbsp;&lt;/I&gt;usage type. This condition checks the app ID for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;SessionApp_&amp;nbsp;&lt;/EM&gt;prefix.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Session apps are temporary apps, primarily used by background system processes rather than front-end user consumption, so including them usually adds noise and low-value alerts.&lt;/P&gt;
&lt;P&gt;Only include session app events if you intentionally create session apps through Qlik Cloud APIs. In that case, you should filter on the actor so that only your own generated events are processed.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If the app is a session app, the automation stops early. The run title is updated to&lt;EM&gt;&amp;nbsp;Analysis skipped (SessionApp)&amp;nbsp;&lt;/EM&gt;so the automation history clearly shows why no alert was sent.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If the app is not a session app, the automation continues to the next blocks, where it gathers tenant, space, and user details before sending the failure analysis to OpenAI and posting the result to Slack.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;SPAN&gt;Nothing. This condition is pre-configured and requires no changes.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Optional: If your use case depends on API-generated session apps, remove this exclusion and add an actor-based filter to avoid unrelated system events.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 3: Get Current Tenant Info&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block retrieves the hostname and other details about your Qlik Cloud tenant.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The tenant hostname is later used to build a direct link to the failed app in the Slack message. Without this step, the link would be incomplete.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 4: Condition: check if a space exists&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block checks whether the failed analytics app reload came from an app that belongs to a space.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;How it works:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It checks whether the space ID in the event payload is empty.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If a space exists, the automation continues to the &lt;STRONG&gt;Get Space&lt;/STRONG&gt; block. This block retrieves the name and type of the space where the analytics app lives. It uses the s&lt;STRONG&gt;pace ID&lt;/STRONG&gt; from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; to look up the full space details, and it's stored in an object variable. The space name and type are included in the Slack message so your team immediately knows where the failed app is located.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If no space exists, which means the app resides in the user's personal space, the automation creates a default object with the name&lt;EM&gt;&amp;nbsp;Personal&amp;nbsp;&lt;/EM&gt;and type&lt;EM&gt;&amp;nbsp;personal&lt;/EM&gt;. This ensures the Slack message still has a space value to display, even when the app is in the user’s personal space.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This condition is pre-configured and requires no changes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 5: Get User&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block retrieves details about the user whose app reload failed.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It uses the &lt;STRONG&gt;user ID&lt;/STRONG&gt; from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; to look up user details. This information can be referenced in the Slack message and is useful if you want to escalate directly to the app owner or expand the notification with owner's contact information later.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 6: OpenAI: Chat Completion Message (prompt builder)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block constructs the prompt that is sent to OpenAI.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It formats the app reload error details from the &lt;STRONG&gt;App Reload Finished webhook event&lt;/STRONG&gt; payload into a structured message and passes it to the &lt;STRONG&gt;OpenAI Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;The pre-written prompt instructs OpenAI to act as a senior Qlik Cloud Analytics engineer, identify the root cause of the app load script error, explain why it happened, and suggest the exact changes needed to fix it. Responses are capped at 800 characters and formatted as plain numbered paragraphs so they fit cleanly into a Slack message.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Connect this block to your OpenAI connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Content:&amp;nbsp;&lt;/STRONG&gt;The prompt is pre-written and ready to use. You can edit it if you want a different tone, more or less detail, or a different response format.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Role &lt;/STRONG&gt;(required parameter): Set the role value (for example, assistant). This is required for a valid chat message payload.
&lt;BLOCKQUOTE class="quote"&gt;The role field is empty by default. The automation will fail at this step if you do not provide a role before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Other optional parameters&lt;/STRONG&gt;: Leave the optional fields (Name, Functional Call Arguments, Function Call Name) empty unless you have a specific advanced use case.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chat completion message.png" style="width: 524px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188464i812D3A0020EE75D1/image-size/large?v=v2&amp;amp;px=999" role="button" title="chat completion message.png" alt="chat completion message.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 7: Variable: chatList (message formatter)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block bridges the prompt builder and the &lt;STRONG&gt;OpenAI Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The OpenAI Chat Completion block&lt;/STRONG&gt; expects messages to be passed as a list, not a single object. This block first empties the&lt;EM&gt;&amp;nbsp;chatList&amp;nbsp;&lt;/EM&gt;variable to make sure there is no leftover data from a previous run, then adds the response from the &lt;STRONG&gt;Chat Completion Message block&lt;/STRONG&gt; as a new item in the list. The result is a properly formatted list that can be sent directly to the &lt;STRONG&gt;Chat Completion block&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This block is pre-configured and works automatically based on the output of the previous step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 8: OpenAI Chat Completion (AI call)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block sends the prompt to OpenAI and receives the analysis response.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It calls the &lt;STRONG&gt;OpenAI Chat Completion API&lt;/STRONG&gt; using the message built in the previous step.&lt;/P&gt;
&lt;P&gt;The token limit is pre-set to 300 to keep responses concise. &lt;SPAN&gt;It prevents the model from rambling, helps cap output length to reduce cost, and remains bounded by the selected model's own architectural limits.&lt;/SPAN&gt; The model field is intentionally left blank so you can choose the model that suits your subscription.&lt;/P&gt;
&lt;P&gt;We tested this template with the&lt;EM&gt;&amp;nbsp;gpt-5.4-mini&amp;nbsp;&lt;/EM&gt;model, and it performed very well for reload-failure diagnosis.&amp;nbsp;&lt;SPAN&gt;In most cases, lower-cost models are generally very effective at diagnosing.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Make sure this block is connected to your OpenAI connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Model&amp;nbsp;&lt;/STRONG&gt;&lt;SPAN&gt;(required parameter)&lt;STRONG&gt;:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;Use the &lt;STRONG&gt;do lookup functionality&lt;/STRONG&gt; to select the model from the options available for you, or enter the name of the model you want to use.
&lt;BLOCKQUOTE class="quote"&gt;The model field is empty by default. The automation will fail at this step if you do not provide a model name before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Other optional parameters:&amp;nbsp;&lt;/STRONG&gt;Keep defaults unless you need specific tuning.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chat completion.png" style="width: 398px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188465iBCF602146FE38732/image-size/large?v=v2&amp;amp;px=999" role="button" title="chat completion.png" alt="chat completion.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 9: Condition 3, check if the AI response is too long&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block checks whether the AI response fits within the Slack message size limit before sending.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It measures the character length of the OpenAI response. If the response is 2800 characters or more, the message is too long to be posted cleanly in Slack, so the automation takes a fallback path.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Yes branch, response is too long (≥ 2800 characters):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable is set to a fallback message:&amp;nbsp;&lt;EM style="font-family: inherit;"&gt;"Generated message was too long. Refer to [link] for full response."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The link points directly to this automation run in the history page so the team can still access the full AI diagnosis.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;No branch, response fits (&amp;lt; 2800 characters):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable is set to the full AI response from OpenAI. This value is then used in the Slack message in the next step.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Nothing. This condition is pre-configured. You can adjust the 2800-character threshold if needed.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="check if the message is too long.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188466i92BAA8A701C09EDE/image-size/large?v=v2&amp;amp;px=999" role="button" title="check if the message is too long.png" alt="check if the message is too long.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 10: Send the Slack Message&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;This block posts the &lt;STRONG&gt;App Reload&lt;/STRONG&gt; failure notification along with&amp;nbsp;&lt;SPAN&gt;AI diagnosis&lt;/SPAN&gt; to your Slack channel.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It formats all collected details into a single Slack message. The message contains:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;A red circle emoji as a visual alert indicator&lt;/LI&gt;
&lt;LI&gt;The app name as a clickable link to the app in Qlik Cloud&lt;/LI&gt;
&lt;LI&gt;The app reload ID&lt;/LI&gt;
&lt;LI&gt;The space name, space type, and space ID&lt;/LI&gt;
&lt;LI&gt;The time the reload failed&lt;/LI&gt;
&lt;LI&gt;The reload duration in seconds&lt;/LI&gt;
&lt;LI&gt;The error code or codes&lt;/LI&gt;
&lt;LI&gt;The AI diagnosis from the&lt;EM&gt;&amp;nbsp;output&amp;nbsp;&lt;/EM&gt;variable — either the full response or the fallback link, depending on which branch was taken in Step 9&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL class="lia-list-style-type-upper-alpha"&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection:&amp;nbsp;&lt;/STRONG&gt;Connect this block to your Slack connection.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Channel&lt;/STRONG&gt; (required parameter): Use the &lt;STRONG&gt;do lookup&lt;/STRONG&gt; functionality to find the ID of the Slack channel or directly enter the ID of the Slack channel where alerts should be posted.
&lt;BLOCKQUOTE class="quote"&gt;The channel field is empty by default. The automation will fail at this step if you do not provide a channel before running.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="send slack message.png" style="width: 425px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/188467iD1B31A859B4BBDA4/image-dimensions/425x816?v=v2" width="425" height="816" role="button" title="send slack message.png" alt="send slack message.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Step 11: Output 3 (run output display)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This block writes the full Slack message content to the automation run output so it is visible directly in the Output section of the automation run history.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;It captures and displays the exact same formatted message that was sent to Slack — including the app link, reload ID, space details, error code, and AI diagnosis. This means you can review what was sent without opening Slack, which is useful when debugging or auditing past runs.&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Step 12: Update Run Title and Update Run Title 2&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;These two blocks make automation run history easy to scan without opening every run.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Run Title&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is used on the main processing path (non-session apps). It sets a clear run title like:&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;Assessed {app name} ({app id})&lt;BR /&gt;&lt;/EM&gt;&lt;BR /&gt;This tells you the reload failure was analyzed and an alert flow was executed.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Run Title 2&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is used on the session-app skip path. It sets:&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;Analysis skipped (SessionApp)&lt;BR /&gt;&lt;/EM&gt;&lt;BR /&gt;This tells you the run intentionally exited early and did not send the full analysis flow.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Why this matters:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Improves observability in run history&lt;/LI&gt;
&lt;LI&gt;Makes triage faster for support teams&lt;/LI&gt;
&lt;LI&gt;Distinguishes successful analysis runs from intentionally skipped runs&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;What you need to configure:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Nothing. Both blocks are pre-configured.&lt;/LI&gt;
&lt;LI&gt;Optional: You can customize the title text to include the app owner or severity labels.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Customization ideas&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;You can modify this automation to match your specific requirement:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Change the destination channel:&amp;nbsp;&lt;/STRONG&gt;send alerts to a different communication channel, like Microsoft Teams&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Add escalation steps:&amp;nbsp;&lt;/STRONG&gt;end email or Microsoft Teams alerts for critical apps or production spaces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adjust the AI prompt:&amp;nbsp;&lt;/STRONG&gt;make the response shorter, more technical, or tailored to your load script conventions&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Filter by app or space:&amp;nbsp;&lt;/STRONG&gt;extend the App Reload Finished webhook event filter to only alert for specific production apps or managed spaces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Connect to a ticketing system:&amp;nbsp;&lt;/STRONG&gt;automatically create incidents in ServiceNow or Jira for severe app reload failures&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Tips for new users&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Test the automation on a non-production analytics app first.&lt;/LI&gt;
&lt;LI&gt;Keep the AI prompt concise and specific so responses stay focused.&lt;/LI&gt;
&lt;LI&gt;Make sure all connectors are authenticated before running the template.&lt;/LI&gt;
&lt;LI&gt;Check the automation run history if the Slack message is missing or incomplete.&lt;/LI&gt;
&lt;LI&gt;Review the AI response for accuracy. It is designed to start the investigation, not replace your own validation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Troubleshooting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;The automation does not send a Slack message:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Confirm the reload event had&lt;EM&gt;&amp;nbsp;Reload status eq "Failed (error)"&amp;nbsp;&lt;/EM&gt;and&lt;EM&gt;&amp;nbsp;Usage eq "Analytics".&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Verify the Slack and OpenAI connections are authenticated and valid.&lt;/LI&gt;
&lt;LI&gt;Check that the user running the automation has access to the app and space.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;The AI response is too long:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The template falls back to a run history link, which is expected behavior and avoids message truncation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;A reload you expected to see was not processed:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Check whether the app is a session app. It will be skipped.&lt;/LI&gt;
&lt;LI&gt;Verify the reload was an analytics app reload and not a data preparation reload. Data preparation reloads are excluded at the webhook level.&lt;/LI&gt;
&lt;LI&gt;Confirm the event filter on the webhook block is correct.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;This template gives you a focused, low-noise starting point for AI-assisted analytics app reload failure handling in Qlik Cloud. By filtering to analytics app errors only and excluding both session apps and data preparation reloads, it keeps alerts relevant and actionable. Teams can respond faster to app load script issues by receiving a clear Slack notification with context and an AI diagnosis the moment something goes wrong. You can modify the automation by adjusting the AI prompt, changing the destination channel, or adding escalation steps such as email or Microsoft Teams alerts.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jun 2026 10:43:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Diagnose-failed-app-reloads-with-AI-and-notify-your-team-on/ta-p/2549376</guid>
      <dc:creator>AfeefaTk</dc:creator>
      <dc:date>2026-06-03T10:43:40Z</dc:date>
    </item>
  </channel>
</rss>

