Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Forums for Qlik Analytic solutions. Ask questions, join discussions, find solutions, and access documentation and resources.
Forums for Qlik Data Integration solutions. Ask questions, join discussions, find solutions, and access documentation and resources
Qlik Gallery is meant to encourage Qlikkies everywhere to share their progress – from a first Qlik app – to a favorite Qlik app – and everything in-between.
Get started on Qlik Community, find How-To documents, and join general non-product related discussions.
Direct links to other resources within the Qlik ecosystem. We suggest you bookmark this page.
Qlik gives qualified university students, educators, and researchers free Qlik software and resources to prepare students for the data-driven workplace.
This was created thanks to requests from some of our top customers, looking to share the best of Qlik with everyone at the organisation. Regular content includes:
We want all Qlik users to get access so please share with your colleagues and encourage them to subscribe to the mailing list or to the Qlik Digest Blog on Qlik Community.
If you have any feedback we would love to hear from you. Please comment below or send an email to lucy.bannister@qlik.com
Happy Reading!

Use and practice of the container and visual part with transposed buttons and graphics

Use this practice to learn more about the container's functionality in a fun and dynamic way and then be able to apply it in official and formal projects that require a visual environment with this approach.

Team members to explore the container's functionalities

Practice of transposed objects with the purpose of implementing it in formal projects
従来の 「Getting started」 が「Learn(学習)」ページに置き換わりました。ステップバイステップの成果重視型学習パスを提供します。
Qlik Cloud は、プラットフォームと互換性のあるすべての SAML ID プロバイダーのアサーション署名の検証と復号をサポートするようになりました。SAMLアイデンティティプロバイダーでは、アサーション(ユーザーの認証情報や属性情報、権限などを記述したXMLドキュメント)を使用してユーザーの認証と承認を行います。
これらのアサーションは、信頼性を検証するために署名され、内容を保護するために暗号化されます。Qlik Cloud は、プラットフォームと互換性のあるすべての SAML ID プロバイダーのトークン署名の検証と復号をサポートしています。
詳細については、下記を参照してください。
署名および暗号化された ID アサーション (SAML) のキー ペアの管理
Qlik Cloud では、管理者がデータ接続の作成、管理、または読み取りのみを行える権限を誰に付与するかを完全に制御できるようになりました。この新しいセキュリティスコープは、スペースの枠を超えたエンタープライズグレードのガバナンスを提供し、テナント全体にわたる一貫した適用を保証します。
この待望の機能強化により、データ ガバナンス、セキュリティ、プライバシー、コンプライアンスが強化されるとともに、組織が求めていた精度が実現します。
詳細は、こちらを参照してください。
Open AI Connector で下記のモデルをサポートしています。
次の新しい GenAI 分析コネクタが追加されました。
詳細はこちらを参照してください。
Amazon Bedrock - Converse API 分析ソース
⁻スタンドアロンテーブルレシピ : レシピをカタログアセットとして作成し、1つのソースから1つのターゲットにステップを適用し、出力を実行またはスケジュールします。単一ソースから単一ターゲットへのシンプルなユースケースに最適です。
⁻データ フローに埋め込まれる : テーブル レシピを、中間または混合ユース ケースの大規模なデータ フロー内のプロセッサとして使用し、複数のソース、ターゲット、またはより複雑なプロセッサを同じフロー内で組み合わせます。
詳細は、こちらを参照してください。
スケジュールが実行されなかった場合に警告を出すために、データ タスク モニターには、スケジュールされた CDC タスクに関する次の情報が表示されるようになりました。
以下の場合、スケジュールされたCDCタスクが実行できない場合があります。
詳細はこちらを参照してください。
Qlik Talend Cloudは、is of typeオペレーターを検証ルール定義でサポートしています。この機能強化により、ユーザーはフィールドの内容が特定のセマンティックタイプと一致するかどうかを確認できます。利用可能なセマンティックタイプは、データ統合アクティビティセンターの「データ品質セクション」内の「セマンティックタイプ管理」タブで設定された組み込みタイプとユーザー定義タイプの両方に依存します。
詳細はこちらを参照してください。
SQL 変換をプレビューすると、結果に列のデータ型が含まれるようになりました。データ移動ゲートウェイを使用してデータ ソースにアクセスする場合、この機能にはバージョン 2024.11.70 以降が必要です。
レプリケーションタスクとランディングタスクのテーブルエラー処理設定に、テーブルエラーを返すまでの再試行回数という新しい設定が追加されました。
Singapore is an important center of business and economy in Asia and particularly, in the ASEAN region. Many educational institutions continue to flourish and provide world class education here. Some of the top Universities in the world are located in Singapore. In addition, the Polytechnics provide vocational and skill based education to students.
The Qlik Academic Program has been engaged with many Universities and Polytechnics in Singapore in an effort to provide quality data analytics training, qualifications and certifications.
With Republic Polytechnic, for the Diploma in Business Analytics students , a talk was organized led by our Technical Expert, Kam Wei Leong. The title of the talk was “Agentic AI: Real Value, Right Now” where he spoke about the evolution from descriptive analytics to GenAI and Agentic AI. Also, he shared the key building blocks of Agentic AI and Qlik's perspective on how such technology can actually be of value to users in their respective roles and to their organisation. Kam Wei also shared how to build end-to-end AI applications in Qlik Cloud.
Republic Polytechnic's Professor Ho Chee-wai is also an Educator Ambassador for the Qlik Academic Program's batch of 2025 and he is going to be on a panel discussion during Qlik's flagship event, AI Reality Tour on October 1st.
With Institute of Technical Education ( ITE), Qlik is a partner for the "ITE Digitalisation & Sustainability Challenge 2025" in November. Along with the support for this event in the form of prizes, students and professors are also leveraging the benefits of the Qlik Academic Program. Recently, a workshop to explain the benefits of Qlik Sense and help them build dashboards and visualisations was organised. ITE is also hosting a session for their students in October, where Qlik Chief Marketing Officer, Chris Powell is planning to address them.
National University of Singapore ( NUS) has been one of the stronger partners of the Qlik Academic Program. Students of the MBA in Business Analytics course have been gaining from the program every year. We have conducted various sessions for students to get familiar with Qlik Sense and how they could solve business problems using the software.
We continue to grow in Singapore and expand the academic program offerings to students and professors. If you would like to know more about the academic program, please visit: qlik.com/academicprogram
Custom CSS has been a popular workaround in Qlik Sense for years, helping developers tweak layouts, hide buttons, and get around styling limitations. But things are shifting. With the Multi-KPI object being deprecated and native styling options getting stronger with every release, it’s a good time to rethink how we approach custom styling in Qlik Sense moving forward.
In this post, we’ll break down:
Let’s dive in!
Why is custom CSS used in Qlik Sense?
In the past, Qlik’s built-in styling options were limited. That led to many developers using CSS to:
Most of this was made possible by either creating custom themes, building extensions, or using the Multi-KPI object as a helper to inject CSS code. But as powerful as these techniques were, they also came with downsides, like breakage after updates or difficulty governing app behavior at scale.
So, What’s Changing?
The biggest shift is the deprecation of the Multi-KPI object, which has served as a popular CSS injection tool. Here's what you need to know:
EOL of the Multi-KPI object is May 2026:
If you’ve been using the Multi-KPI as a styling workaround, it’s time to plan for alternatives.
Native Styling Has Come a Long Way
Before reaching for CSS, it's worth exploring what Qlik now offers natively. Many of the styling tweaks that once required CSS are now fully supported in the product UI.
Here’s a quick look at recent additions:
|
|
Native styling available now or coming in the next update |
|
Straight Table |
Background images, word wrap, mini charts, zebra striping, null styling, header toggle |
|
Pivot Table |
Indentation mode, expand/collapse, RTL support, cyclic dimensions |
|
Text Object |
Bullet lists, hover toggle, border control, support for up to 100 measures |
|
Line Chart |
Point and line annotations |
|
Scatter Plot |
Reference lines with slope, customizable outline color and width |
|
Layout Container |
Object resizing and custom tooltips |
|
Navigation Menu |
Sheet title expressions, left/right panel toggle, divider control |
And this list keeps growing. If you're building new apps or redesigning old ones, these built-in features will cover a huge percentage of use cases.
Many deprecated CSS tricks are now native. Check out the full Obsolete CSS Modifications post for examples and native replacements.
What About Themes?
Themes are not going anywhere. In fact, they remain the most robust and supported way to apply consistent styling across your app portfolio.
With custom themes, you can:
You can still include CSS files in themes, but remember:
If you're new to themes, Qlik.dev has a great guide to get started, or checkout my previous blog post for some tips and tricks.
Still Need Custom CSS? Here’s What You Can Do
If your use case goes beyond what native styling or themes can handle—like hiding a specific button, or styling based on object IDs—you still have a few options:
What's Missing
A lot of Qlik users have voiced the same thing: "we still need an officially supported way to inject CSS at the sheet or app level"
Some have suggested:
Qlik has acknowledged this feedback and hinted that future solutions are being considered.
What You Should Do Today
That’s a wrap on this post. With more native styling features on the way, I’ll be keeping an eye out and will be likely sharing a follow-up as things evolve. If you're in the middle of refactoring or exploring new approaches, stay tuned, there’s more to come.
It’s here! Your new go-to for quick no-code data preparation in Qlik Cloud Analytics. Table Recipe makes it easy for anyone to clean single-table datasets fast and keep your insights flowing.
Just pick your dataset, build your step-by-step recipe, and see your results instantly.
See it in action for yourself! Check out this awesome walkthrough of Table Recipe by @igoralcantara, showing exactly how it works.
Fast, Visual Data Prep
Clean up your data with over 60 built-in functions, from formatting and masking to calculating new columns. All in an interactive spreadsheet-like interface where you can apply changes and view the outcome right away.
Each step you take becomes part of a recipe tracked on the right-side panel. Easy to repeat. Easy to share.
Designed for Everyone
Table Recipe is made for Qlik users who want to prep data without writing script. Whether you're new to data prep or just need to clean up a dataset quickly, it's built to keep things simple and clear.
“Table Recipe gives non-technical users the ability to create datasets on their own, which is essential as companies scale to 100,000 users.”
— Alessandro Furtado, Principal Consultant, Farol Data Analytics
Prep that Fits into Your Workflow
Fully integrated into Qlik Cloud Analytics, you can use Table Recipe on its own for quick, one-off table prep, or embed it into larger Data Flow workflows to combine and shape multiple data sources. As you build your recipe, it automatically generates Qlik Script behind the scenes, giving you the power of scripting without complexity. Easily collaborate in shared spaces, track changes in Activity Center, and send your cleaned data directly into dashboards, apps, ML or AI models.
Key Highlights
Learn More
We are excited to announce that an updated version of the Qlik Learning Admin Portal will be launching on September 4th! This update will introduce additional functionality that will enhance experience of Learning Admins.
Please note that during this update, some features may be temporarily unavailable.
Key updates include:
If you are a Learning Admin, we encourage you to log into the Qlik Learning Admin Portal and explore these new features as well as the updated Admin Guide.
Questions? Reach out to us education@qlik.com
Don't miss our previous Q&A with Qlik! Pull up a chair and chat with our panel of experts to help you get the most out of your Qlik experience.
Our Qlik experts held a Qlik Cloud Migration live Q&A with Qlik webinar, answering all your questions about migration from on-prem to Qlik Cloud and using the tools that are available to make the process easier.

