Skip to main content

Automatic propagation of a report

Overview

In multi-tenant deployments, it is common to maintain a single Qlik Sense Master application that is duplicated for each end customer; often resulting in 100+ individual app instances. This duplication is typically automated through scripts and APIs.

Without automatic propagation, managing reports, tasks, connections, and filters separately for every customer app instance becomes impractical at scale. Qalyptus solves this by allowing you to build a report once against the Master app and then propagate tasks to any number of target apps via API, with Qlik Sense application references replaced dynamically at execution time.

Why this works

When you duplicate a Qlik Sense application, all object IDs (charts, tables, etc.) remain identical in the new app, even if you later reload data from different sources or modify object properties such as titles or columns. Qalyptus leverages this to apply the same report layout to any duplicated app instance.

Workflow

Standard workflow

Without automatic propagation, the typical setup is:

  1. Create a report connected to the Qlik Sense Master app.
  2. Optionally add filters based on the Master app.
  3. Publish the report to Qalyptus Server.
  4. Create a task and add the report(s) to it.

This works for a single app, but requires repeating all steps manually for every additional app instance.

Automatic propagation workflow

With automatic propagation, you only set up the report once and use the API to scale it:

  1. Create a report connected to the Qlik Sense Master app (same as before).
  2. Optionally add filters based on the Master app.
  3. Publish the report to Qalyptus Server and create a task.
  4. Call the duplicateTask API endpoint for each target app instance, providing an app mapping that replaces the Master app ID with the target app ID.
  5. Qalyptus creates a new task where all reports are automatically linked to the specified target apps.

The duplicated tasks run independently, each generating reports from their respective app instances.

API Reference

Duplicate a task with app overrides

Use the duplicateTask endpoint to create a copy of an existing task and redirect its reports to different Qlik Sense applications.

Endpoint: POST /api/v2/tasks/{taskId}/duplicate

Request body:

{
"NewName": "string (optional)",
"OverwriteReportApps": [
{
"ReportId": "guid (required)",
"QlikApps": [
{
"QlikAppId": "guid (required)",
"NewQlikAppId": "guid (required)"
}
]
}
]
}
FieldTypeRequiredDescription
NewNamestringNoName for the duplicated task. If omitted or null, an incremented name is generated automatically.
OverwriteReportAppsarrayNoList of app mappings to apply per report in the task.
OverwriteReportApps[].ReportIdguidYesID of the report within the task to apply the mapping to.
OverwriteReportApps[].QlikApps[].QlikAppIdguidYesThe original Qlik Sense app ID used in the report (typically the Master app).
OverwriteReportApps[].QlikApps[].NewQlikAppIdguidYesThe target Qlik Sense app ID to substitute at runtime.

Response: Returns the ID of the newly created task.

Example - duplicate a task and redirect two reports to different apps:

{
"NewName": "Monthly Report - Customer A",
"OverwriteReportApps": [
{
"ReportId": "a1b2c3d4-0000-0000-0000-000000000001",
"QlikApps": [
{
"QlikAppId": "master-app-guid-here",
"NewQlikAppId": "customer-a-app-guid-here"
}
]
}
]
}

Update app mappings on an existing task report

App mappings can also be added, modified, or removed on an existing task report using the updateTaskReport endpoint. Include the OverwriteReportApps object in the request body to manage the mappings without duplicating the task.

Endpoint: PATCH /api/v2/tasks/{taskId}/reports/{reportId}

Viewing app mappings in the UI

When a task report has app mappings configured, an Overwrite Report Apps tab appears in the task report settings panel (Task → Report → Overwrite Report Apps).

This tab displays a read-only list of all active source → target app ID mappings for that report.

note

App mappings cannot be modified from the interface. Use the updateTaskReport API endpoint to manage them programmatically.

How it works at runtime

When a task executes, Qalyptus checks each report for active app mappings:

  • If OverwriteReportApps is configured for a report, Qalyptus dynamically substitutes the original Qlik Sense app ID with the mapped NewQlikAppId for all connections, filters, and conditions used by that report.
  • The report is generated entirely from data in the target app (NewQlikAppId), not the original Master app.