Search our knowledge base, curated by global Support, for answers ranging from account questions to troubleshooting error messages.
This article provides information on how to get started with the ServiceNow connector in Qlik Application Automation.
The connector for ServiceNow is making use of Basic Authentication. To connect you will also need the name of your instance.
When you connect to ServiceNow in Qlik Application Automation you will be presented with the following screen.
You can obtain the instance name from the URL that you use to access ServiceNow. You can use your username / password of your account provided it has enough privileges for what you aim to do. It is recommended to create a service account for integrations and limit it's roles to what is necessary.
Most of the blocks for the ServiceNow connector make use of the Table API of ServiceNow.
ServiceNow documentation for the Table API can be found at: https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/c_TableAPI
The following data types have easy to use blocks for all CRUD operations:
• Incident
• Change Task
• Problem
• Change Request
Furthermore it is possible to work with user objects, listing journal items, audit lines, obtaining and adding attachments.
When modifying or deleting objects from the Table API, make sure to be using the "sys_id" field of objects as the identifier.
With the blocks "get table content by id", "create table content", "delete table content", "update table content", "list table content", it is possible to work with every object through the use of the Table API. These blocks also allow you to look up the name of a table with the "do lookup" functionality. As this lookup obtains information from the sys_db_object table in ServiceNow, it's possible that this lookup does not work due to your permissions.
There is also a "Raw API Request" available. This block allows providing your own sub path starting from the Base URL of ServiceNow, HTTP method and optionally a JSON body.
This can be used to contact other API groups than the Table API of ServiceNow as well as custom scripted API's.
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.
This article explains how the Qlik Reporting connector in Qlik Application Automation can be used to generate a bursted report that delivers recipient-specific data.
For more information on the Qlik Reporting connector, see this Reporting tutorial.
This article offers two examples where the recipient list and field for reduction are captured in an XLS file or a straight table in an app. Qlik Application Automation allows you to connect to a variety of data sources, including databases, cloud storage locations, and more. This allows you to store your recipient lists in the appropriate location and apply the concepts found in the examples below to create your reporting automation. By configuring the Start block's run mode, the reporting automations can be scheduled or driven from other business processes.
In this example, the email addresses of the recipients are stored in a straight table. Add a private sheet to your app and add a straight table to it. This table should contain the recipients' email address, name, and a value to reduce the app on. We won't go over the step-by-step creation of this automation since it's available as a template in the template picker under the name "Send a burst report to email recipients from a straight table".
Instead, a few key blocks of this template are discussed below.
In this example, the email addresses of the recipients are stored in an Excel file. This can be a simple file that contains one worksheet with headers on the first row (name, email & a value for reduction) and one record on each subsequent row.
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.
Sometimes it might be necessary to deallocate licenses using the Qlik Command Line Interface, for instance in case of licenses allocated to users no longer in the system.
[
{
"created": "2023-04-03T11:24:05.101Z",
"excess": false,
"name": “Enzo Bearzot”,
"subject": "auth0|12345678”,
"type": "professional",
"userId": “userid1”
},
{
"created": "2022-08-17T11:50:04.647Z",
"excess": false,
"name": “Vittorio Pozzo”,
"subject": "auth0|910111213”,
"type": “analyzer”,
"userId": “userid2”
},
{
"created": "2022-08-17T11:50:04.647Z",
"excess": false,
"name": “Ferruccio Valcareggi”,
"subject": "auth0|14151617”,
"type": "professional",
"userId": “userid3”
},
{
"created": "2022-06-07T11:36:15.704Z",
"excess": false,
"subject": “18192021”,
"type": “professional”
},
{
"created": "2022-06-03T13:50:14.105Z",
"excess": false,
"subject": “22232425”,
"type": "analyzer"
},
]
The syntax below is for Unix shells. For usage in Windows Powershell add a "backslash" before each "doublequote" sign. '[{"subject"... will have to become '[{\"subject\"...
'[{"subject":"USERSUBJECT","type":"ASSIGNEDLICENSE"}]'
For instance, in the case of the final user in the list above it will be '[{"subject":"22232425","type":"analyzer"}]'
feed the string into this command:
qlik license assignment delete --delete STRING
With the example above you will run:
qlik license assignment delete --delete '[{"subject":"22232425","type":"analyzer"}]'
Run the command and wait for the result.
A "200" will confirm that the removal worked
% qlik license assignment delete --delete '[{"subject":"22232425","type":"analyzer"}]'
[
{
"status": 200,
"subject": "22232425",
"type": "analyzer"
}
]
Check the "Home" section of the management console to confirm that the allocation was removed
This article gives an overview of the available blocks in the Qlik Platform Operations connector in Qlik Application Automation.
The purpose of the Qlik Platform Operations connector is to simplify the deployment and management of multiple tenants within Qlik Cloud. To learn more about the multitenant model in Qlik Cloud, please review the following series of tutorials.
This connector consists of:
To authenticate, you will need to provide your OAuth2 client ID and client secret. If you have a multitenant license, enter a regional OAuth client (generated via My Qlik) or a tenant OAuth client (generated from within a tenant). Note that only regional OAuth clients can create new Qlik Cloud tenants. In order to use your own tenant, you need to create an OAuth m2m client (trusted) in the management console on your tenant. For more information, please check this article.
Most blocks require a specified tenant as the target. A tenant is uniquely identified by name and the region that it is deployed to. For example, for mytenant.eu.qlikcloud.com, enter mytenant.eu. You can use the Get Tenant Name and Region block to obtain the tenant from a full URL.
Let's now go over a basic example of how to deploy a tenant, create an automation inside the deployed tenant and run it using the Qlik Platform Operations:
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.
With Qlik Application Automation, you can get data out of Qlik Cloud and distributing it to different users in formatted Excel. The workflow can be automated by leveraging the connectors for Office 365, specifically Microsoft SharePoint and Microsoft Excel.
Here I share two example Qlik Application Automation workspaces that you can use and modify to suit your requirements.
Content:
Video:
Note - These instructions assume you have already created connections as required in Example 1.
This On-Demand Report Automation can be used across multiple apps and tables. Simply copy the extension object between apps & sheets, and update the Object ID (Measure 3) for each instance.
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.
This article gives an overview of storing reports in the cloud use case. It also explains a basic example of a template configured for this scenario.
An automation is attached, which can be imported in your Qlik Cloud Tenant. See How to import and export automations.
For this example, we will use the Qlik Reporting connector and Microsoft SharePoint as the cloud storage tool.
For this approach, you will need a Qlik Sense app configured in your tenant that has public sheets available, a field with unique values for which the reports will be generated, and a Microsoft SharePoint destination path to store your reports.
To support this use case, we created a basic template featured below. This template example is also available as an attachment.
This template will loop over all unique field values in the specified app. For each value, it will generate a report of all public sheets with a selection based on the specific value. Each generated report will then be saved as a PDF file in SharePoint.
Of course, this is just a basic implementation. This template can be upgraded to suit other scenarios. Let's go over a few examples:
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.
The problem occurs on buttons containing multiple actions. It can happen that these actions are not performed in the order set in the button. The result is then different from the expected one.
The issue is more common when the actions contain different selections or a "Clear selections" on a field. Sometimes, the selections seem not to be applied or it may be necessary to click twice on the button to get the desired result.
The actions may seem to be applied incorrectly because the expressions that are used for the actions in the button are all evaluated at the time the user presses the button. The actions are then applied sequentially, however with the evaluated expressions.
Evaluating the actions at the same time may lead to different results than evaluating them sequentially, especially if these actions include selections.
This is considered the designed behavior at the moment, in fact there are technical limitations preventing to apply actions sequentially. Moreover, some implementations are currently based on this behavior.
For these reasons this is considered a feature request instead of a defect.
A possible improvement would be to have an additional option where one can configure the actions flow in the button. A post has been added in our ideation program in the community.
QB-20651
This article gives an overview of the available blocks in the Google Sheets connector in Qlik Application Automation. It will also go over some basic examples of creating a new spreadsheet, adding new sheets to it, adding some information to the sheet as well as removing information from it.
You will find the mentioned example attached to this article in JSON format so you can upload it to your workspace and get started with it easily.
This connector supports operations to manage spreadsheets, adding/removing sheets from spreadsheets, manipulating sheet data, and a few other support operations.
Authentication for this connector is based on the oAuth2 Protocol.
Let's start with the example prepared:
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.
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
SAP Cluster Tables has missing data in the Target during CDC process.
Apply the latest Service Release for Replicate 2023.5 SP03
https://files.qlik.com/url/QR_2023_5_PR03
The Task you can do an Advance Run option using start from Timestamp, starting the Task when the data loss is found in the Target as long as the transaction logs are available.
Advanced Run Options set the Date to the UTC time of the Replicate Server at the time of the data loss
Product Defect ID: RECOB-7506
https://help.qlik.com/en-US/replicate/May2023/Content/Replicate/Main/SAP%20Native/native_AR_SAP.htm
Qlik Application Automation includes a connector block for Microsoft Teams. You have multiple Microsoft Teams templates available when creating a new Automation, which will guide you through the process.
This article highlights the blocks applicable when sending messages.
Example Automation:
For additional information on requirements and message possibilities, see How to get started with Microsoft Teams in Qlik Application Automation.
The Microsoft Teams Connector will list a number of different blocks for you to choose from.
The following are used to send chat messages to existing chats, or you can send messages to new chats:
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.
Qlik Cloud some or all application automations are disabled or inaccessible for some users recently. This was working before. Then access became in accessible or disabled for some or all users.
The Qlik Application Automation team recently released a new connector called Inphinity that allows you to read data from your Forms, or write data back to your Forms. You may have felt a bit like Dorothy in Oz seeing it in a list of other connectors and you just want to get home.
But don't click those heels together so fast, this connector gives you some really powerful capabilities when combined with Inphinity Forms for Qlik Sense. How powerful you ask? How about the ability to record insights, take automated action(s) based on the values, and then report back the activity?
Now that seems like some wizardly cool kind of activity right there. So let's get started walking down that yellow brick road together.
Qlik Cloud
Qlik Application Automation July connectors update (and later)
When you click on the Inphinity Connector you will see that you have 2 options Read Form Data or Save Data to Form.
Like nearly every connector type, either of those blocks is going to require you to establish a connection to your Inphinity Form. Something that identifies what/where it is you want your Qlik Application Automation block to talk to. Give your connection a snazzy connection name, or just a demo-worthy name like Inphinity. Then you will need to input your domain. {As of the writing of this post Inphinity only provides forms.inphinity.app but they may be providing regional domains in the future so this QAA connector allows for that.}
Next, you will need two (2) values regarding the specific form you wish to read from or write to. The form_instance_id will be displayed in the list of forms in your "Inphinity Forms SaaS" console. The api_token can be obtained by clicking the Setting link and then generating the API TOKEN
The Read Form Data block allows you to read all of the data that users have input for the form. To do that simply leave the Body blank.
That is a great option if you implement some type of stand-alone automation. But if you are implementing your automation to take action on a row-by-row basis as your end users are working on the form, then you will want to input the JSON body information. In the image below, notice that I have the base JSON information {"0" : "{key}"} and that I'm using the Row value from an Input block.
Where would that Input come from? Well, I can simply type in the information, or since I am having this Qlik Application Automation triggered by the Inphinity Form itself, I can simply append &row=$(key) to the URL in my Forms Rest settings. Be sure and take note that "row" is simply the label I gave my Input. But $(key) is the indicator to Inphinity that when calling my Qlik Application Automation it should send the "key" for the specific row that was just saved. Thus if the end user inputs multiple changes, it would call the automation multiple times.
If you Read Form Data with a key you will simply get an object with 1 row of data returned with columns for each value in the form. Since "rows" in Qlik Application Automation are zero (0) based, I can simply implement the following to assign the "Analyst Notes" value of the record to a variable.
If you Read Form Data without a key, you will obviously get as many rows as you have data in the form. In that case, the best plan is to set up a Loop so that you can iterate through each row.
Now, you can simply choose "Analyst Notes" from the Loop Item to assign the value to a variable, or use it directly elsewhere as you prefer.
Note that _key is comprised of as many dimensions as you define for your Inphinity Form. If you only have one (1) then you can simply refer to the _key as you would any of the other measures, or input values your form has. In this case, it is 3 fields, since you may have similar situations, which Inphinity then concatenates with two pipe symbols "||" between each of the values. Pulling the individual values can be achieved by first "exploding" the concatenated key into a list using the Qlik Application Automation function "explode" with the "||" as the delimiter.
This will lead to the following text:
If you used an Output block to view your "exploded" list, you would see something like this:
Now you can refer to the entry in our list, for the column you wish from that concatenated key. So if you want the first column, the VendorID portion of the key, you can do so like this:
The Vendor Name portion would be: { $.KeyValues[0][1] }
And the Vendor Criticality portion would be: { $.KeyValues[0][2] }
The point of this new Qlik Application Connector is to offer you the ability to read from your form data ...
and take ACTION with it.
Whether you prefer to assign the values you read to variables as was done above, or whether you prefer to simply pass the data that you read directly to another task, the goal is to do something with it. Maybe you want to apply a field selection based on the key, and generate a report to some big cheese along with the Analyst Notes. Maybe it's to send an email that includes the data from the insights. Maybe it's to create a Service Now incident based on the insights and data values. In my case, I pass all of the data along as Input to a UiPath Connector to have it create a Service Now incident regardless of data values, and if the Vendor Criticality is high enough, create an SAP Ariba workflow as well.
Actions have consequences. Ok, so that statement refers to human actions. Better said in our case, automated actions have returned values. Whether it's just "Success." Or whether in my case it is the Service Now Incident Number and possibly the SAP Ariba confirmation number for the case. There will be information available to us.
When you think about it the ability to capture data in Qlik Sense regarding discovered insights and take any automated actions is neat. But recording them so that everyone knows what happened as a result really sets the use case apart. Right?
That's where the Save Data To Form block comes in handy. The command accepts a simple JSON object with the values we want to write back to the form. As you can see we will need to pass the "_key" back so that Inphinity will know which record to save the data to. So we can pass it back the same value we used to Read Form Data from, the simple Input Row. You can also rewrite the information you already have in the form like the Analyst Notes. Or you can create additional fields of information based on whatever Qlik Application Automation action(s) you took. You could pass back a "Email generated to John Doe and sent on the 29'th of August at 1:27 PM." Or as you can see I want to pass the SAP Ariba Confirmation and Service Now Incident numbers back to the form.
Whatever it is, that you will write back to the form, simply add the field name and value pairs to the JSON block and you will be in business.
Unlike the Wizard of Oz where there was just a man behind a green curtain, the combination of Qlik Application Automation and Inphinity Forms is true wizardry. What you have to see for yourself, as you will never believe these screenshots is the fact that when you write anything back to your Inphinity Form, any screens that are visualizing the Form will be automatically updated in real-time.
SERIOUSLY!!!!!
Check out this 1-minute video where I demonstrate the entire process in split screen so that you can see the input, the activity and the real-time feedback.
Because seeing is believing.
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.
Inside Qlik Application Automation, the Amazon S3 functionality is split into 2 connectors. The native Cloud Storage connector and the specific Amazon S3 connector. To create, update and delete files, it’s highly recommended to use the native Cloud Storage connector. To get the information and metadata of regions & buckets, use the Amazon S3 connector.
Example of automation using the Amazon S3 connector to output a paginated list of regions and buckets in each region (not covered in this article).
This article focuses on the available blocks in the native Cloud Storage connector in Qlik Application Automation to work with files stored in S3 buckets.
It will provide some examples of basic operations such as listing files in a bucket, opening a file, reading from an existing file, creating a new file in a bucket, and writing lines to an existing file.
The Cloud Storage connector supports additional building blocks to copy files, move files and check if a file already exists in a bucket, which can certainly help with additional use cases. The Amazon S3 connection, however, supports advanced use cases such as generating a URL that grants temporary access to an S3 object, or downloading a file from a public URL and uploading this to Amazon S3.
Let’s get started. Authentication for this connector is based on tokens or keys.
Log in to the AWS console with an IAM user to generate the access key id and secret access key required to authenticate.
Now let's go over the basic use cases and the supporting building blocks in the Cloud Storage connector to work with Amazon S3:
Attached example file: create_and_write_files_amazon_s3.json
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.
This article provides a step-by-step guide on building a write back solution with only native Qlik components and automations.
Content:
Disclaimer for reporting use cases: this solution could produce inconsistent results in reports produced with automations; when using the button to pass through selections, the intended report composition and associated data reduction for the report may not be achieved. This is due to the fact that the session state of Qlik Application Automation cannot be transferred to the report composition definition that is passed to the Qlik Reporting Service.
When analyzing results in a Qlik Sense app, it could happen you spot a mistake in your data or something that seems odd. To address this, you may want someone from your team to investigate this or you may want to update data in your source systems directly without leaving Qlik. Or maybe your data is just fine but you want to add a new record from within Qlik without having to open your business application. These scenarios fit in the following use cases:
This is the least intrusive form of writing back that delegates the change to someone in your data team. The idea is that you create a ticket in a task management system like Jira or ServiceNow. Someone from your team will then pick up the ticket, investigate your comment, and review the data. The difference with sending an alert or email is that the ticketing system guarantees that the request is tracked.
Another option to communicate changes is to write a comment or a tag for one or more records directly to the source system. This could be a comment on a deal record in your CRM or it could be stored in a separate database table if you're loading data from a database.
The final use case allows for updating records directly from within the sheet. Make sure you know who has access to the button before setting this up since this will allow users to change records directly.
All the above use cases can be realized in the same way: by configuring a native Qlik Sense button in your sheet to run an automation. Before you start this tutorial, make sure you already have an app and a new, empty automation. The tutorial has 2 parts:
To configure the app, we'll use the following native Qlik Sense components:
Steps:
Enable the "Show notifications" toggle, this will send a toast notification back to the user in the sheet after the automation completes. Feel free to increase the duration.
Tip: using a Container component will allow your variable inputs & button to scale better for smaller screens.
Upon automation run, this will resolve to the first text value selected for the field hs_object_id (which corresponds to the deal ID from HubSpot). To update this to a comma-separated list of IDs, the mapping must first be changed to output a list of all values for hs_object_id. To do this, toggle the formula parsing:
Bonus: add a link to the toast notification
Instead of showing a plain message in the toast notification, it's also possible to include a link to point the user to a certain resource. This can be done by configuring the Update Run Title block with the following snippet:
{"message":"Ticket created", "url": "https://<link to jira ticket>"}
Depending on the button's configuration and the automation run mode, use either the Update Run Title block or the Output block to show the toast notification.
See the below table for each option:
Run mode configuration in the automation | Run mode in the button | Block for toast notification | Who can see the notification |
Triggered async | Triggered | Update Run Title | Automation owner only |
Triggered sync | Triggered | Output | Everyone |
Triggered sync | Not triggered | Update Run Title | Automation owner only |
The run mode in the button can be configured by toggling the 'Include Selections' option in the button's settings:
The run mode in the automation can be configured here in the Start block:
After writing back to your source systems, you'll want to do a reload to see your changes reflected in the app. Be mindful of the impact of doing these reloads. If multiple people are using this button at the same time, you don't want to do a reload for each update.
Problems:
Improvements:
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.
In this article, we will share step by step process on how to copy straight table data having quotes to Excel using "Add rows to table (Batch)" in Qlik Application Automation.
The attached JSON file can be directly imported into a new workspace.
When using a Microsoft Excel workbook session in automation, the session must be closed at the end of the automation by adding a Close Workbook Session block.
The limit of 100 000 records that can be retrieved through the Get Straight Table Data block.
The associated user or group was removed in an attempt to change security preferences. Minimum best practice is to ensure that the tenant admin keeps this permission.