Educational and Product Related post have most engagements

Showing when to post and which content is the best

Everyone interested in Social media content

Showing when to post and which content is the best
The Pick function is a chart and script function that can be used to return the nth expression in a list based on a field or value. It is a good alternative to a large or nested If statement where each If statement needs to be evaluated. With the pick function, one value is read to determine which expression should be returned.
The syntax of the pick function according to Qlik Help looks like this:
pick(n, expr1[ , expr2,...exprN])
The first parameter (n) should be an integer. Based on this value, the first expression, second expression, third expression or nth expression is returned. Let’s look at an example. In the table below, there are three dimensions listed – the state abbreviation, the state name and a state code for the U.S. region the state is in. One is the Northeast region, 2 is the Midwest region, 3 is the South region and 4 is the West region.
The pick function can be used to show the region name that is represented by the state code. This can be done by adding the measure below to the table.
The pick function will assess the value of StateCode and based on that return a region. With the measure added to the table, the region name can also be displayed as seen below.
The pick function measure used in the table above is simpler than a nested if statement and is easy to read. It optimizes the table, returning results faster and using less resources to evaluate. Try it out.
Thanks,
Jennell
Hello Qlik Users,
Execution tokens will become header parameters on February 1st, 2026.
On January 13th, 2025, Qlik introduced breaking changes to the execution token functionality for triggered automations.
One of the biggest shifts in education over the past few years has been the rise of self-paced learning. With students juggling busy schedules, internships, part-time jobs, and extracurricular activities, the traditional classroom model doesn’t always provide the flexibility they need. That’s why universities and employers alike are placing more emphasis on programs and tools that let learners set their own pace.
Self-paced learning allows students to:
Revisit difficult topics without feeling rushed.
Move ahead quickly in areas they already understand.
Balance academics with personal and professional responsibilities.
And it’s not just about convenience. Research shows that when students have control over their learning journey, they retain more knowledge and build stronger skills for the real world.
The Qlik Academic Program is designed with this same philosophy in mind. Every student and educator who joins the program gets free, self-paced access to:
Online training modules on data analytics and visualization.
Qualifications and certifications to showcase on a resume or LinkedIn profile.
Interactive lesson plans and resources that can be used in or outside the classroom.
Qlik software, so students can practice and apply their skills right away.
Whether you’re a professor designing flexible assignments or a student looking to upskill on your own schedule, Qlik’s Academic Program makes it possible to learn at your pace and still achieve professional-level results.
With the demand for data literacy and analytics skills growing across every industry, students who take advantage of self-paced resources like Qlik’s Academic Program are positioning themselves ahead of the curve. Employers aren’t just looking for degrees—they want proof of hands-on, applicable skills. Earning Qlik qualifications through self-paced learning is one way to stand out.
Education isn’t just happening in the classroom anymore—it’s happening anytime, anywhere. If you’re ready to take control of your learning journey and gain the skills employers value most, the Qlik Academic Program is here to support you every step of the way.
👉 Sign up today and start learning at your own pace: https://www.qlik.com/us/company/academic-program
Normally, new fields are created in the script and stored as additional columns in the data model. Just write your expression inside a Load statement and you’re done:
But you can also do the same thing in the user interface, and then it could look like this:
So, which way should you do it?
Generally, I would say that you should put as much as possible in the script. In most cases, it is far better to have these calculations pre-made, so that they do not have to be calculated at run-time, i.e. when the user clicks.
The Qlik Engine has two fundamentally different ways to calculate such expressions: As “Calculated dimension” or as “Field-on-the-fly”. The engine automatically decides how a specific calculation should be made, depending on the expression.
Fields-on-the-fly
This method was introduced in one of the early versions of Qlik Sense. As the expression is evaluated, the engine creates an additional column in the data model, with a corresponding symbol table. Just as for a real field, the selection is stored in state vectors linked to this column.
In the picture below you can see a table dimension defined as “=Year(Date)”, which results in four rows.
Now look at the selection bar: When a selection is made, the corresponding year is selected in the Field-on-the-fly called “=Year(Date)” – a field that does not exist in the original data model. And in the selection bar you can see that the selection is indeed stored in this “virtual” field, and not in the Date field.
Calculated dimensions
This is the old-fashioned way, and this is how QlikView still today does it. In the example below, the table dimension is “=Aggr(Year(Date),Date)” and it also results in four rows. Logically, this expression is equivalent to the above one.
But here the selection is instead made in in the underlying field: in the Date field.
It is always possible to create a Calculated dimension, no matter what the expression looks like. But the same is not true for Fields-on-the-fly. There are limitations to when they can be generated:
If a Field-on-the-fly cannot be generated, the expression will be evaluated as a Calculated dimension instead.
Performance
Both Calculated dimensions and Fields-on-the-fly can cause performance problems, so it is a good idea to consider moving them to the script instead. Fields-on-the-fly can almost always be moved to the script.
For Fields-on-the-fly, the performance problems become especially severe if the underlying field has many distinct values. A common example is when calendar functions like Year and Month are used on a timestamp with millions of distinct values, rather than on a date with fewer values, like 2 x 365 dates. Further; since Fields-on-the-fly are added to the data model, and the hash of the data model is used in the ID of the cache entry, Fields-on-the-fly can prevent the cache from being re-used properly.
To improve the performance, Master dimensions containing Fields-on-the-fly are now (since Nov 2019) calculated already when the first user opens the app, something which can increase the time it takes to open a document. On the other hand, this will improve the response time considerably in the analysis phase, as well as mitigate cache problems, so we are confident that this is a correct decision. Hence, put your Fields-on-the-fly in the Master dimensions!
Should you want to tweak the behavior of the engine, you can always try the following:
But most importantly - don't use a timestamp to create your calendar! Use a date instead:
Good luck!
HIC
Read also in Calculated Fields in Qlik Data Analytics .
Hi everyone,
Want to stay a step ahead of important Qlik support issues? Then sign up for our monthly webinar series where you can get first-hand insights from Qlik experts.
The Techspert Talks from August look at Migrating to Qlik Cloud Analytics.
But wait, what is it exactly?
Techspert Talks is a free webinar held on a monthly basis, where you can hear directly from Qlik Techsperts on topics that are relevant to Customers and Partners today.
In this session we covered:

