Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
NPrinting has a library of APIs that can be used to customize many native NPrinting functions outside the NPrinting Web Console.
An example of two of the more common capabilities available via NPrinting APIs are as follows
These and many other public NPrinting APIs can be found here: Qlik NPrinting API
In the Qlik Sense data load editor of your Qlik Sense app, two REST connections are required (These two REST Connectors must also be configured in the QlikView Desktop application>load where the API's are used. See Nprinting Rest API Connection through QlikView desktop)
Requirements of REST user account:
Creating REST "GET" connections
Note: Replace QlikServer3.domain.local with the name and port of your NPrinting Server
NOTE: replace domain\administrator with the domain and user name of your NPrinting service user account
Creating REST "POST" connections
Note: Replace QlikServer3.domain.local with the name and port of your NPrinting Server
NOTE: replace domain\administrator with the domain and user name of your NPrinting service user account
Ensure to enter the 'Name' Origin and 'Value' of the Qlik Sense (or QlikView) server address in your POST REST connection only.
Replace https://qlikserver1.domain.local with your Qlik sense (or QlikView) server address.
Ensure that the 'Origin' Qlik Sense or QlikView server is added as a 'Trusted Origin' on the NPrinting Server computer
NOTE: The information in this article is provided as-is and to be used at own discretion. NPrinting API usage requires developer expertise and usage therein is significant customization outside the turnkey NPrinting Web Console functionality. Depending on tool(s) used, customization(s), and/or other factors ongoing, support on the solution below may not be provided by Qlik Support.
The event payloads emitted by the Qlik Cloud webhooks service are changing. Qlik is replacing a legacy event format with a new cloud event format.
Any legacy events (such as anything not already cloud event compliant) will be updated to a temporary hybrid event containing both legacy and cloud event payloads. This will start on or after November 3, 2025.
Please consider updating your integrations to use the new fields once added.
A formal deprecation with at least a 6-month notice will be provided via the Qlik Developer changelog. After that period, hybrid events will be replaced entirely by cloud events.
Webhook automations in Qlik Automate will not be impacted at this time.
The webhooks service in Qlik Cloud enables you to subscribe to notifications when your Qlik Cloud tenant generates specific events.
At the time of writing, the following legacy events are available:
Service | Event name | Event type | When is event generated |
API keys | API key validation failed | com.qlik.v1.api-key.validation.failed | The tenant tries to use an API key which is expired or revoked |
Apps (Analytics apps) | App created | com.qlik.v1.app.created | A new analytics app is created |
Apps (Analytics apps) | App deleted | com.qlik.v1.app.deleted | An analytics app is deleted |
Apps (Analytics apps) | App exported | com.qlik.v1.app.exported | An analytics app is exported |
Apps (Analytics apps) | App reload finished | com.qlik.v1.app.reload.finished | An analytics app has finished refreshing on an analytics engine (not it may not be saved yet) |
Apps (Analytics apps) | App published | com.qlik.v1.app.published | An analytics app is published from a personal or shared space to a managed space |
Apps (Analytics apps) | App data updated | com.qlik.v1.app.data.updated | An analytics app is saved to persistent storage |
Automations (Automate) | Automation created | com.qlik.v1.automation.created | A new automation is created |
Automations (Automate) | Automation deleted | com.qlik.v1.automation.deleted | An automation is deleted |
Automations (Automate) | Automation updated | com.qlik.v1.automation.updated | An automation has been updated and saved to persistent storage |
Automations (Automate) | Automation run started | com.qlik.v1.automation.run.started | An automation run began execution |
Automations (Automate) | Automation run failed | com.qlik.v1.automation.run.failed | An automation run failed |
Automations (Automate) | Automation run ended | com.qlik.v1.automation.run.ended | An automation run finished successfully |
Reloads (Analytics reloads) | Reload finished | com.qlik.v1.reload.finished | An analytics app has been refreshed and saved |
Users | User created | com.qlik.v1.user.created | A new user is created |
Users | User deleted | com.qlik.v1.user.deleted | A user is deleted |
Any events not listed above will remain as-is, as they already adhere to the cloud event format.
Each event will change to a new structure. The details included in the payloads will remain the same, but some attributes will be available in a different location.
The changes being made:
data
object.cloudEventsVersion
is replaced by specversion
. For most events this will be from cloudEventsVersion: 0.1
to specversion: 1.0+
.contentType
is replaced by datacontentype
to describe the media type of the data object.eventId
is replaced by id
.eventTime
is replaced by time
.eventTypeVersion
is not present in the future schema.eventType
is replaced by type
.extensions.actor
is replaced by authtype
and authclaims
.extensions.updates
is replaced by data._updates
extensions.meta
, and any other direct objects on extensions
are replaced by equivalents in data
where relevant.extensions
object will be moved to the root and renamed to be lowercase if needed, such astenantId
,userId
,spaceId
, etc.
This is the current legacy payload of the automation created event:
{
"cloudEventsVersion": "0.1",
"source": "com.qlik/automations",
"contentType": "application/json",
"eventId": "f4c26f04-18a4-4032-974b-6c7c39a59816",
"eventTime": "2025-09-01T09:53:17.920Z",
"eventTypeVersion": "1.0.0",
"eventType": "com.qlik.v1.automation.created",
"extensions": {
"ownerId": "637390ef6541614d3a88d6c3",
"spaceId": "685a770f2c31b9e482814a4f",
"tenantId": "BL4tTJ4S7xrHTcq0zQxQrJ5qB1_Q6cSo",
"userId": "637390ef6541614d3a88d6c3"
},
"data": {
"connectorIds": {},
"containsBillable": null,
"createdAt": "2025-09-01T09:53:17.000000Z",
"description": null,
"endpointIds": {},
"id": "cae31848-2825-4841-bc88-931be2e3d01a",
"lastRunAt": null,
"lastRunStatus": null,
"name": "hello world",
"ownerId": "637390ef6541614d3a88d6c3",
"runMode": "manual",
"schedules": {},
"snippetIds": {},
"spaceId": "685a770f2c31b9e482814a4f",
"state": "available",
"tenantId": "BL4tTJ4S7xrHTcq0zQxQrJ5qB1_Q6cSo",
"updatedAt": "2025-09-01T09:53:17.000000Z"
}
}
This will be the temporary hybrid event for automation created:
{
// cloud event fields
"id": "f4c26f04-18a4-4032-974b-6c7c39a59816",
"time": "2025-09-01T09:53:17.920Z",
"type": "com.qlik.v1.automation.created",
"userid": "637390ef6541614d3a88d6c3",
"ownerid": "637390ef6541614d3a88d6c3",
"tenantid": "BL4tTJ4S7xrHTcq0zQxQrJ5qB1_Q6cSo",
"description": "hello world",
"datacontenttype": "application/json",
"specversion": "1.0.2",
// legacy event fields
"eventId": "f4c26f04-18a4-4032-974b-6c7c39a59816",
"eventTime": "2025-09-01T09:53:17.920Z",
"eventType": "com.qlik.v1.automation.created",
"extensions": {
"userId": "637390ef6541614d3a88d6c3",
"spaceId": "685a770f2c31b9e482814a4f",
"ownerId": "637390ef6541614d3a88d6c3",
"tenantId": "BL4tTJ4S7xrHTcq0zQxQrJ5qB1_Q6cSo",
},
"contentType": "application/json",
"eventTypeVersion": "1.0.0",
"cloudEventsVersion": "0.1",
// unchanged event fields
"data": {
"connectorIds": {},
"containsBillable": null,
"createdAt": "2025-09-01T09:53:17.000000Z",
"description": null,
"endpointIds": {},
"id": "cae31848-2825-4841-bc88-931be2e3d01a",
"lastRunAt": null,
"lastRunStatus": null,
"name": "hello world",
"ownerId": "637390ef6541614d3a88d6c3",
"runMode": "manual",
"schedules": {},
"snippetIds": {},
"spaceId": "685a770f2c31b9e482814a4f",
"state": "available",
"tenantId": "BL4tTJ4S7xrHTcq0zQxQrJ5qB1_Q6cSo",
"updatedAt": "2025-09-01T09:53:17.000000Z"
},
"source": "com.qlik/automations"
}
When querying the /api/v1/apps endpoint in Qlik Cloud Analytics, the results also include Scripts, Data Flows, and Table Recipes.
Is there a way to see only the apps?
Example output:
{
"attributes": {
"_resourcetype": "app",
"createdDate": "2025-08-27T06:31:14.767Z",
"custom": {},
"description": "",
"dynamicColor": "",
"encrypted": true,
"hasSectionAccess": false,
"id": "54b3b705-f00f-48ce-bbff-2497926f79e0",
"isDirectQueryMode": false,
"lastReloadTime": "",
"modifiedDate": "2025-08-27T06:31:15.215Z",
"name": "THIS IS ACTUALLY A TABLE RECIPE",
"originAppId": "",
"owner": "auth0|omitted",
"ownerId": "omitted",
"publishTime": "",
"published": false,
"thumbnail": "",
"usage": "SINGLE_TABLE_PREP"
},
"create": [
{
"canCreate": true,
"resource": "sheet"
...
This is working as designed. From the Qlik Cloud Analytics perspective, Scripts, Data Flows, and Table Recipes are considered apps.
To recognize them, the “usage” attribute needs to be checked:
"usage": “ANALYTICS” → apps
"usage": "SINGLE_TABLE_PREP" → table recipes
"usage": "DATA_PREPARATION" → scripts
"usage": "DATAFLOW_PREP" → data flows
This article explains how the Qlik Sense app button component can be used to send custom parameters directly to the automation without requiring a temporary bookmark. This can be useful when creating a writeback solution on a big app as creating and applying bookmarks could take a bit longer for big apps which adds delays to the solution. More information on the native writeback solution can be found here: How to build a native write back solution.
Contents
If you want to limit this to a specific group of users, you can leave the automation in Manual run mode and place it in a shared space that this group of users can access. More information about this is available here: Introducing Automation Sharing and Collaboration. Make sure to disable the Run mode: triggered option in the button configuration.
Environment
The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s), and/or other factors, ongoing support on the solution below may not be provided by Qlik Support.
This article provides an overview of how to send straight table data to Microsoft Teams as a table using Qlik Automate.
The template is available on the template picker. You can find it by navigating to Add new -> New automation -> Search templates, searching for 'Send straight table data to Microsoft Teams as a table' in the search bar, and clicking the Use template option.
You will find a version of this automation attached to this article: "Send-straight-table-data-to-Microsoft-Teams-as-a-table.json".
Content:
The following steps describe how to build the demo automation:
An example output of the table sent to the Teams channel:
The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s), and/or other factors, ongoing support on the solution below may not be provided by Qlik Support.
This article provides an overview of how to send straight table data to email as an HTML table using Qlik Automate.
The template is available on the template picker. You can find it by navigating to Add new -> New automation -> Search templates and searching for 'Send straight table data to email as table' in the search bar, and clicking the Use template option.
You will find a version of this automation attached to this article: "Send-straight-table-data-to-email -as-HTML-table.json".
Content:
The following steps describe how to build the demo automation:
An example output of the email sent:
The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s)andor other factors, ongoing support on the solution below may not be provided by Qlik Support.
How to export more than 100k cells using Get Straight Table Data Block
This article provides an overview to get started with the OpenAI connector in Qlik Automate.
The OpenAI connector offers developers a range of powerful natural language processing capabilities. It allows for tasks such as text generation, translating between languages, analyzing sentiment, summarizing content, and building question-answering systems. These features enable you to bring additional value to your existing automations.
Content:
Create a new automation and search for the OpenAI connector in the block library on the left side. Drag a block inside the automation editor canvas, and make sure to select the block to show the block configuration menu on the right side of the editor. Open the Connect tab in the configuration menu and provide your OpenAI API key. Visit your API Keys page to retrieve the API key you'll use in your requests.
Once the connection to your OpenAI account has been created, you can start building an automation that uses the connector.
The available blocks are:
For more details on the API, please refer to the following link.
At the time of writing this article, the Images and Audio endpoints in the OpenAI API are in beta state but can be used through the Raw API Request blocks.
This use case is based on the existing template "Analyze support ticket sentiment with Expert.ai". In this template, Expert.ai is used to predict the sentiment of new support tickets from ServiceNow. If the sentiment is deemed too negative, the automation will send an alert to a Microsoft Teams channel to inform the support team about the incident. For convenience, we'll leave out the write to MySQL and app reload part of the original template.
If you want, you could also use OpenAI to predict the sentiment instead of Expert.ai. But keep in mind that this could provide a less accurate result since the Expert.ai.
Below are a couple of tips and limitations to keep in mind when working with the OpenAI connector in automations.
{
"error": {
"message": "You exceeded your current quota, please check your plan and billing details.",
"type": "insufficient_quota",
"param": null,
"code": null
}
}
Create completion block: The model parameter, the only required parameter in this block, allows us to produce a random answer. A minimum prerequisite for a more insightful response is a model, prompt, and Max Tokens input parameter. Other input variables may be employed to narrow down the response.
Write a summary of the following data.
<|endoftext|>
Country | Population
------- | --------
United States | 329.5 million
China | 1.444 billion
India | 1.38 billion
Completion:
This data shows the population of three of the largest countries in the world. The United States has a population of 329.5 million, China has a population of 1.444 billion, and India has a population of 1.38 billion.
Max Tokens: Specifies the maximum number of tokens in the generated completion response. More information about how the token count is calculated by OpenAI can be found here: Tokenizer.
Example:50
The following parameters are optional in most use cases but could be used to fine-tune the response:
0.6
top_p
(or nucleus
) selects the most likely tokens until the cumulative probability exceeds the threshold. 0.8
3
2
0.6
0.4
5
"12345"
This capability has been rolled out across regions over time:
With the introduction of shared automations, it is now possible to create, run, and manage automations in shared spaces.
Limit the execution of an automation to specific users.
Every automation has an owner. When an automation runs, it will always run using the automation connections configured by the owner. Any Qlik connectors that are used will use the owner's Qlik account. This guarantees that the execution happens as the owner intended it to happen.
The user who created the run, along with the automation's owner at run time, are both logged in the automation run history.
These are five options on how to run an automation:
Collaborate on an automation through duplication.
Automations are used to orchestrate various tasks; from Qlik use cases like reload task chaining, app versioning, or tenant management, to action-oriented use cases like updating opportunities in your CRM, managing supply chain operations, or managing warehouse inventories.
To prevent users from editing these live automations, we're putting forward a collaborate through duplication approach. This makes it impossible for non-owners to change an automation that can negatively impact operations.
When a user duplicates an existing automation, they will become the owner of the duplicate. This means the new owner's Qlik account will be used for any Qlik connectors, so they must have sufficient permissions to access the resources used by the automation. They will also need permissions to use the automation connections required in any third-party blocks.
Automations can be duplicated through the context menu:
As it is not possible to display a preview of the automation blocks before duplication, please use the automation's description to provide a clear summary of the purpose of the automation:
The Automations Activity Centers have been expanded with information about the space in which an automation lives. The Run page now also tracks which user created a run.
Note: Triggered automation runs will be displayed as if the owner created them.
The Automations view in Administration Center now includes the Space field and filter.
The Runs view in Administration Center now includes the Executed by and Space at runtime fields and filters.
The Automations view in Automations Activity Center now includes Space field and filter.
Note: Users can configure which columns are displayed here.
The Runs view in the Automations Activity Center now includes the Space at runtime, Executed by, and Owner fields and filters.
In this view, you can see all runs from automations you own as well as runs executed by other users. You can also see runs of other users's automations where you are the executor.
To see the full details of an automation run, go to Run History through the automation's context menu. This is also accessible to non-owners with sufficient permissions in the space.
The run history view will show the automation's runs across users, and the user who created the run is indicated by the Executed by field.
The metrics tab in the automations activity center has been deprecated in favor of the automations usage app which gives a more detailed view of automation consumption.
Content:
To create a Mail connection in Qlik Automate, do the following:
The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
Installing, upgrading, and managing the Qlik Cloud Monitoring Apps has just gotten a whole lot easier! With two new Qlik Application Automation templates coupled with Qlik Data Alerts, you can now:
The above allows you to deploy the monitoring apps to your tenant with a hands-off approach. Dive into the individual components below.
Some monitoring apps are designed for specific Qlik Cloud subscription types. Refer to the compatibility matrix within the Qlik Cloud Monitoring Apps repository.
Content:
This automation template is a fully guided installer/updater for the Qlik Cloud Monitoring Applications, including but not limited to the App Analyzer, Entitlement Analyzer, Reload Analyzer, and Access Evaluator applications. Leverage this automation template to quickly and easily install and update these or a subset of these applications with all their dependencies. The applications themselves are community-supported; and, they are provided through Qlik's Open-Source Software GitHub and thus are subject to Qlik's open-source guidelines and policies.
For more information, refer to the GitHub repository.
Note that if the monitoring applications have been installed manually (i.e., not through this automation) then they will not be detected as existing. The automation will install new copies side-by-side. Any subsequent executions of the automation will detect the newly installed monitoring applications and check their versions, etc. This is due to the fact that the applications are tagged with "QCMA - {appName}" and "QCMA - {version}" during the installation process through the automation. Manually installed applications will not have these tags and therefore will not be detected.
This template is intended to be used alongside the Qlik Cloud Monitoring Apps for user-based subscriptions template. This automation provides the ability to keep the API key and associated data connection used for the Qlik Cloud Monitoring Apps up to date on a scheduled basis. Simply input the space Id where the monitoring_apps_REST data connection should reside, and the automation will recreate both the API key and data connection regularly. Ensure that the cadence of the automation’s schedule is less than the expiry of the API key.
Enter in the Id of the space where the monitoring_apps_REST data connection should reside.
Ensure that this automation is run off-hours from your scheduled monitoring application reloads so it does not disrupt the reload process.
Each Qlik Cloud Monitoring App has the following two variables:
With these variables, we can create a new Qlik Data Alert on a per-app basis. For each monitoring app that you want to be notified on if it falls out of date:
Here is an example of an alert received for the App Analyzer, showing that at this point in time, the latest version of the application is 5.1.3 and that the app is out of date:
Q: Can I re-run the installer to check if any of the monitoring applications are able to be upgraded to a later version?
A: Yes. Run the installer, select which applications should be checked and select the space that they reside in. If any of the selected applications are not installed or are upgradeable, a prompt will appear to continue to install/upgrade for the relevant applications.
Q: What if multiple people install monitoring applications in different spaces?
A: The template scopes the applications install process to a “target” space, i.e., a shared space (if not published) or a managed space. It will scope the API key name to `QCMA – {spaceId}` of that target space. This allows the template to install/update the monitoring applications across spaces and across users. If one user installs an application to “Space A” and then another user installs a different monitoring application to “Space A”, the template will see that a data connection and associated API key (in this case from another user) exists for that space already and it will install the application leveraging those pre-existing assets.
Q: What if a new monitoring application is released? Will the template provide the ability to install that application as well?
A: Yes. The template receives the list of applications dynamically from GitHub. If a new monitoring application is released, it will become available immediately through the template.
Q: I would like to be notified whenever a new version of a monitoring applications is released. Can this template do that?
A: As per the article above, the automation templates are not responsible for notifications of whether the applications are out of date. This is achieved using Qlik Alerting on a per-application basis as described in Part 3.
Q:I have updated my application, but I noticed that it did not preserve the history. Why is that?
A: The history is preserved in the prior versions of the application’s QVDs so the data is never deleted and can be loaded into the older version. Each upgrade will generate a new set of QVDs as the data models for the applications sometimes change due to bug fixes, updates, new features, etc. If you want to preserve the history when updating, the application can be upgraded with the “Publish side-by-side” method so that the older version of the application will remain as an archival application. However note that the Qlik Alert (from Part 3) will need to be recreated and any community content that was created on the older application will not be transferred to the new application.
This article describes how to resolve the NPrinting connection verification error:
x Qlik NPrinting webrenderer can reach Qlik Sense hub error
This article is intended to get started with the Microsoft Outlook 365 connector in Qlik Application Automation.
To authenticate with Microsoft Outlook 365 you create a new connection. The connector makes use of OAuth2 for authentication and authorization purposes. You will be prompted with a popup screen to consent a list of permissions for Qlik Application Automation to use. The Oauth scopes that are requested are:
The scope of this connector has been limited to only sending emails. Currently, we do not enable sending email attachments and are looking to provide this functionality in the future. The suggested approach is to upload files to a different platform, e.g. Onedrive or Dropbox and create a sharing link that can be included in the email body.
The following parameters are available on the Send Email block:
As we do not currently support email attachments, we need to first generate a sharing link in Onedrive or an alternative file sharing service. The following automation shows how to generate a report from a Qlik Sense app, upload the report to Microsoft Onedrive, create a sharing link and send out an email with the sharing link in the body. This automation is also attached as JSON in the attachment to this post.
Using Qlik-CLI to export an app without the '--exportScope all' parameter fails with the error:
Error: 400 - Bad Request - Qlik Sense
This is observed after an upgrade to Qlik Sense Enterprise on Windows November 2024 patch 10 or any later version. The error is intermittent and the export may succeed if executed several times.
Reviewing the output shows Status: 201 Created, followed by the error after retrieving the app from the temporary download path:
> qlik qrs app export create "dbb1841d-f3f6-4a49-b73f-0a24cc003b1b" --exportScope all --output-file "C:/temp/App3.qvf" --insecure --verbose
Insecure flag set, server certificate will not be verified
POST https://sense/jwt/qrs/app/dbb1841d-f3f6-4a49-b73f-0a24cc003b1b/export/e237e6c8-d367-45d3-9eff-9f191b3f1ef5?exportScope=all&xrfKey=4B21426C21AE6B85...
Status: 201 Created
{
"exportToken": "e237e6c8-d367-45d3-9eff-9f191b3f1ef5",
"appId": "dbb1841d-f3f6-4a49-b73f-0a24cc003b1b",
"downloadPath": "/tempcontent/f8deec7c-5ab4-4462-879b-38990febbd1b/Test.qvf?serverNodeId=ae6a7f27-1abd-439e-b4da-0a0b0f4a3e61",...
}
GET https://sense/jwt/tempcontent/f8deec7c-5ab4-4462-879b-38990febbd1b/Test.qvf?serverNodeId=ae6a7f27-1abd-439e-b4da-0a0b0f4a3e61&xrfKey=4B21426C21AE6B85...
Status: 400 Bad Request
400 - Bad Request - Qlik Sense
Error: 400 - Bad Request - Qlik Sense
This is being investigated by Qlik as SUPPORT-3800.
Delete the content of the cookie store ( ~/.qlik/.cookiestore) when the error occurs.
In Windows, this can be found in %USERPROFILE%\.qlik\.cookiestore
A batch job can be created to automate the deletion.
This is caused by an incorrect cookie handling by Qlik-CLI. While exporting the app, the responses include the Set-Cookie header, but qlik-cli fails to update the cookie store with the new cookie.
A user can enable failure notifications for automations in their profile settings. Reference: Notifications
However, if the user is not the owner of an automation hosted in a shared space, they will not receive the expected notification.
Only the automation owner will be alerted.
This behaviour is different than the one for application reloads, where tenant admins and people with permissions on a shared space can also be notified.
This is a current limitation.
To provide Qlik with input on this limitation and suggest changes, head to Qlik's ideation portal, which our product teams actively monitor.
A user can enable failure notifications for automations in their profile settings. Reference: Notifications
However, despite the automation failing several times, only the original notification of the first failure is delivered.
This is as designed.
Since automations can be run every 30 seconds, we want to avoid spamming the user with notifications. We therefore have a 6-hour window after a failure during which the user will not receive another alert.
Another can be sent after six hours.
Qlik plans to reduce the window from 6 hours to 1 hour. No estimated time for this change is known yet.
With the release of shared automations in Qlik Automate, it is now possible to run an automation in a Shared Space for users other than the owner. The automation will run using the owner’s Qlik account and any third-party connections as they were configured by the owner.
When an automation is run by another user, it is possible to retrieve this user’s information during the automation run. This article outlines how this is done.
This is only supported when the automation is run from the console or API. It is not supported for triggered automations when they are run from the trigger URL or webhook automations when they are run from the webhook event. The reason for this is that in these cases, no user subject is sent to the automation (triggered executions use the execution token instead of a user token, and webhook automations have no user involved when they are run by the webhook event).
However, if triggered or webhook automations are run manually or over API, it will be possible to retrieve the user's info.
When an automation is run by any user, it is possible to retrieve the user id and user info for the user who executed the automation during the automation run.
Currently, in Qlik Application Automation it is not possible to export more than 100,000 cells using the Get Straight Table Data block.
Content:
To overcome this limit, the workaround is to export records in batches from the Qlik Sense straight table to the cloud storage platform of your choice. The prerequisite is to have a unique numerical field in your dataset. If you don't have the unique field in your dataset, you can add it using RowNo() function in the load script as shown below. This counts the rows in the dataset.
In this example, we will export data from the Qlik Sense straight table to Dropbox as a CSV file.
You can also find an exported version of this automation and application attached to this article. More information on importing automation can be found here.
Automation Part 1
Automation Part 2
Automation Part 3
An OAuth client has admin.apps, admin.automations and admin.spaces scopes.
When using it with API calls to run automations in a shared space, the result is 403 insufficient permissions.
The assumption is that the admin scopes should be enough to execute the automation.
Explicitly add the OAuth client as a user on the tenant and give the user Can manage permissions.
It is the same concept as a Tenant Admin.
A Tenant Admin can see everything, but to open apps in a space or reload them, the admin user must be explicitly added to the space.
The same concept applies to the OAuth admin scopes.
This article documents how to create an AWS Amazon DynamoDB table using Qlik Automate. The example automation is attached to this article and can be imported. See How to import and export automations for details.
The finished automation:
Notes:
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 5}
Pressing a button that executes an Automation fails with:
Bad request
An additional error may be shown:
You are not authorized to run this automation
These errors are typically seen after changing the Automation's owner.
When the owner of an Automation is changed, the system automatically disables that Automation. In this context, this error indicates that the automation is disabled or that its run mode is incorrectly configured.
To resolve this:
This error can occur after re-enabling an automation and the execution token having changed.
Follow these steps to re-establish the connection:
As a rule, only use the option to renew the token when strictly needed for security reasons.
This is a known design limitation.
As specified in both the dialog and in the documentation (source), “Renewing the execution token for the following automation(s) will immediately break any reference to the automation(s) through a trigger URL or Qlik Sense button object. This action cannot be undone.”
The purpose of introducing the option to renew the token was to harden the security of automations when it comes to webhooks. With this feature, administrators now have the option to break all current webhook connections to an automation if they feel that security concerns require that.
Since buttons also use the same execution tokens, they will also be affected.
The option to renew the execution token should therefore only be used when strictly required by security concerns, e.g., if a token was exposed publicly.