Daily executive KPI breach alerts from Qlik to Slack and Jira

By General Input

Every weekday at 8am, check your Qlik dashboards for KPIs that crossed your thresholds, post a Slack heads up, and open a Jira ticket for the ones that need investigation.

Integrations

  • Qlik Cloud
  • Slack Bot
  • Jira

Type

Agentic Task

Categories

  • Operations
  • Sales

Build me an agent workflow that runs every weekday morning at 8am in my local time zone and alerts my leadership team when any executive KPI in Qlik Cloud has breached its threshold. It should also open a Jira ticket for the breaches that need analyst follow-up. If nothing breached, it should stay silent rather than post an all-clear.

Trigger: cron, Monday through Friday at 08:00 in the configured time zone (default America/New_York).

Configuration the prompt should expose at the top so I can edit it without touching the workflow:

1. KPI list. An array of KPIs to monitor. Each entry has: a human-readable name (e.g. 'Pipeline coverage'), the Qlik Cloud app ID (UUID), the sheet ID, the visualization/object ID for the chart that holds the metric, the field/column inside that chart that carries the current value, a comparison operator (>=, <=, >, <, ==), a threshold value, an optional unit (%, $, count, days), and an optional 'investigation_rule' block that says when this KPI also warrants a Jira ticket (for example {compare_to: 'prior_week_value', operator: 'pct_drop', threshold: 20} meaning 'open a ticket if this week's value is more than 20% below last week's value on the same chart').

2. Slack target. A channel name like #revenue-ops or #exec where the breach summary should be posted via the Slack Bot integration.

3. Jira target. A Jira project key (e.g. OPS or REVTRIAGE), an issue type (default 'Task'), an optional default assignee account id, and an optional default priority. This is where any breach that matches an investigation_rule should be filed.

Default starter values (placeholders the user is expected to replace): KPIs = [Pipeline coverage, Weekly bookings, Net churn rate, Support backlog age]; Slack channel = #revenue-ops; Jira project key = REVTRIAGE; time zone = America/New_York.

On each run, the agent should:

Step 1. For every KPI in the list, use Qlik Cloud 'Get Visualization Data' with the configured app ID, sheet ID, and visualization ID to read the current value of the metric. If the chart also contains a prior-period column (e.g. last week, last month), capture that too so investigation rules can compare period over period. If a fetch fails for one KPI, log it and continue with the rest, do not crash the run.

Step 2. Compare each KPI's current value against its operator and threshold. A KPI is 'breached' when the comparison is true (e.g. coverage <= 3.0x, churn >= 4%, support backlog >= 100 tickets aged >7d, weekly bookings <= $500k). Build a list of breached KPIs with: name, current value, threshold, unit, the prior period value if available, and a short plain-English 'likely driver' sentence derived from what the chart shows (e.g. 'coverage fell because Enterprise pipeline created last week is down 38% vs. the prior week').

Step 3. If the breached list is empty, stop the run. Do NOT post anything to Slack and do NOT open any Jira tickets. A silent run is the correct behavior.

Step 4. If there is at least one breach, use Slack Bot 'Send a Message' to post a single message in the configured channel. Format: a short top line like ':rotating_light: Morning KPI check, N breaches today', then one bullet per breached KPI with the name in bold, the current value, the threshold in parentheses, and the one-line likely-driver read. Use Slack mrkdwn (single asterisks for bold, not double). Keep the whole message under ~1500 characters so it stays scannable.

Step 5. For every breach whose KPI defines an investigation_rule AND that rule evaluates true (e.g. coverage dropped >20% week over week), use Jira 'Create Issue' on the configured project. Summary: 'KPI breach: <KPI name> — <current value> (threshold <threshold>)'. Description (Atlassian Document Format): a short paragraph restating the current value, threshold, prior-period value, and the same likely-driver sentence, plus a link to the Qlik app/sheet so the analyst can open the chart directly. Use the configured issue type, default assignee, and priority. After creating each issue, append its Jira issue key into the Slack message so the team sees that a ticket already exists (either by updating the message at the end, or by posting the ticket links as a threaded reply to the Slack post).

Guardrails: never open more than one Jira ticket per KPI per day, even if the workflow is re-run. Treat missing/null KPI values as 'unknown', not as a breach. If Qlik returns no data for a configured chart, include that KPI in the Slack message under a 'Data unavailable' section so the team knows the dashboard, not the metric, is the problem.

Integrations to use: Qlik Cloud (Get Visualization Data), Slack Bot (Send a Message), Jira (Create Issue).

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them