Some of the discoveries from using this app include: Business users can easily upload and manage non-system data to enhance dashboards. Automated user and timestamp logging improved transparency and governance. KPI-based folder navigation made organizing and locating files much simpler. Quick upload/delete reduced delays and improved reporting efficiency. Developers were freed from repetitive manual uploads and could focus on higher-value work.

The app has empowered business teams with self-service data uploads, reduced dependency on IT, and accelerated reporting cycles. By making complete and reliable data quickly available in dashboards, it has improved both decision-making speed and confidence.

The app is primarily used by business stakeholders such as Deputy Managers, managers, analysts, and operations teams across different functions. It is accessed directly in Qlik SaaS and used frequently to upload KPI-specific data not available in core systems. Since multiple departments rely on it, the app has become an important enabler for timely reporting and analysis.

The app has empowered business teams with self-service data uploads, reduced dependency on IT, and accelerated reporting cycles. By making complete and reliable data quickly available in dashboards, it has improved both decision-making speed and confidence.
You might be familiar with the concept of Window functions from Excel or SQL and know just how convenient and powerful they can be. Well, Qlik has one that you can use right in your Load Script!
Simply put, the Window function performs calculations over multiple rows producing a value for each row separately, unlike aggregate functions that will give a single value for the group of rows aggregated together.
You can think of it as looking through a window at your dataset and only seeing a subset based on different parameters you set which we will go over in a minute.
If you wanted to calculate the average transaction_amount by customer, you could of course do this in the chart expression with something like this: aggr(avg(transaction_amount), customer_id), or if you’re in the Load Script, perform another load and use Group By as follows:
Temp:
//inline load here
Transactions:
NoConcatenate Load
transaction_id,
transaction_date,
transaction_amount,
transaction_quantity,
customer_id,
size,
color_code
Resident Temp;
Load customer_id,
Avg(transaction_amount) AS AvgAmount
Resident Transactions
Group By customer_id;
But this requires a separate load and can’t just be done on the same loaded table, and it might not be ideal for more complex use cases.
This is where the Window function comes in, and the above can be re-written as follows:
Temp:
//inline load here
Transactions:
NoConcatenate Load
transaction_id,
transaction_date,
transaction_amount,
transaction_quantity,
customer_id,
size,
color_code,
Window(Avg(transaction_amount),customer_id) as AvgCustTransaction
Resident Temp;
Much easier!
Syntax:
Let’s take a closer look at the function syntax to understand it a little more and see what other capabilities it has:
Window( input_expr, [partition1, partition2, ...], [sort_type, [sort_expr]], [filter_expr], [start_expr,end_expr] )
Refers to the input expression calculated and returned by the function. It must be any expression based on an aggregation, such as Median(Salary). For example:
Window(Median(Salary)) as MedianSalary
The input can also be a field name with no aggregation applied and in that case Qlik treats it like the Only() function. For example:
Window(Salary,Department) as WSalary
After input_expr, you can define any number of partitions. Partitions are fields that define which combinations to apply the aggregations with. The aggregation is applied separately with each partition. (Think of it as the Group By clause). Multiple partitions can be defined. For example:
Window(Avg(Salary), Unit, Department, Country) as AvgSalary
The sort type and the sort expression can be specified optionally. sort_type can have one of two values ASC (Ascending sorting) or DESC (Descending sort)
If sort_type is defined, then the sorting expression must also be defined. This is an expression that decides the order of the rows within a partition.
For example:
Window(RecNo(), Department, 'ASC', Year)
// results within the partition are sorted Ascendingly by year
The optional Filter Expression is a Boolean expression that decides whether the record should be included in the calculation or not.
This parameter can be omitted completely, and the result should be that there is no filter.
For example:
Window(avg(Salary), Department, 'ASC', Age, EmployeeID=3 Or EmployeeID=7) as wAvgSalaryIfEmpIs3or7
Optionally, you can set the argument for sliding window functionality. A sliding window requires two arguments:
For example, if you want to include the 3 preceding rows, the current row, and the 2 following row:
Window(concat(Text(Salary),'-'), Department, 'ASC', Age, Year>0, -3, 2) as WSalaryDepartment
Examples:
Let’s take a look at different use case examples:
1- Adding a field containing an aggregation
Transactions:
Load
*,
Window(Avg(transaction_amount),customer_id) as AvgCustTransaction;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, M, Orange
3752, 20180916, 5.75, 1, 5646471, S, Blue
3753, 20180922, 125.00, 7, 3036491, L, Black
3754, 20180922, 484.21, 13, 049681, XS, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
3758, 20180924, 153.42, 14, 2038593, L, Red
3759, 20180925, 7.42, 5, 203521, M, Orange
3760, 20180925, 80.12, 18, 5646471, M, Blue
3761, 20180926, 3.42, 7, 3036491, XS, Black
3763, 20180926, 63.55, 12, 049681, S, Red
3763, 20180927, 177.56, 10, 2038593, L, Blue
3764, 20180927, 325.95, 8, 203521, XL, Black
];
2- Adding a field containing an aggregation filtered for specific values
Transactions:
Load
*,
Window(Avg(transaction_amount),customer_id, color_code = 'Blue') as AvgCustTransaction;
Load * Inline [
// Table goes here
];
3- Adding a field with a sliding window
Transactions:
Load
*,
Window(Avg(transaction_amount),customer_id, 'ASC', -1, 1, 0, 1) as AvgCustTransaction;
Load * Inline [
// Table goes here
];
This concludes this post, I hope you found it helpful!
A qvf with all the scripts is attached for reference.
- Thanks
If you’re running Qlik on-premise, NPrinting is the go-to for producing highly formatted, template-based reports. It works seamlessly with QlikView and Qlik Sense Enterprise on Windows, letting you design in familiar tools like Excel, Word, PowerPoint, and PixelPerfect, then deliver reports as PDFs, HTML, or Office files to folders, the NPrinting NewsStand, email recipients, or even the Qlik Sense Hub — all with scheduling, cycling, and bursting built in.
In Qlik Cloud, reporting takes a different shape. You still have built-in options for creating and delivering reports directly in the tenant interface, but you also gain something new: an API-driven approach that opens up possibilities well beyond what’s available in the UI. And that’s where the Qlik Cloud Reporting API comes in.
What You Can Do in Qlik Cloud (Inside the Interface):
Qlik Cloud Reporting allows you to create reports from apps using native templates or PixelPerfect templates, then distribute them as PDFs, Excel files, or other formats. Through the tenant interface, you can:
Create and edit report templates
Apply selections and filters
Schedule recurring reports
Deliver reports to email recipients or Qlik Cloud spaces
These capabilities are fully documented in Qlik Help, and for many users, the UI-based workflow is all they need.
The Reporting API enables everything above — but from outside Qlik Cloud.
That means you can:
Trigger reports from external systems
Integrate reporting into your own applications
Automate delivery to custom destinations
Include Qlik reports in larger automated workflows (think: customer portals, scheduled partner updates, or triggered operational reports)
If you’ve ever wished you could generate a Qlik report as part of an end-to-end automation pipeline, the API is the key.
Reporting with Qlik Automate
Not every reporting workflow requires custom code. Qlik Automate lets you build automated reports using the Qlik Reporting Service through a low-code, drag-and-drop interface. Reports can be delivered as PDF or PowerPoint and distributed via email or cloud connectors like SharePoint, OneDrive, Dropbox, Google Cloud Storage, Amazon S3, or SFTP.
Some common use cases include:
Bursted reports where each recipient only sees their own data
Looping reports that generate one page per dimension value (e.g. region or product)
Cross-app reporting combining insights from multiple Qlik Sense apps
External delivery to recipients without Qlik Cloud accounts
Think of Automate as the middle ground — more flexible than the tenant UI, but easier to adopt than full API coding.
How the Qlik Cloud Reporting API Works
At its core, the process involves:
1- Sending a POST request to create a report generation job.
2- Polling the outputs endpoint to check when the job is complete.
3- Downloading the generated file once it’s ready.
Here’s a real example:
POST https://<tenant>/api/v1/reports
Body:
{
"type": "sense-pixel-perfect-template-1.0",
"sensePixelPerfectTemplate": {
"appId": "1234567-a480-43f5-bc88-825736d8842f",
"templateId": "1a2b3c-ba56-46ee-ac74-4746dd145816",
"templateLocation": {
"path": "https://<tenant>/api/v1/report-templates/3de5c6c2-ba56-46ee-ac74-4746dd145816",
"format": "url"
},
"selectionChain": [
{
"selectionType": "selectionFilter",
"selectionFilter": {
"selectionStrategy": "stopOnError",
"selectionsByState": {
"$": [
{
"fieldName": "Currency",
"defaultIsNumeric": false,
"values": [{ "text": "USD", "isNumeric": false }]
},
{
"fieldName": "Year",
"defaultIsNumeric": true,
"values": [{ "number": 45778, "isNumeric": true }]
}
]
}
}
}
]
},
"output": { "type": "pdf", "outputId": "pp", "pdfOutput": {} }
}
Response:
{
"message": "Report request has been accepted and is being processed.",
"outputsUrl": "https://<tenant>/api/v1/reports/1234567-bed1-4024-8614-37bb898a41b0/outputs",
"requestId": "987654321-bed1-4024-8614-37bb898a41b0"
}
Here, you’ll notice:
outputsUrl gives you the endpoint to poll for the report status.
requestId uniquely identifies the job.
GET https://<tenant>/api/v1/reports/{requestId}/outputs
Response:
{
"data": [
{
"cycleSelections": [],
"location": "https://<tenant>/api/v1/temp-contents/2342346c185413cc5ec121b",
"outputId": "pp",
"sizeBytes": 382078,
"status": "done",
"traceId": "abc1234d2e88db9bc155d8a732132899d"
}
],
"links": {
"self": {
"href": "https://<tenant>/api/v1/reports/{requestId}/outputs"
}
}
}
Key things to look for in the response:
status — "done" means the report is ready.
location — the direct link to the generated file.
Once the status is "done", perform a GET to the location URL.
For example:
GET https://<tenant>/api/v1/temp-contents/2342346c185413cc5ec121b
This returns the actual PDF (or other format, depending on your request).
Where to Learn More:
You can visit these pages for full API documentation and working samples:
Qlik Cloud’s tenant interface is powerful for building and scheduling reports right inside your analytics environment — but the Reporting API takes it further. By integrating directly with your external systems, you can build modern, automated, and scalable reporting workflows that go well beyond what’s possible within the tenant.
If you’re ready to move from manual scheduling to full automation, the Reporting API is where you start.