<?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 How to call a custom REST chatbot from a Qlik Cloud sheet using Advanced Analytics (endpoints.ScriptAggrStr)? Getting 500/FAILED_PRECONDITION in Connectivity &amp; Data Prep</title>
    <link>https://community.qlik.com/t5/Connectivity-Data-Prep/How-to-call-a-custom-REST-chatbot-from-a-Qlik-Cloud-sheet-using/m-p/2536688#M15301</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I’m trying to build an interactive sheet where users type a question (Variable input) and a Text object shows a response from our in-house LLM chatbot that exposes a REST API. I created an &lt;STRONG&gt;Advanced Analytics&lt;/STRONG&gt; connection pointing at our endpoint, and I can successfully pull data via the &lt;STRONG&gt;Data Load Editor&lt;/STRONG&gt; with the REST settings.&lt;/P&gt;&lt;P&gt;What I want is to call the same endpoint from a &lt;STRONG&gt;chart expression&lt;/STRONG&gt; using the SSE/analytics-endpoints functions. I’m following Qlik’s docs for analytic connections and SSE syntax, as well as the example that shows using endpoints.scriptAggrStr(...) in a chart. Notably, the docs mention the &lt;STRONG&gt;space-aware connection name&lt;/STRONG&gt; (prefixing the connection with a colon to resolve to the current space) and show an example like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;if(vQuestion &amp;lt;&amp;gt; '', &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　endpoints.scriptAggrStr( &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　'{&lt;SPAN class=""&gt;"RequestType"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;,&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　{&lt;SPAN class=""&gt;"connectionname"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;":Amazon_Titan_(Amazon_Bedrock)"&lt;/SPAN&gt;,&lt;SPAN class=""&gt;"column"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"outputText"&lt;/SPAN&gt;}}'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　, vQuestion ) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(From &lt;EM&gt;Getting started with analytic connections&lt;/EM&gt; → “Relative space syntax in chart expression”.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I adapted that pattern to my connection and column name. My current expression (in a Text &amp;amp; image object) looks like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;=if(Len(Trim(vQuestion))&amp;gt;0, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　endpoints.ScriptAggrStr( &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　'{&lt;SPAN class=""&gt;"RequestType"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;　　　　"endpoint"&lt;/SPAN&gt;:{ &lt;SPAN class=""&gt;"connectionname"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;":LLM_Chat"&lt;/SPAN&gt;, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;　　　　　"column"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"text"&lt;/SPAN&gt; } &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　}'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　, vQuestion ) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;vQuestion is the variable bound to a Variable input component.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The connection “LLM_Chat” lives in the same shared space as the app (hence the leading : per docs). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I mapped the response column in the connection so that &lt;STRONG&gt;text&lt;/STRONG&gt; is a string column (per “Response items / Response table (JMESPath)” guidance). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;&lt;BR /&gt;When the expression runs, I get:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;grpc::&lt;SPAN class=""&gt;StatusCode&lt;/SPAN&gt;::&lt;SPAN class=""&gt;FAILED_PRECONDITION&lt;/SPAN&gt;: &lt;SPAN class=""&gt;'Error returned by endpoint: InternalServerError'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;(HTTP 500 series). I also saw CSP errors in the browser dev tools; I added our domain to CSP in the tenant admin, but the error persists.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2025-11-20 115118.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185130iDAD9928F7BBA950A/image-size/large?v=v2&amp;amp;px=999" role="button" title="スクリーンショット 2025-11-20 115118.png" alt="スクリーンショット 2025-11-20 115118.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What I’ve verified&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;The model endpoint itself works from my machine via curl with the same request body (so the model is up and reachable).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Machine learning endpoints are enabled at the tenant level (Admin → Settings → Feature control), as required by the “Getting started with analytic connections” page. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;SSE function type should be ScriptAggrStr (string in, string out, single row) per “Server-side extensions syntax”. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The connection is configured with a response table/column so the column parameter points to an actual string field (docs: Response items / JMESPath and “Load all available items” first to inspect columns). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I also tried the same expression &lt;STRONG&gt;without&lt;/STRONG&gt; the leading colon in connectionname and also using a fully qualified SpaceName:ConnectionName reference; behavior is unchanged. (Docs show both variants.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I reviewed the Amazon Comprehend example that uses endpoints.ScriptAggrStr with a variable input; my pattern mirrors this. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-amazon-comprehend-use.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Questions&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is my endpoints.ScriptAggrStr payload correct for calling a custom REST analytics connection? Are there any required keys besides "RequestType":"endpoint" and "endpoint":{"connectionname":"…","column":"…"}}? The examples I’ve found vary a bit and official reference for the endpoints.Script* parameters is sparse. (There’s a community thread asking about docs, but I couldn’t find a full parameter reference.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://community.qlik.com/t5/App-Development/endpoints-Script-Functions-Documentation/td-p/2534281?utm_source=chatgpt.com" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;community.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;In the connection dialog, what’s the recommended way to set &lt;STRONG&gt;Response table (JMESPath)&lt;/STRONG&gt; for typical chatbot JSON? For example, if the API returns either:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;{"answer":"...", "usage":{...}} → should I create a table that exposes an answer column and then reference "column":"answer" in the expression?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;or {"output":[{"content":"..."}]} → should the table be output with a content column, then "column":"content"?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Could 500/FAILED_PRECONDITION be caused by the response schema not matching the configured column (e.g., returning an array/object when the column expects a scalar string), or by a missing association field? Any best-practice tips to test the connection &lt;STRONG&gt;first in the Data Load Editor&lt;/STRONG&gt; (“Load all available items”), confirm the actual column names, then switch to the chart expression? &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Any known CSP gotchas for analytics endpoints? I’ve allowed our API host, but I’m still seeing the same SSE 500 in charts.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Qlik Cloud (SaaS). Machine learning endpoints enabled. (&lt;EM&gt;Docs note these are off by default; we enabled them via Admin → Feature control.&lt;/EM&gt;) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The analytic connection is in the same shared space as the app; expression uses ":ConnectionName" (space-relative) per docs. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Browser: Chrome (latest).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The REST endpoint requires Content-Type: application/json and Bearer auth (configured in the connection).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any working examples or a definitive reference for the endpoints.Script* JSON payload (specifically accepted keys and how column maps to the connection’s response schema) would be hugely appreciated. Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Docs I followed&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Getting started with analytic connections&lt;/EM&gt; (space-aware connectionname and chart example). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Server-side extensions syntax&lt;/EM&gt; (which ScriptAggrStr to use in charts, data types). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Using analytic connections in a visualization expression – Amazon Comprehend example&lt;/EM&gt; (pattern for endpoints.ScriptAggrStr with a variable). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-amazon-comprehend-use.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 20 Nov 2025 02:59:37 GMT</pubDate>
    <dc:creator>FukuyamaS</dc:creator>
    <dc:date>2025-11-20T02:59:37Z</dc:date>
    <item>
      <title>How to call a custom REST chatbot from a Qlik Cloud sheet using Advanced Analytics (endpoints.ScriptAggrStr)? Getting 500/FAILED_PRECONDITION</title>
      <link>https://community.qlik.com/t5/Connectivity-Data-Prep/How-to-call-a-custom-REST-chatbot-from-a-Qlik-Cloud-sheet-using/m-p/2536688#M15301</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I’m trying to build an interactive sheet where users type a question (Variable input) and a Text object shows a response from our in-house LLM chatbot that exposes a REST API. I created an &lt;STRONG&gt;Advanced Analytics&lt;/STRONG&gt; connection pointing at our endpoint, and I can successfully pull data via the &lt;STRONG&gt;Data Load Editor&lt;/STRONG&gt; with the REST settings.&lt;/P&gt;&lt;P&gt;What I want is to call the same endpoint from a &lt;STRONG&gt;chart expression&lt;/STRONG&gt; using the SSE/analytics-endpoints functions. I’m following Qlik’s docs for analytic connections and SSE syntax, as well as the example that shows using endpoints.scriptAggrStr(...) in a chart. Notably, the docs mention the &lt;STRONG&gt;space-aware connection name&lt;/STRONG&gt; (prefixing the connection with a colon to resolve to the current space) and show an example like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;if(vQuestion &amp;lt;&amp;gt; '', &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　endpoints.scriptAggrStr( &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　'{&lt;SPAN class=""&gt;"RequestType"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;,&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　{&lt;SPAN class=""&gt;"connectionname"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;":Amazon_Titan_(Amazon_Bedrock)"&lt;/SPAN&gt;,&lt;SPAN class=""&gt;"column"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"outputText"&lt;/SPAN&gt;}}'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　, vQuestion ) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(From &lt;EM&gt;Getting started with analytic connections&lt;/EM&gt; → “Relative space syntax in chart expression”.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I adapted that pattern to my connection and column name. My current expression (in a Text &amp;amp; image object) looks like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;=if(Len(Trim(vQuestion))&amp;gt;0, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　endpoints.ScriptAggrStr( &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　'{&lt;SPAN class=""&gt;"RequestType"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"endpoint"&lt;/SPAN&gt;, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;　　　　"endpoint"&lt;/SPAN&gt;:{ &lt;SPAN class=""&gt;"connectionname"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;":LLM_Chat"&lt;/SPAN&gt;, &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;　　　　　"column"&lt;/SPAN&gt;:&lt;SPAN class=""&gt;"text"&lt;/SPAN&gt; } &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　　　}'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;　　, vQuestion ) &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;vQuestion is the variable bound to a Variable input component.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The connection “LLM_Chat” lives in the same shared space as the app (hence the leading : per docs). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I mapped the response column in the connection so that &lt;STRONG&gt;text&lt;/STRONG&gt; is a string column (per “Response items / Response table (JMESPath)” guidance). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;&lt;BR /&gt;When the expression runs, I get:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;grpc::&lt;SPAN class=""&gt;StatusCode&lt;/SPAN&gt;::&lt;SPAN class=""&gt;FAILED_PRECONDITION&lt;/SPAN&gt;: &lt;SPAN class=""&gt;'Error returned by endpoint: InternalServerError'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;(HTTP 500 series). I also saw CSP errors in the browser dev tools; I added our domain to CSP in the tenant admin, but the error persists.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2025-11-20 115118.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185130iDAD9928F7BBA950A/image-size/large?v=v2&amp;amp;px=999" role="button" title="スクリーンショット 2025-11-20 115118.png" alt="スクリーンショット 2025-11-20 115118.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What I’ve verified&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;The model endpoint itself works from my machine via curl with the same request body (so the model is up and reachable).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Machine learning endpoints are enabled at the tenant level (Admin → Settings → Feature control), as required by the “Getting started with analytic connections” page. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;SSE function type should be ScriptAggrStr (string in, string out, single row) per “Server-side extensions syntax”. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The connection is configured with a response table/column so the column parameter points to an actual string field (docs: Response items / JMESPath and “Load all available items” first to inspect columns). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I also tried the same expression &lt;STRONG&gt;without&lt;/STRONG&gt; the leading colon in connectionname and also using a fully qualified SpaceName:ConnectionName reference; behavior is unchanged. (Docs show both variants.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;I reviewed the Amazon Comprehend example that uses endpoints.ScriptAggrStr with a variable input; my pattern mirrors this. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-amazon-comprehend-use.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Questions&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is my endpoints.ScriptAggrStr payload correct for calling a custom REST analytics connection? Are there any required keys besides "RequestType":"endpoint" and "endpoint":{"connectionname":"…","column":"…"}}? The examples I’ve found vary a bit and official reference for the endpoints.Script* parameters is sparse. (There’s a community thread asking about docs, but I couldn’t find a full parameter reference.) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://community.qlik.com/t5/App-Development/endpoints-Script-Functions-Documentation/td-p/2534281?utm_source=chatgpt.com" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;community.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;In the connection dialog, what’s the recommended way to set &lt;STRONG&gt;Response table (JMESPath)&lt;/STRONG&gt; for typical chatbot JSON? For example, if the API returns either:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;{"answer":"...", "usage":{...}} → should I create a table that exposes an answer column and then reference "column":"answer" in the expression?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;or {"output":[{"content":"..."}]} → should the table be output with a content column, then "column":"content"?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Could 500/FAILED_PRECONDITION be caused by the response schema not matching the configured column (e.g., returning an array/object when the column expects a scalar string), or by a missing association field? Any best-practice tips to test the connection &lt;STRONG&gt;first in the Data Load Editor&lt;/STRONG&gt; (“Load all available items”), confirm the actual column names, then switch to the chart expression? &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-advanced-analytic-create.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Any known CSP gotchas for analytics endpoints? I’ve allowed our API host, but I’m still seeing the same SSE 500 in charts.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Qlik Cloud (SaaS). Machine learning endpoints enabled. (&lt;EM&gt;Docs note these are off by default; we enabled them via Admin → Feature control.&lt;/EM&gt;) &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The analytic connection is in the same shared space as the app; expression uses ":ConnectionName" (space-relative) per docs. &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Browser: Chrome (latest).&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;The REST endpoint requires Content-Type: application/json and Bearer auth (configured in the connection).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any working examples or a definitive reference for the endpoints.Script* JSON payload (specifically accepted keys and how column maps to the connection’s response schema) would be hugely appreciated. Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Docs I followed&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Getting started with analytic connections&lt;/EM&gt; (space-aware connectionname and chart example). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/load-data-from-advanced-analytic-connections.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Server-side extensions syntax&lt;/EM&gt; (which ScriptAggrStr to use in charts, data types). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;EM&gt;Using analytic connections in a visualization expression – Amazon Comprehend example&lt;/EM&gt; (pattern for endpoints.ScriptAggrStr with a variable). &lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;A href="https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-amazon-comprehend-use.htm" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;help.qlik.com&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Nov 2025 02:59:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Connectivity-Data-Prep/How-to-call-a-custom-REST-chatbot-from-a-Qlik-Cloud-sheet-using/m-p/2536688#M15301</guid>
      <dc:creator>FukuyamaS</dc:creator>
      <dc:date>2025-11-20T02:59:37Z</dc:date>
    </item>
  </channel>
</rss>

