Weekly Qlik Cloud KPI snapshot to Google Sheets
Every Monday at 6am, log the current value of your headline Qlik Cloud KPIs to a Google Sheets tracker so finance and analytics keep a clean longitudinal history.
Build me a deterministic code workflow that captures a weekly KPI snapshot from Qlik Cloud into a Google Sheets tracker. Trigger: cron, every Monday at 6:00am in the user's local timezone.
Inputs the workflow needs (expose these as configurable inputs on the workflow, not hardcoded):
1) A list of KPIs to snapshot. Each entry has: appId (Qlik app UUID), appName (human readable, used in the row), objectId (the visualization / chart object ID inside that app), and kpiName (the human readable label that will appear in the spreadsheet). The list can mix charts from multiple Qlik apps in one run.
2) The destination Google Sheets spreadsheet ID and the tab name to append to (default tab name: "KPI Tracker").
Steps:
For each KPI entry in the list, call Qlik Cloud's Get Visualization Data using the appId and objectId to fetch the current value of that visualization. Extract the single headline value. Qlik returns hypercube data, so pull the first measure value (qNum if numeric, else qText) from the first row of the first data page. If the result is null, empty, NaN, or the call errors for that one chart, skip the entry and continue to the next one. Do not let one broken chart abort the whole run, and do not write a blank row for it.
Collect every successful KPI read into an array of rows, then make a single call to Google Sheets Append Values to append all rows to the configured tab in one batch. Use valueInputOption USER_ENTERED so numeric values land as numbers and the source_url renders as a clickable link.
Row schema (in this column order): snapshot_date (ISO date, the Monday the run fired), kpi_name (from the config), app_name (from the config), visualization_id (the objectId), value (the numeric or text value), source_url (deep link back to the chart in Qlik Cloud, of the form https://{tenantHostname}/sense/app/{appId}/sheet/{sheetId}/state/analysis — if sheetId is not provided in the config, link to the app root: https://{tenantHostname}/sense/app/{appId}).
Allow an optional sheetId per KPI entry so the source_url can deep link straight to the sheet that contains the chart. If sheetId is omitted, fall back to the app root URL.
Make the row schema easy to extend. If the user later adds extra columns to their tracker tab (for example: business_unit, owner, target, currency), they should be able to add the matching fields onto each KPI list entry and have those values written into the corresponding columns. Document this in the workflow's description.
Logging: at the end of each run, log a short summary of how many KPIs were captured, how many were skipped, and the spreadsheet + tab they were appended to. If any KPI is skipped, log the kpiName and the reason.
Do not assume the tracker tab is empty. Append Values must add under whatever already exists. Do not write or overwrite the header row on every run; assume the user has set up the header row once.
Additional information
What does this prompt do?
- Reads the current value of each KPI you list from your Qlik Cloud dashboards every Monday morning.
- Appends one row per KPI to a Google Sheets tracker tab with the snapshot date, KPI name, app name, chart ID, value, and a link back to the source visualization.
- Skips any chart that returns no value so your history stays clean and free of blank rows.
- Gives finance, analytics, and exec teams a permanent record of headline numbers that lives outside the BI tool, ready for board prep and trend charts.
What do I need to use this?
- A Qlik Cloud account with access to the apps and dashboards you want to track.
- A Google account with edit access to the Google Sheet you want to log into.
- The list of KPIs you want logged each week (app name, dashboard chart, and a human-friendly label for each one).
How can I customize it?
- Change when it runs. Pick any day and time, or run it daily, monthly, or end of quarter.
- Edit the KPI list. Add or remove charts, rename labels, or point at a different Qlik app at any time.
- Extend the row layout. Add columns like business unit, owner, target, or currency, and the workflow will fill them in alongside the value.
- Swap the destination tab or spreadsheet so different teams get their own clean log.
Frequently asked questions
Do I need to know which Qlik chart IDs to use?
What happens if a chart is empty or broken that week?
Can I track KPIs from more than one Qlik app at the same time?
Will this overwrite my existing tracker tab?
Can I add my own columns, like target or business unit?
Stop copy pasting weekly KPIs out of Qlik.
Connect Qlik Cloud and Google Sheets once, and Geni logs your headline numbers every Monday morning.