### Using API Keys with Qlik Cloud APIs (Postman Example) Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-generate-api-keys.htm This example demonstrates how to use Postman to connect to Qlik Cloud APIs using an API key for authentication. ```APIDOC ## GET /api/v1/spaces ### Description This endpoint lists all spaces in the tenant. It requires an API key for authentication. ### Method GET ### Endpoint https://your-tenant.eu.qlikcloud.com/api/v1/spaces ### Parameters #### Query Parameters None #### Request Body None ### Request Example **Tool:** Postman 1. Set HTTP method to GET. 2. Enter the API endpoint URL. 3. On the 'Auth' tab, select 'Bearer Token' as the Auth Type. 4. Enter your API key in the 'Token' field. 5. Click 'Send'. ### Response #### Success Response (200) - **spaces** (array) - A list of spaces in the tenant. #### Response Example ```json { "spaces": [ { "id": "space-id-1", "name": "Sales", "owner": "user@example.com", "createdAt": "2023-01-01T10:00:00Z", "lastModifiedAt": "2023-01-01T10:00:00Z" }, { "id": "space-id-2", "name": "Marketing", "owner": "user@example.com", "createdAt": "2023-01-01T10:05:00Z", "lastModifiedAt": "2023-01-01T10:05:00Z" } ] } ``` ``` -------------------------------- ### Load Script for Sales Aggregation Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm This Qlik Sense load script defines a dataset named 'Example' containing sales figures with fields for Month, SalesProduct, Region, and Sales. It uses an inline load statement to populate the data. This script is used for the 'Sum scenario aggregating sales data' example. ```qlikview Example: Load * inline [ Month,SalesProduct, Region, Sales 2024-01-01, T-shirt, East, 100 2024-01-01, T-shirt, West, 120 2024-01-01, Jeans, East, 200 2024-01-01, Jeans, West, 180 2024-02-01, T-shirt, East, 150 2024-02-01, T-shirt, West, 130 2024-02-01, Jeans, East, 250 2024-02-01, Jeans, West, 220 ]; ``` -------------------------------- ### Qlik Alerting Filter Query Examples Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/administration.htm Demonstrates how to construct filter strings for Qlik Alerting user synchronization. These examples cover simple and complex queries using various operators and field combinations. Values must be enclosed in single quotes and are case-insensitive. ```qlik-filter userDirectory eq 'exampleCompanyDomain' ``` ```qlik-filter tags.name eq 'exampleTagName' ``` ```qlik-filter userDirectory eq 'exampleCompanyDomain' and (userId eq 'exampleUser1' or userId eq 'exampleUser2') ``` ```qlik-filter userDirectory eq 'exampleCompanyDomain' or tags.name so 'exampleTagName' ``` ```qlik-filter customProperties.value eq 'exampleCustomPropertyName' ``` ```qlik-filter userDirectory eq 'exampleCompanyDomain' and createdDate gt '2020-01-01' ``` -------------------------------- ### Qlik Load Script for Mode Fundamentals Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/mode.htm This Qlik load script defines a dataset named 'Example' with customer information and sales data. It uses the inline load statement to populate the table with sample records, including Customer, UnitSales, and UnitPrice fields. This script is a prerequisite for demonstrating the Mode function. ```qlik Example: LOAD * inline [ Customer|UnitSales|UnitPrice Astrida|4|16 Astrida|10|15 Astrida|9|9 Astrida|10|10 Betacab|5|10 Betacab|4|20 Betacab||25 Canutility|8|15 Canutility|4|19 ] (delimiter is '|'); ``` -------------------------------- ### Qlik Load Script for FirstSortedValue Scenario Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm This Qlik load script creates a dataset named 'Example' containing sales figures with Date, SalesProduct, Category, and Sales fields. It serves as input for analyzing top and bottom selling products. ```qlik Example: Load * inline [ Date,SalesProduct, Category, Sales 2024-01-01, Apple, Fruit, 100 2024-01-15, Banana, Fruit, 80 2024-01-30, Carrot, Vegetable, 50 2024-02-05, Apple, Fruit, 120 2024-02-20, Banana, Fruit, 90 2024-02-28, Carrot, Vegetable, 60 2024-03-10, Apple, Fruit, 110 2024-03-22, Banana, Fruit, 85 2024-03-31, Carrot, Vegetable, 55 ]; ``` -------------------------------- ### Qlik Load Script for FirstSortedValue Fundamentals Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm This Qlik load script defines a data table named 'Example' with fields for Customer, Product, UnitSales, and UnitPrice. It's used to demonstrate the FirstSortedValue function. ```qlik Example: LOAD * inline [ Customer|Product|UnitSales|UnitPrice Astrida|AA|4|16 Astrida|AA|10|15 Astrida|BB|9|9 Betacab|BB|5|10 Betacab|CC|2|20 Betacab|DD||25 Canutility|AA|8|15 Canutility|CC||19 ] (delimiter is '|'); ``` -------------------------------- ### Qlik Max() Function Syntax and Examples Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/max.htm Demonstrates the syntax and usage of the Qlik Max() function for retrieving aggregated data. It includes examples for finding the highest value, the nth highest value, and using TOTAL and SetExpression qualifiers. ```qlik Max([{SetExpression}] [TOTAL []] expr [,rank]) ``` ```qlik Max(UnitSales) ``` ```qlik Max(UnitSales*UnitPrice) ``` ```qlik Max(UnitSales, 2) ``` ```qlik Max(TOTAL UnitSales) ``` ```qlik Max({1} TOTAL UnitSales) ``` -------------------------------- ### Webhook Request Headers Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-webhooks.htm This example demonstrates the typical headers included in a Qlik Cloud webhook request. It specifies the content type, execution token, Qlik signature for authentication, and a user agent. ```json { "Content-Type": "application/json", "X-Execution-Token: ", "Qlik-Signature": "446bd5e3f5b635f491d17557e4bec6ebc61b7bd2bc9cc7b612e4e", "User-Agent": "Qlik Webhook" } ``` -------------------------------- ### Backup MongoDB Database with mongodump Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/administration.htm This command backs up the 'qlikalerting' MongoDB database. It requires navigating to the MongoDB bin directory and specifies an output folder for the backup. Ensure the path to mongodump is correct for your installation. ```bash cd "C:\Program Files\MongoDB\Server\4.2\bin" mongodump --db=qlikalerting --out="Backup Name" ``` -------------------------------- ### Qlik Load Script: Sample Data Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/ColorFunctions/ARGB.htm This Qlik load script defines a simple inline data table named 'Example' with 'Product' and 'Sales' fields. It's used to demonstrate the ARGB() function's application in chart coloring. ```qlik Example: LOAD * Inline [ Product, Sales Product A, 200 Product B, 500 Product C, 100 Product D, 300 Product E, 700 ]; ``` -------------------------------- ### Qlik Min() Function Examples Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/min.htm Demonstrates various uses of the Min() function in Qlik Sense for aggregated data analysis. It covers finding the absolute minimum, the nth minimum, and applying set analysis and the TOTAL qualifier. ```qlik Min(UnitSales) Min(UnitSales*UnitPrice) Min(UnitSales, 2) Min(TOTAL UnitSales) Min({1} TOTAL UnitSales) ``` -------------------------------- ### Qlik Chart Expressions: Min Function Examples Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/min.htm Demonstrates various applications of the Min function in Qlik Sense chart expressions. These include calculating the minimum value, the second minimum value, and minimums across different aggregation scopes (total, with selections, ignoring selections). ```qlikview =Min(UnitSales) ``` ```qlikview =Min(UnitSales*UnitPrice) ``` ```qlikview =Min(UnitSales, 2) ``` ```qlikview =Min(TOTAL UnitSales) ``` ```qlikview =Min({1} TOTAL UnitSales) ``` -------------------------------- ### Get System Attributes Script Function in Qlik Cloud Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm Introduces the `GetSysAttr` script and expression function in Qlik Cloud, allowing users to access tenant and space attributes programmatically. This eliminates the need for manual entry of Tenant IDs, Names, or URLs, simplifying monitoring and deployments. Accessible variables include tenantId, tenantName, tenantUrl, tenantUrlAlias, tenantRegion, spaceId, spaceName, and spaceType. ```qlikscript Dual GetSysAttr(VariableName) ``` -------------------------------- ### App Deleted Event Webhook Request Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-webhooks.htm This snippet shows an example of the JSON request payload sent by Qlik Cloud when an application is deleted. It includes the request URL, headers, and the detailed body of the event notification. ```json { "cloudEventsVersion": "0.1", "source": "com.qlik/engine", "contentType": "application/json", "eventId": "e65c1481-e8a-4be-a5ca-27dfcde077d7", "eventTime": "2021-03-08T14:51:29Z", "eventTypeVersion": "1.0.0", "eventType": "com.qlik.v1.app.deleted", "extensions": { "ownerId": "vNRGrDZIypJzauw59BbpvkRhqbmI", "tenantId": "oZcMPa_1PwH4FUdrh6839YHHdEJN", "userId": "vNRGrDZIypJtcGTzauw59BbpqbmI" }, "data": { "attributes": { "id": "0984fec4-aa8c-4253-b1d1-4fd4f9c78", "name": "New App", "createdDate": "2021-03-08T14:51:28.888Z", "modifiedDate": "2021-03-08T14:51:29.316Z", "owner": "auth0|b62a17c577a4abe6e807b07d18c4d82286352542d633d120100b03fb11", "ownerId": "vNRGrDZIypJtcGTzauw59BbpvbmI", "published": false, "hasSectionAccess": false } } } ``` -------------------------------- ### One-Hot Encoding Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/categorical-encoding.htm Illustrates the one-hot encoding process where a categorical column is transformed into multiple binary columns, one for each unique category. This allows each category to be evaluated independently. ```text Original Column: MarketingSource | Person | MarketingSource | |----------|-----------------| | Person_1 | Facebook | | Person_2 | Google | | Person_3 | LinkedIn | | Person_4 | Facebook | One-Hot Encoded Columns: | Person | Facebook | Google | LinkedIn | |----------|----------|--------|----------| | Person_1 | 1 | 0 | 0 | | Person_2 | 0 | 1 | 0 | | Person_3 | 0 | 0 | 1 | | Person_4 | 1 | 0 | 0 | ``` -------------------------------- ### App Deleted Event Webhook Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-webhooks.htm Example of the JSON request received when an app is deleted. This webhook provides details about the deleted app. ```APIDOC ## POST /api/v1/webhooks/{id} ### Description This endpoint receives webhook notifications for the 'App Deleted' event. ### Method POST ### Endpoint `https:///api/v1/webhooks/{id}` ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier for the webhook. #### Query Parameters None #### Request Body - **cloudEventsVersion** (string) - Required - The version of the CloudEvents specification. - **source** (string) - Required - The source of the event. - **contentType** (string) - Required - The content type of the event payload. - **eventId** (string) - Required - A unique identifier for the event. - **eventTime** (string) - Required - The timestamp when the event occurred. - **eventTypeVersion** (string) - Required - The version of the event type. - **eventType** (string) - Required - The type of the event (e.g., `com.qlik.v1.app.deleted`). - **extensions** (object) - Optional - Additional context for the event. - **ownerId** (string) - The ID of the owner. - **tenantId** (string) - The ID of the tenant. - **userId** (string) - The ID of the user. - **data** (object) - Required - The event data payload. - **attributes** (object) - Required - Attributes of the deleted app. - **id** (string) - The ID of the deleted app. - **name** (string) - The name of the deleted app. - **createdDate** (string) - The date the app was created. - **modifiedDate** (string) - The date the app was last modified. - **owner** (string) - The owner of the app. - **ownerId** (string) - The ID of the app owner. - **published** (boolean) - Indicates if the app was published. - **hasSectionAccess** (boolean) - Indicates if section access is enabled. ### Request Example ```json { "cloudEventsVersion": "0.1", "source": "com.qlik/engine", "contentType": "application/json", "eventId": "e65c1481-e8a-4be-a5ca-27dfcde077d7", "eventTime": "2021-03-08T14:51:29Z", "eventTypeVersion": "1.0.0", "eventType": "com.qlik.v1.app.deleted", "extensions": { "ownerId": "vNRGrDZIypJzauw59BbpvkRhqbmI", "tenantId": "oZcMPa_1PwH4FUdrh6839YHHdEJN", "userId": "vNRGrDZIypJtcGTzauw59BbpqbmI" }, "data": { "attributes": { "id": "0984fec4-aa8c-4253-b1d1-4fd4f9c78", "name": "New App", "createdDate": "2021-03-08T14:51:28.888Z", "modifiedDate": "2021-03-08T14:51:29.316Z", "owner": "auth0|b62a17c577a4abe6e807b07d18c4d82286352542d633d120100b03fb11", "ownerId": "vNRGrDZIypJtcGTzauw59BbpvbmI", "published": false, "hasSectionAccess": false } } } ``` ### Response #### Success Response (200) Typically, a 200 OK response is expected, acknowledging receipt of the webhook. #### Response Example ```json { "status": "received" } ``` ``` -------------------------------- ### Measure for Sales Aggregation Example Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm This Qlik Sense measure expression calculates the total sales for each product within the context of a pivot table. It uses the Sum function to aggregate the 'Sales' field. This measure is used in the 'Sum scenario aggregating sales data' example. ```qlikview =Sum(Sales) ``` -------------------------------- ### Configure Virtual Proxy in Qlik Management Console Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/qlik-sense-extension.htm This guide details the configuration of a virtual proxy within the Qlik Management Console (QMC) to facilitate session sharing between Qlik Alerting and Qlik Sense when they are on different machines but within the same domain. Key settings include prefix, session cookie header name, cookie sharing, authentication pattern, server node, and session cookie domain. ```text 1. In the Qlik Management Console, click Virtual proxies under Configure system. 2. Click Add new. 3. Under Identification, set Prefix as qawextension. 4. Specify X-Qlik-Session-qawextension as the Session cookie header name. 5. For Session cookie isolation, select Cookie sharing. This setting allows cookie sharing with Qlik Alerting, which is required for user validation. 6. Under Authentication, for Windows authentication pattern, type Windows. 7. Under Load balancing, specify Central as the Server node. 8. In the Session cookie domain field, specify your premises domain (if Qlik Alerting and Qlik Sense are installed on the same domain). 9. Click Apply. ``` -------------------------------- ### Qlik Sense Dynamic Bookmark Selection Expressions Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Bookmarks/create-bookmark.htm Examples of selection expressions used to create dynamic bookmarks in Qlik Sense. These expressions can be text, numeric, or compound searches to define specific data subsets. ```qlik =YearMonth>=Quarterstart(Now(),-1) ``` ```qlik =Sum(Sales)>1000000 ``` ```qlik =ShippedStatus<>'Shipped' ``` -------------------------------- ### Qlik Mode() Function Examples Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/mode.htm Demonstrates the usage of the Mode() function in Qlik Sense for finding the most frequent value in a dataset. It covers basic usage, handling of non-unique values, and the impact of TOTAL and set analysis qualifiers. ```qlik Mode(UnitSales) ``` ```qlik Mode(Customer) ``` ```qlik Mode(TOTAL UnitSales) ``` ```qlik Mode({1} TOTAL UnitSales) ``` -------------------------------- ### Configure Qlik Alerting with Virtual Proxy Settings Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/qlik-sense-extension.htm This procedure describes how to configure Qlik Alerting to use the virtual proxy settings previously established in the Qlik Management Console. This is crucial for sharing the session cookie across the specified domain, enabling user validation for the extension. The steps cover both initial setup and modification of existing configurations. ```text 1. Log in to Qlik Alerting using your admin credentials. 2. Navigate to the Admin menu and click Sources. 3. Click Edit source for your source. 4. Specify the same virtual proxy settings that you set earlier to share the session cookie across the specified domain: 1. Prefix is qawextension. 2. Specify the Session cookie header name as X-Qlik-Session-extension. 3. Click Apply. ``` -------------------------------- ### Get Project Task Runtime State Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm Retrieves the runtime state of a specific data task within a project. This endpoint has been enhanced with new fields for detailed real-time monitoring. ```APIDOC ## GET /v1/di-projects/{projectId}/di-tasks/{dataTaskId}/runtime/state ### Description Retrieves the runtime state of a specific data task, including new fields for enhanced monitoring. ### Method GET ### Endpoint /v1/di-projects/{projectId}/di-tasks/{dataTaskId}/runtime/state ### Parameters #### Path Parameters - **projectId** (string) - Required - The ID of the project. - **dataTaskId** (string) - Required - The ID of the data task. #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **runState** (string) - The current run state of the task. - **startTime** (string) - The start time of the task run. - **endTime** (string) - The end time of the task run. - **duration** (number) - The duration of the task run in seconds. - **datasetCount** (object) - Count of datasets, including those in error. - **total** (integer) - Total number of datasets. - **error** (integer) - Number of datasets in error. - **gatewayID** (string) - The ID of the gateway. - **gatewayName** (string) - The name of the gateway. - **gatewayTaskName** (string) - The name of the task on the gateway. - **latency** (object) - Latency information for continuous tasks. - **value** (number) - The latency value. - **unit** (string) - The unit of the latency value. #### Response Example ```json { "runState": "COMPLETED", "startTime": "2023-10-27T10:00:00Z", "endTime": "2023-10-27T10:05:00Z", "duration": 300, "datasetCount": { "total": 10, "error": 1 }, "gatewayID": "gw-123", "gatewayName": "MyGateway", "gatewayTaskName": "MyTaskOnGateway", "latency": { "value": 5, "unit": "seconds" } } ``` ``` -------------------------------- ### Import Qlik Alerting Extension Zip File Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/qlik-sense-extension.htm This section outlines the steps to import the Qlik Alerting extension zip file into the Qlik Management Console (QMC). It assumes the user has the necessary administrative privileges and the extension zip file obtained from the Qlik Alerting installation. ```text 1. In the Qlik Management Console (QMC), and with a user with appropriate access, navigate to the extensions section. 2. If you already have an existing extension for Qlik Alerting installed then remove this. 3. Import the Qlik Alerting extension zip file. ``` -------------------------------- ### Creating OAuth Clients Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm Information on how tenant administrators can create and manage OAuth clients to integrate applications with Qlik Cloud. ```APIDOC ## Creating OAuth Clients Tenant administrators can manage OAuth clients within the Administration activity center on the OAuth page. OAuth clients enable secure integration of client applications with Qlik Cloud to access resources. ### Limits on OAuth Clients The following limits apply to OAuth clients: - Maximum of 5 redirect URLs per client. - Maximum of 5 allowed origins per client. - Maximum of 5 client secrets per client. - Maximum of 200 OAuth clients per tenant. ``` -------------------------------- ### Restore MongoDB Database with mongorestore Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/administration.htm This command restores the 'qlikalerting' MongoDB database from a backup. It requires navigating to the MongoDB bin directory and specifying the path to the unzipped backup folder. Ensure the path to mongorestore and the backup folder are correct. ```bash cd "C:\Program Files\MongoDB\Server\4.2\bin" mongorestore "D:\backups\Backup Name" ``` -------------------------------- ### Project Creation API Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm API for creating a new project. ```APIDOC ## POST /v1/di-projects ### Description Creates a new project. ### Method POST ### Endpoint /v1/di-projects ### Parameters #### Request Body - **projectName** (string) - Required - The name of the new project. - **projectDescription** (string) - Optional - A description for the new project. ### Request Example ```json { "example": { "projectName": "New Project", "projectDescription": "This is a new project created programmatically." } } ``` ### Response #### Success Response (200) - **projectId** (string) - The ID of the newly created project. - **message** (string) - Creation status message. #### Response Example ```json { "example": { "projectId": "generated-project-id", "message": "Project created successfully." } } ``` ``` -------------------------------- ### Configure TLS Versions and Custom Headers in Qlik Alerting Source: https://help.qlik.com/en-US/alerting/November2025/Content/QlikAlerting/administration.htm This JSON configuration demonstrates how to set security options such as enabling or disabling specific TLS versions (TLS 1.0, 1.1, 1.2) and adding custom security headers for CORS and other restrictions. These settings should be added to the default.json file before the 'gateway' object. ```json { "allowInsecure": { "TLSv1": false, "TLSv1_1": false, "TLSv1_2": true }, "customHeaders": {}, "gateway": { "ip": "localhost", "httpsPort": 4552, "https": true }, ... } ``` -------------------------------- ### Available OAuth Scopes Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm Lists the available OAuth scopes and their associated permissions for integrating with Qlik Cloud. ```APIDOC ## Available OAuth Scopes This section details the available OAuth scopes and their corresponding permissions for accessing Qlik Cloud resources. ### Scope Details - **user_default**: Full access to your account and content. - **admin_classic**: Full administrator access to your tenant. (Not supported with Single-page app or Native client types). - **admin.apps**: Read and manage all apps in the tenant. - **admin.apps:export**: Export all apps in the tenant. - **admin.apps:read**: Read all apps in the tenant. - **admin.automations**: Read and manage all automations in the tenant. - **admin.automations:read**: Read all automations in the tenant. - **admin.direct-access-gateways:remote_configuration**: Edit Direct Access gateway settings. - **admin.spaces**: Read and manage all spaces in the tenant. - **admin.spaces:read**: Read all spaces in the tenant. - **apps**: Read and manage your apps. - **apps:export**: Export your apps. - **apps:read**: Read your apps. - **automations**: Read and manage your automations. - **automations:read**: Read your automations. - **automl-experiments**: Read and manage your ML experiments. - **automl-deployments**: Read and manage your ML deployments. - **direct-access-gateways:consume_data**: Load data via Direct Access gateway connectors. - **identity.email:read**: Read your email address. - **identity.name:read**: Read your full name. - **identity.picture:read**: Read your profile picture. - **identity.subject:read**: Read your user subject identifier. - **spaces.data**: Read and manage your data spaces. - **spaces.data:read**: Read your data spaces. - **spaces.managed**: Read and manage your managed spaces. - **spaces.managed:read**: Read your managed spaces. - **spaces.shared**: Read and manage your shared spaces. - **spaces.shared:read**: Read your shared spaces. - **offline_access**: Access resources while you are offline. (Not supported with Single-page app client type). *Note: This list reflects scopes supported in the initial release. A complete list is available on the Qlik Developer Portal Scopes.* ``` -------------------------------- ### Load Script for Sales Data Analysis Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/ColorFunctions/ARGB.htm This Qlik load script defines a dataset with customer sales figures, including sales value, cost, and profit margin. It prepares the data for analysis and visualization within Qlik Sense or QlikView. ```qlik Example: LOAD * Inline [ Customer, SalesValue, Cost, ProfitMargin Customer A, 500, 300, 40% Customer B, 800, 750, 6.25% Customer C, 400, 300, 25% Customer D, 600, 550, 8.33% Customer E, 900, 700, 22.22% ]; ``` -------------------------------- ### Load Script for Actual vs. Projected Sales Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/ColorFunctions/ARGB.htm This Qlik load script prepares a dataset containing actual and projected sales figures by country. It is used to compare sales performance against forecasts within Qlik applications. ```qlik Example: Load * Inline [ Country, ActualSales, ProjectedSales Sweden, 100000, 50000 Germany, 125000, 175000 Norway, 74850, 68500 Ireland, 45000, 48000 Sweden, 98000, 50000 Germany, 115000, 175000 Norway, 71850, 68500 Ireland, 31000, 48000 ]; ``` -------------------------------- ### Setting up a QlikView Governance Dashboard Scan Profile Source: https://help.qlik.com/en-US/governance-dashboard This section outlines how users and administrators configure data governance scan profiles within the QlikView Desktop interface. Scan profiles define the data sources for the dashboard, including directories for QVW/QVD files, server/publisher logs, and the QlikView Repository path. Multiple profiles can be managed and run concurrently. ```qlikviewscript // Example of a scan profile configuration (conceptual) // This would typically be within the QlikView Desktop interface or a UserConfig script // Directory containing QVW and QVD files, with optional regex for exclusion SET QVW_QVD_DIR = 'C:\\QlikView\\Applications\\'; SET EXCLUDE_PATTERN = '*.tmp'; // Example: Exclude temporary files // Directory containing QlikView Server log files SET SERVER_LOG_DIR = 'C:\\QlikView\\Server\\Logs\\'; // Directory containing QlikView Publisher log files SET PUBLISHER_LOG_DIR = 'C:\\QlikView\\Publisher\\Logs\\'; // Path to the QlikView Repository SET REPOSITORY_PATH = 'C:\\ProgramData\\QlikTech\\QlikViewServer\\QlikViewServer.jds'; // To create additional scan profiles, you can copy the Governance Dashboard 2.0.qvw // and modify the settings on the Configuration sheet, or use a UserConfig script. ``` -------------------------------- ### Project Export/Import API Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm APIs for exporting project contents as a .zip file and importing project contents from a .zip file. ```APIDOC ## POST /v1/di-projects/{projectId}/actions/export ### Description Exports the project contents as a .zip file. ### Method POST ### Endpoint /v1/di-projects/{projectId}/actions/export ### Parameters #### Path Parameters - **projectId** (string) - Required - The ID of the project to export. ### Request Example ```json { "example": "POST /v1/di-projects/{projectId}/actions/export" } ``` ### Response #### Success Response (200) - **zipFile** (file) - The exported project as a zip file. #### Response Example ```json { "example": "[Binary zip file content]" } ``` ## POST /v1/di-projects/{projectId}/actions/import ### Description Imports project contents from a .zip file. ### Method POST ### Endpoint /v1/di-projects/{projectId}/actions/import ### Parameters #### Path Parameters - **projectId** (string) - Required - The ID of the project to import into. #### Request Body - **zipFile** (file) - Required - The zip file containing the project contents. ### Request Example ```json { "example": "POST /v1/di-projects/{projectId}/actions/import" } ``` ### Response #### Success Response (200) - **message** (string) - Import status message. #### Response Example ```json { "example": "Project imported successfully." } ``` ``` -------------------------------- ### Qlik AutoML Connector for Data Loading Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm Explains how the Qlik AutoML connector loads data from the Qlik AutoML platform into Qlik Cloud via an analytics connection. It enables applying machine learning models to data and sending predictions back to Qlik Cloud. ```qlik This connector can apply your machine learning models (ML deployments) to data using an analytics connection. The connector sends data to specific predictive endpoints, returning predictions that can be loaded into Qlik Cloud. ``` -------------------------------- ### Implementing Calculation Conditions on Objects Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Shows how to use calculation conditions on objects, particularly those with intensive calculations or many records, to control rendering. This prevents the creation of excessively large hypercubes when no selections are made. ```qlik // Example: Visualization renders only when one country is selected or possible GetSelectedCount([Country]) = 1 OR GetPossibleCount([Country]) = 1 ``` -------------------------------- ### Using Set Analysis Instead of If() in Aggregations Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Demonstrates how to replace the inefficient If() function within aggregations with set analysis for improved performance. Set analysis is applied before aggregation, allowing for faster responses and caching. ```qlik // Avoid this: Sum(If(Year = 2023, Sales)) // Use this instead: Sum({} Sales) ``` -------------------------------- ### Qlik Load Script for Mode Scenario - Sales Data Anomalies Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/mode.htm This Qlik load script prepares a dataset for analyzing sales anomalies. It loads data including Date, Product, Category, and Sales fields using an inline load. This dataset is used to demonstrate how the Mode function can identify typical and atypical sales figures by comparing product-specific modes with the overall dataset mode. ```qlik Example: Load * inline [ Date, Product, Category, Sales 2024-01-01, Apple, Fruit, 100 2024-01-15, Banana, Fruit, 80 2024-01-30, Carrot, Vegetable, 50 2024-02-05, Apple, Fruit, 100 2024-02-20, Banana, Fruit, 90 2024-02-28, Carrot, Vegetable, 60 2024-03-10, Apple, Fruit, 110 2024-03-22, Banana, Fruit, 80 2024-03-31, Carrot, Vegetable, 50 2024-04-10, Apple, Fruit, 125 2024-04-22, Banana, Fruit, 60 2024-04-31, Carrot, Vegetable, 80 ]; ``` -------------------------------- ### Project Validation and Preparation APIs Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm APIs for validating and preparing tasks within projects, either at the project level or task level. ```APIDOC ## POST /api/v1/di-projects/{ProjectID}/actions/validate ### Description Validates all tasks in a project. ### Method POST ### Endpoint /api/v1/di-projects/{ProjectID}/actions/validate ### Parameters #### Path Parameters - **ProjectID** (string) - Required - The ID of the project. ### Response #### Success Response (200) - **actionId** (string) - The ID of the validation action. - **status** (string) - The status of the validation action. #### Response Example ```json { "example": { "actionId": "validation-action-123", "status": "pending" } } ``` ## POST /api/v1/di-projects/{ProjectID}/actions/prepare ### Description Prepares all tasks in a project. ### Method POST ### Endpoint /api/v1/di-projects/{ProjectID}/actions/prepare ### Parameters #### Path Parameters - **ProjectID** (string) - Required - The ID of the project. ### Response #### Success Response (200) - **actionId** (string) - The ID of the preparation action. - **status** (string) - The status of the preparation action. #### Response Example ```json { "example": { "actionId": "preparation-action-456", "status": "pending" } } ``` ## POST /api/v1/di-projects/{ProjectID}/di-tasks/{dataTaskID}/actions/validate ### Description Validates a specific task within a project. ### Method POST ### Endpoint /api/v1/di-projects/{ProjectID}/di-tasks/{dataTaskID}/actions/validate ### Parameters #### Path Parameters - **ProjectID** (string) - Required - The ID of the project. - **dataTaskID** (string) - Required - The ID of the data task. ### Response #### Success Response (200) - **actionId** (string) - The ID of the validation action. - **status** (string) - The status of the validation action. #### Response Example ```json { "example": { "actionId": "task-validation-789", "status": "pending" } } ``` ## POST /api/v1/di-projects/{ProjectID}/di-tasks/{dataTaskID}/actions/prepare ### Description Prepares a specific task within a project. ### Method POST ### Endpoint /api/v1/di-projects/{ProjectID}/di-tasks/{dataTaskID}/actions/prepare ### Parameters #### Path Parameters - **ProjectID** (string) - Required - The ID of the project. - **dataTaskID** (string) - Required - The ID of the data task. ### Response #### Success Response (200) - **actionId** (string) - The ID of the preparation action. - **status** (string) - The status of the preparation action. #### Response Example ```json { "example": { "actionId": "task-preparation-101", "status": "pending" } } ``` ``` -------------------------------- ### Using Numeric Flags for Set Analysis Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Explains the efficiency of using numeric flags within the script for set analysis compared to string comparisons or multiplication operations. ```qlik // Script example: Load ..., IF(Region = 'North', 1, 0) AS IsNorthRegion FROM ...; // Set analysis using the flag: Sum({} Sales) ``` -------------------------------- ### Qlik Cloud: Create and Download Public Key/Certificate (PEM) Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-idp-token-decryption.htm This snippet demonstrates the process within Qlik Cloud's administration interface to generate a new key pair for OIDC identity providers. It involves selecting a key type (RSA 2048 or RSA 4096) and then provides options to copy the public key or download the certificate, both in PEM format, for use with your identity provider. ```text 1. In the Administration activity center, go to Identity provider. 2. Create a new IdP configuration. 3. Expand the Advanced options section. 4. Under Token signature verification and decryption, choose the key type: RSA 2048 or RSA 4096. 5. Click Create. 6. In the confirmation dialog: * Click to copy the public key. * Click to download the key as a certificate. ``` -------------------------------- ### Load Data and Calculate Max Values in Qlik Sense Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/max.htm Loads sample sales data and demonstrates calculating various maximum values using the Max function in Qlik Sense chart expressions. Includes finding the highest value, second highest value, and total maximums with different aggregation scopes. ```qlikview Example: LOAD * inline [ Customer|UnitSales|UnitPrice Astrida|4|16 Astrida|10|15 Astrida|9|9 Betacab|5|10 Betacab|2|20 Betacab||25 Canutility|8|15 Canutility||19 ] (delimiter is '|'); ``` -------------------------------- ### Configuring API Key Settings Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-generate-api-keys.htm Administrators can configure settings related to API key expiration and the maximum number of active API keys per user. ```APIDOC ## API Key Settings Configuration ### Description Allows administrators to set global policies for API keys within the Qlik Cloud tenant. ### Method N/A (Configuration via UI) ### Endpoint Administration Activity Center -> Settings -> Feature control -> API keys ### Parameters #### Settings - **Change maximum token expiration** (duration) - Optional - Sets the expiration period for newly generated API tokens. No upper limit. - **Change maximum of active API keys per user** (integer) - Optional - Sets the limit for how many API keys a user can have. Maximum value is 1000. This limit applies only to new keys. ``` -------------------------------- ### Project Bindings API Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/saas-change-log.htm APIs for retrieving and updating bindings (project variables) for a specified project. ```APIDOC ## GET /v1/di-projects/{projectId}/bindings ### Description Retrieves the bindings for a specified project. ### Method GET ### Endpoint /v1/di-projects/{projectId}/bindings ### Parameters #### Path Parameters - **projectId** (string) - Required - The ID of the project to retrieve bindings for. ### Response #### Success Response (200) - **bindings** (object) - A key-value map of project bindings. #### Response Example ```json { "example": { "bindingName1": "bindingValue1", "bindingName2": "bindingValue2" } } ``` ## PUT /v1/di-projects/{projectId}/bindings ### Description Updates bindings for a specified project. ### Method PUT ### Endpoint /v1/di-projects/{projectId}/bindings ### Parameters #### Path Parameters - **projectId** (string) - Required - The ID of the project to update bindings for. #### Request Body - **bindings** (object) - Required - A key-value map of bindings to update. ### Request Example ```json { "example": { "bindings": { "bindingName1": "newValue1", "bindingName3": "newValue3" } } } ``` ### Response #### Success Response (200) - **message** (string) - Update status message. #### Response Example ```json { "example": "Bindings updated successfully." } ``` ``` -------------------------------- ### Avoiding String Comparisons in Favor of Set Analysis or Flags Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Recommends avoiding inefficient string comparison functions like Match(), MixMatch(), and WildMatch(). Instead, use set analysis or pre-calculated flags in the script for better performance. ```qlik // Avoid this: If(Match(Category, 'Electronics', 'Appliances') > 0, Sales) // Prefer this (using set analysis): Sum({} Sales) // Or this (using a pre-calculated flag): // Script: Load ..., IF(Category = 'Electronics' OR Category = 'Appliances', 1, 0) AS IsElectronicOrAppliance; // Expression: Sum({} Sales) ``` -------------------------------- ### Updating Load Script Path After Moving Data File Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-data-files.htm Demonstrates how to update a load script when a data file has been moved to a new location or space in Qlik Cloud. This is crucial for ensuring data reloads are successful after file path changes. ```qlikview LOAD * FROM [lib://DataFiles/orders.csv]; -- After moving orders.csv to TeamSharedSpace/Sales Analysis folder: LOAD * FROM [lib://TeamSharedSpace:DataFiles/SalesAnalysis/orders.csv]; ``` -------------------------------- ### Qlik Cloud: Validate Identity Provider Configuration Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-idp-token-decryption.htm This snippet outlines the steps to validate an OIDC identity provider configuration in Qlik Cloud after setting up the key pair. It involves returning to the administration center, selecting the IdP configuration, initiating the validation process, and completing an on-screen login to confirm successful key pair recognition. ```text 1. On your IdP configuration, click and select Validate. 2. Click Validate to start the validation process. 3. Follow the instructions on screen to log in and confirm that the key pair is correctly set up and recognized. ``` -------------------------------- ### Generating a New API Key Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-generate-api-keys.htm Users with the necessary permissions can generate new API keys, providing a description and setting an expiration time. ```APIDOC ## Generate API Key ### Description Generates a new API key for user authentication. Requires 'Manage API keys' permission. ### Method N/A (Generation via UI) ### Endpoint User Profile Icon -> Settings -> API keys -> Generate new key ### Parameters #### Request Body - **description** (string) - Required - A description for the API key. - **expirationTime** (string) - Required - The expiration time for the API key (e.g., '2024-12-31T23:59:59Z'). ### Response #### Success Response - **apiKey** (string) - The generated API key. This value cannot be retrieved again after generation. - **description** (string) - The description provided for the key. - **expiresAt** (string) - The expiration timestamp of the key. - **createdAt** (string) - The creation timestamp of the key. ### Request Example 1. Click user profile icon and select 'Settings'. 2. Go to the 'API keys' section. 3. Click 'Generate new key'. 4. Enter a description (e.g., "My Application Key"). 5. Set an expiration time (e.g., "2025-01-01T00:00:00Z"). 6. Click 'Generate'. 7. Copy and securely store the generated API key. ``` -------------------------------- ### Optimizing Aggregations with Fields from the Same Table Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Illustrates the performance benefit of having all fields used in an aggregation reside within the same table. This avoids the single-threaded join step required when fields are in different tables. ```qlik // Less efficient (fields in different tables): Sum(Quantity * ListPrice) // Assuming Quantity is in fact table, ListPrice in product table // More efficient (fields in the same table): Sum(SalesData.Quantity * SalesData.ListPrice) // Assuming both fields are in SalesData table ``` -------------------------------- ### Leveraging Set Analysis for Data Subsets Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Explains the use of set analysis to define specific data subsets, overriding normal selections. This is a powerful technique for performance optimization and complex analysis. ```qlik // Example: Sum of sales for a specific year, ignoring current selections Sum({} Sales) ``` -------------------------------- ### Minimizing Aggr() Function Usage Source: https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/app-performance.htm Highlights the importance of using the Aggr() function sparingly and correctly. Incorrect usage, especially when dimensions vary from those within Aggr(), can lead to performance issues and inaccurate results. ```qlik // Example of Aggr() usage (use with caution): Aggr(Sum(Sales), ProductGroup) ```