The Citadel · 30 min mission

Weekly Executive Reporting Factory with Copilot, Jira, Confluence, Rovo, and Tableau

Build the weekly reporting workflow as a source-backed operating console: evidence first, Confluence draft second, AI review third, approval last.

reportingconfluencepower-automateworkshopFact-checked 2026-06-16
On this page

Build outcome

Build a personal, no-code weekly reporting factory for a non-developer program leader — not a company-wide platform. It collects evidence from Outlook, Jira, Confluence, and Tableau, stages it in approved storage, assembles a Confluence-first draft, uses Atlassian Rovo and Microsoft 365 Copilot to review and tighten the wording, then a human approves and publishes a reviewed Confluence report as the single record of truth.

The mental model: the factory is four single-responsibility agents over deterministic flows. A Data-Collector gathers and cites evidence; a Report-Drafter writes the draft from that evidence only; a QA-Reviewer checks the draft against the evidence; and a Report-Orchestrator runs the three in order, on a schedule, and hands the result to a human approval. Flows move and gate data; agents read, reason, and write words; nothing publishes before review.

The audience is non-developers — business users, TPMs, delivery managers, operations leads, and program leaders who can configure enterprise tools but do not want to write code or maintain middleware. Build it at the highest of three levels your access allows: a scheduled prompt (draft only), the tested Power Automate flow MVP, or the full four-agent factory.

How to read this guide

Work top to bottom — each section sets up the next. Concept: the factory, the two diagrams, and the agent-vs-prompt-vs-flow decision. Set up the sources (Phases 0–5): the Jira filters, Tableau views, Outlook folders, and Confluence workspace each agent reads. Build the flows (Phase 6): the deterministic spine that moves and gates data. Build the agent layer: the four Copilot Studio agents that reason over the flows. Assemble, review, and approve (Phases 7–9). Automate and verify (Phase 10): schedule the orchestrator, run it once, and confirm the scheduled run fired.

What you are building

Build this

Scheduled Power Automate cloud flows, managed connections, Jira saved filters, Confluence templates and labels, Tableau custom-view subscriptions, Outlook reporting folders, four Copilot Studio agents (Data-Collector, Report-Drafter, QA-Reviewer, Report-Orchestrator), Rovo/Copilot review, and an approval record.

Do not build this

Do not design this around a custom reporting platform, Azure Functions, Azure Logic Apps, Azure AI Foundry, Azure AI Studio, Azure OpenAI, Microsoft Graph API development, custom Python scripts, custom backend services, LangChain, AutoGen, CrewAI, custom MCP servers, direct REST API implementation, custom OAuth work, or developer-maintained middleware.

The factory, end to end

Architecture diagram

The Confluence-first reporting factory

Scheduled collection stages evidence, builds a Confluence draft, runs Rovo and Copilot refinement, then waits at a human approval gate before the final report becomes the archive record. This is the infrastructure view; the agent reasoning layer is shown in the separate handoff graph.

source evidenceflow controldraft workspaceAI refinementhuman gatefinal record
Confluence-first unattended weekly reporting factoryA five-lane architecture diagram. A Power Automate schedule in the run control lane drives source collection from Outlook, Jira, Tableau, and Confluence into a weekly staging folder. Staging feeds a Confluence draft page in the synthesis lane, which is refined by Rovo and Copilot in the AI review lane. The refined draft reaches a human review gate, and only after approval does it become the published final Confluence report. The accent blue marks the flow-control and AI spine, neutral cards mark source evidence, amber marks the human gate, and emerald marks the final published record.01Run control02Source collection03Synthesis04Approval05Publish + auditPowerAutomateweekly recurrencemanaged connectionsOutlook M365folders · searchesemail evidenceJirasaved filters, dashboardsJQLTableaucustom viewsPNG/PDF snapshotsConfluenceprevious reportsdecisions · actionsWeeklystaging foldersource linkssnapshotsrun notesConfluencedraft pagetemplatelabelssource refsRovocompare · summarizeevidence checkCopilotOutlook summaryWord/PPT polishHumanreview gatedecisionrework requestfact checkFinalConfluence reportpublished pagearchive · source trail
The draft is intentionally not the final report. Publication happens only after evidence review, AI-output cleanup, and a human approval at the gate.
The infrastructure view: evidence sources on the left, approved staging in the middle, the reviewed Confluence report on the right. Each source stays in its own lane; nothing publishes before review. The agent reasoning layer that sits on top is shown in the next diagram.

The reasoning layer

Four-agent orchestration

Agent handoff graph

How the scheduled flow, the parent orchestrator, and its three child agents pass typed payloads end to end. Evidence flows right across four lanes; the only backward edge is the single QA → Drafter fix loop.

  • Agent / orchestrator
  • Tool-flow / source
  • Human-approval gate
  • Published record
  • QA → Drafter fix loop
Weekly Executive Reporting Factory agent handoff graphFour lanes left to right — Trigger, Collect, Reason, and Gate and Publish. A scheduled agent flow passes program, report week, report mode, and Jira filter scope to the WeeklyExec-ReportOrchestrator parent agent. The orchestrator drives three child agents in order: DataCollector, which calls Jira, Outlook, and Confluence tool-flows and reads a Tableau snapshot folder; ReportDrafter, which produces a report draft and claim map; and QAReviewer, which returns a pass or fail verdict with a fix list and can loop once back to the drafter on failure. The orchestrator then stages the final draft, starts a human approval flow, and on approval a governed Confluence publish step writes the published weekly report page, the single record of truth.TRIGGERCOLLECTREASONGATE & PUBLISHprogram, reportWeek, reportMode, jiraFilterScopeprogram, reportWeek, stagingPath, jiraFilterScopeevidenceBundlereportDraft + claimMapon fail: one fix loopfinalDraft + qaVerdictdraft + evidence links, qaVerdict, checklistapprove / reject + commentson approvegoverned write[Schedule]Scheduled agent flow · Mon 07:00WeeklyExec-ReportOrchestratorParent agent · published to TeamsWeeklyExec-DataCollectorChild agent · normalizes evidenceGetJiraWeeklyFactsGet emails V3 · filter-sub folderGetOutlookEvidenceGet emails V3 · real folderGetConfluenceContextRead-only page contentTableau snapshot folder04_Tableau · read (Flow B)WeeklyExec-ReportDrafterChild agent · structured draftWeeklyExec-QAReviewerChild agent · pass / failStageFinalDraftFlow → 05_Final-Draft/StartApproval — Flow CApprovals · durable, audited[Reviewer / Human]Approve / reject + commentsConfluence publishManual · Atlassian Automation · RovoPublished weekly report pageLabel: published · record of truth
Four lanes left to right — Trigger (scheduled flow), Collect (DataCollector + its tool-flows pulling Jira / Tableau / Outlook / Confluence), Reason (Drafter → QA loop), and Gate & Publish (stage → approval → governed Confluence write). All three workers are child agents of the orchestrator, which mediates every handoff (worker → orchestrator → next worker); it is drawn as one forward flow for clarity. Evidence flows right, never backward except the single QA-fix loop. The connector cannot create or update Confluence pages, so the published page is always a separate governed/manual write outside the agent graph. Full typed payloads are in “Copy graph.”
The agent view: a scheduled flow triggers the Report-Orchestrator, which fans out to the Data-Collector, Report-Drafter, and QA-Reviewer child agents in order, then stages the draft and starts a human approval. Evidence flows left to right; the only loop is QA sending one fix list back to the Drafter.

Agent, prompt, or flow?

Pick the lowest-autonomy option that does the job — do not default to "make an agent." A flow moves and gates data: it runs unattended on a clock, calls connectors, retries, and keeps run history. An agent reads, reasons, and writes words: judgement and synthesis, reused by name with a stable input/output contract. A saved prompt is the throwaway, one-shot version of an agent. The orchestrator never performs a side effect itself — it asks a flow to.

Pipeline stepBuild it asWhy
Weekly cadence kick-offScheduled flowMust fire unattended every week with durable run history.
Create run folder + init variablesFlowDeterministic, no judgement.
Collect Jira factsFlow tool, orchestrated by Data-CollectorThe connector exposes no JQL input, so the flow reads the filter-subscription emails; the agent only picks the scope.
Collect Tableau snapshotsFlow (Flow B)Attachment handling is deterministic.
Collect Outlook evidenceFlow toolFolder read is deterministic; the agent picks the scope.
Pull prior Confluence contextFlow toolRead-only connector actions exist and return full page body.
Normalize all evidence into one bundleAgent (Data-Collector)Cross-source synthesis into a typed contract, reused weekly.
Draft the reportAgent (Report-Drafter)Judgement and wording, source-constrained, reused.
QA the draftAgent (QA-Reviewer)Independent judgement; must stay separate from the drafter.
Human approvalFlow (Approvals)Durable, audited, not conversational-only.
Create/update the Confluence pageNot the connector — manual template, Atlassian Automation, or a governed Rovo agentThe connector has no create/update action.
Run weekly, tie it togetherAgent (Report-Orchestrator) triggered by a scheduled flowThe parent fans out to the workers; the clock stays a flow.
Where each pipeline step belongs. Use the lowest-autonomy option that works.

Reporting Factory Planner

Reporting factory planner

Choose the smallest weekly reporting factory that can work

Select your build level, source inputs, Confluence page creation path, and approval route. Copy the generated checklist into your Confluence build page before configuring flows.

Source inputs

Selected operating model

Build level
One program, core Jira filters, one Confluence template, Tableau snapshots, and a single approval owner.
Page creation
Power Automate prepares the evidence package; the owner creates the Confluence page from the template.
Best fallback when tenant policy blocks write automation.
Approval
Flow C sends an approval card and records approve/reject comments in run history.

Build checklist

  • Create Confluence parent pages, template, labels, and report archive
  • Create weekly staging folder pattern: Program / YYYY-WW / source folders
  • Require human review before replacing draft/review labels with published
  • Prepare bounded Jira saved filters and dashboard gadgets
  • Subscribe to Tableau custom views and route snapshot emails
  • Save Rovo compare, evidence-check, and executive-summary prompts in Confluence
  • Treat page creation as a manual review step until write automation is approved

What the weekly run will collect

Jira filters

Blockers, overdue items, aging work, defects, release scope

Tableau snapshots

Custom-view PNG/PDF snapshots and dashboard links

Rovo review

Compare, summarize, tighten, and flag weak claims in Confluence/Jira

Choose the smallest factory that can work: pick your build level, source inputs, Confluence write path, and approval route, then copy the generated build checklist into your Confluence build page.

Executive Cockpit / Guided Workshop / Command Center Narrative

Reporting factory console

Choose the view that matches the job

Cockpit for scanning, workshop for building one connected path, command center for explaining the system. The same Confluence-first architecture sits behind all three.

Areas ready0/6

Tick each area as you set it up. The badge above and the copyable record below update live — paste the record into your build-plan page so next week you know exactly what is still open.

Switch modes: scan readiness, follow click-level setup steps, or explain the source-to-publish factory. Guided Workshop uses what to click, what to enter, what you should see, and check before moving on panels.

Set up the sources

Phases 0–5 prepare the evidence each agent reads. The console above teaches the operating path; the artifacts below are the reusable pieces you create in each system before building Flow A.

AreaReady whenOwner
Power AutomateYou can create scheduled cloud flows, manage connections, use Office 365 Outlook, SharePoint/OneDrive, Jira, and Approvals/Teams actions.Report owner + platform admin if DLP policy blocks a connector.
Copilot StudioYou can create agents in a dev environment with an unmanaged solution, turn on generative orchestration, and publish to Teams (a Microsoft 365 Copilot or Copilot Studio User License with Copilot Credits allocated).Report owner + Power Platform admin.
ConfluenceYou can create pages/templates/labels in the reporting space, or have an approved Atlassian Automation/admin-owned draft creation path.Confluence space admin or reporting owner.
JiraYou can create/share saved filters and dashboards; the flow owner can read the same project/filter data.Jira project admin or delivery owner.
TableauYou can save custom views, subscribe to views, receive PNG/PDF where permissions allow, and route subscription mail.Dashboard owner or BI owner.
OutlookYou can create real folders and rules for project mail, leadership mail, and Tableau KPI feeds.Report owner.
Rovo / CopilotLicensed users can use approved AI features inside Atlassian and Microsoft 365 tools, with source review.Report owner + tenant/product admins.
Readiness matrix. Do this before building Flow A.
Content typePreferred handlingReview rule
Jira issue statusLink issue/filter/dashboard. Summarize only fields relevant to delivery risk.Verify the issue is still current before reporting.
Tableau KPILink live dashboard and preserve PNG/PDF snapshot in approved storage.Confirm custom view, filters, refresh time, and attachment readability.
Email evidenceSummarize decisions/follow-ups; link or cite thread only if allowed.Exclude private, HR, legal, procurement, customer-sensitive, and speculative content unless approved.
Confluence historyLink prior report, decision log, action tracker, meeting notes.Check permissions before linking restricted pages.
AI-generated textUse as draft wording or review notes.Keep confirmed facts, assumptions, and recommendations separate.
Data classification rules for the weekly report.

Phase 0: Governance and feasibility check

  1. Confirm approved tools

    In Power Automate, check Data > Connections for Office 365 Outlook, SharePoint or OneDrive, Jira, Confluence, Approvals, and Teams. If a connector is blocked by DLP policy, stop and record the fallback.

  2. Provision the agent environment

    In Copilot Studio (copilotstudio.microsoft.com), confirm you can build in a dev environment with an unmanaged solution named WeeklyExecReporting. Publishing needs a Microsoft 365 Copilot license, or a Copilot Studio User License with Copilot Credits allocated (metering is in Copilot Credits, not "messages"). For autonomous/recurrence triggers, ask the admin to enable solution-aware cloud flow sharing in the environment.

  3. Choose the Confluence write path

    Pick one: manual template launcher, Atlassian Automation Publish new page rule, a governed admin-owned draft path, or a governed Rovo agent. Do not assume the Microsoft Confluence connector creates pages, and do not ask the business user to configure custom OAuth or developer-owned middleware.

  4. Name owners

    Assign owners for Jira filters, Tableau custom views, Confluence template, Power Automate connections, the Copilot Studio agents, the approval route, and the weekly review.

Phase 1: Define the weekly report product

  1. Create the build plan page

    In Confluence, create Reporting Factory Build Plan under the reporting hub. Add a table: Section, Source of truth, Owner, Publish rule.

  2. Set source rules

    Jira owns delivery state. Tableau owns KPI values. Outlook owns communication evidence. Confluence owns history, decisions, actions, and the final archive.

  3. Set the naming convention

    Pages: Weekly Executive Report | Program | YYYY-WW. Run folders: WeeklyExec/{Program}/{YYYY-WW}/01_Email, 02_Jira, 03_Confluence, 04_Tableau, 05_Final-Draft. Agents: WeeklyExec-<Role> (e.g. WeeklyExec-DataCollector). Flows: WeeklyExec-Flow-A-Orchestrator. Keep it consistent so agent orchestration descriptions stay unambiguous.

Phase 2: Prepare Jira saved filters and dashboard

  1. Create saved filters

    Jira > Filters > View all work items > switch to JQL/advanced search > paste query > run > set columns Key, Summary, Status, Priority, Assignee, Due date, Fix version, Updated > save filter. Bound every query by project plus statusCategory/fixVersion/date — the Jira connector rejects unbounded JQL with 400 Bad Request. These filters feed the weekly run as Jira filter-subscription emails (set up in Phase 6), not a direct connector JQL call — the connector exposes no JQL input.

  2. Share filters before dashboards

    Open the saved filter details, update Shares, add the right group/project role, then save. If sharing is missing, ask for the Jira Create Shared Objects permission.

  3. Create the dashboard

    Jira > Dashboards > Create dashboard > name Weekly Executive Delivery Dashboard - Program > share viewers/editors > Edit > Add gadget.

  4. Use executive gadgets

    Use Filter Results for blockers/overdue/defects; Two Dimensional Filter Statistics for priority by status; Created vs Resolved for defect flow; Average Age or Time Since Work Items for stuck work; Road Map for release scope.

JQL Query Builder

JQL Query Builder

Build a saved filter query before copying it into Jira

Choose the executive-reporting signal, tune the project/release scope, then copy the JQL and the subscription setup card. The output is designed for saved filters, dashboard gadgets, and Flow A intake.

Current filterWeekly - Leadership attention - ABC

Scope controls

Generated JQL

01project = ABC AND statusCategory != Done02AND (priority in (Highest, High)03OR labels in (exec-attention, escalation, decision-needed)04OR due <= endOfWeek()05OR status in ("Blocked", "On Hold"))06ORDER BY priority DESC, due ASC, updated ASC

Supports

Feeds executive summary, decisions needed, and stakeholder attention.

Subscription

[Jira Weekly Filter][Leadership]

Gadget

Filter Results with owner, due date, source link

Copy this setup card into your build notes

Filter name: Weekly - Leadership attention - ABC
Purpose: Feeds executive summary, decisions needed, and stakeholder attention.
Dashboard gadget: Filter Results with owner, due date, source link
Subscription subject: [Jira Weekly Filter][Leadership]

Jira click path:
1. Jira > Filters > View all work items.
2. Switch to JQL / advanced search.
3. Paste the generated JQL and run it.
4. Set columns: Key, Summary, Status, Priority, Assignee, Due date, Fix version, Updated.
5. Save as filter and share with the reporting group.
6. Details > New subscription > send to the reporting mailbox before the Monday flow.

Power Automate intake:
Read the real Outlook folder Weekly Report - Jira Filters with Get emails (V3).
Filter by the subscription subject prefix and save the message body/link into 02_Jira.
Build a saved filter query before copying it into Jira. Pick the reporting signal, tune the scope, then copy the generated JQL and Jira subscription setup card.

Phase 3: Prepare Confluence report workspace

  1. Create the page hierarchy

    Confluence > choose reporting space > create 00 Reporting Hub, 01 Weekly Reports, 02 Decisions, 03 Actions, 04 Source References, 05 Templates and Prompts, 99 Archive.

  2. Create the weekly template

    Space settings > Look and Feel > Templates > Create new template. Add placeholders for program, period, prepared by, previous report, status, summary, risks, decisions, actions, source references, and review notes.

  3. Add launcher and macros

    On 00 Reporting Hub, insert /create from template (choose Page, not Live Doc), /content tree, /content report table, /decision report, and /task report.

  4. Apply labels

    Use weekly-report, program label, yyyy-ww, and status labels: draft, ready-for-review, published.

Confluence Template Machine

Confluence Template Machine

Generate a weekly report template from your report choices

Pick the report personality, tune sections and metadata, then copy a Confluence-ready template with labels, source discipline, and review gates already baked in.

Template titleWeekly Executive Report | ACME Operations | 2026-W39

Page metadata

Section mixer

Generated template

01# Weekly Executive Report | ACME Operations | 2026-W3902 03**Program / Portfolio:** ACME Operations04**Reporting Period:** 2026-W3905**Prepared By:** Reporting owner06**Report mode:** MVP report07**Status:** Draft / Ready for review / Published08**Previous Report:** [Previous weekly report link]09 10> Report rule: Fast weekly operating report. Keep claims source-backed. Put uncertainty in Review Notes.11 12## 1. Executive Summary13- [Material change, risk, or decision. Keep to three to five bullets.]14- [Confirmed fact with source link.]15- [Needs confirmation: mark uncertain items here instead of overstating.]16 17## 2. Progress This Week18- [Progress update with Jira or Confluence source.]19- [Scope, date, or owner change if material.]20 21## 4. KPI Snapshot22| KPI | Current | Previous | Trend | Tableau source |23|---|---:|---:|---|---|24| Delivery confidence | [Value] | [Value] | [Up/Down/Flat] | [Custom view / snapshot link] |25| Open blocker count | [Value] | [Value] | [Up/Down/Flat] | [Custom view / snapshot link] |26| Defect escape rate | [Value] | [Value] | [Up/Down/Flat] | [Custom view / snapshot link] |27 28**KPI check:** Confirm custom view, filter context, snapshot date, data refresh time, and live dashboard link before using the number.29 30## 5. Risks and Blockers31| Risk / Blocker | Impact | Owner | Mitigation | Escalation Needed | Source |32|---|---|---|---|---|---|33| [Risk] | [Impact] | [Owner] | [Mitigation] | Yes/No | [Jira/Confluence/Email link] |34 35## 6. Decisions Needed36| Decision | Why now | Recommendation | Owner | Needed by | Source |37|---|---|---|---|---|---|38| [Decision] | [Why] | [Recommendation] | [Owner] | [Date] | [Link] |39 40## 8. Next Week Focus41- [Priority 1]42- [Priority 2]43- [Priority 3]44 45## 9. Action Table46| Action | Owner | Due date | Status | Source |47|---|---|---|---|---|48| [Action] | [Owner] | [Date] | [Open/In progress/Done] | [Link] |49 50## 10. Source References51### Jira52- [Weekly filters, dashboard, and subscription email folder]53 54### Confluence55- [Previous report, decision log, action tracker, meeting notes]56 57### Tableau58- [Custom view, snapshot folder, refresh note]59 60### Outlook61- [Approved thread references only]62 63## 11. Review Notes64- [Evidence gaps]65- [Excluded sensitive or unsupported claims]66- [Reviewer comments]

Labels

weekly-report, acme-operations, 2026-w39, draft, ready-for-review, mvp-report

Template mode

Fast weekly operating report

Confluence setup card

Page title: Weekly Executive Report | ACME Operations | 2026-W39
Labels: weekly-report, acme-operations, 2026-w39, draft, ready-for-review, mvp-report
Parent page: 01 Weekly Reports > current year

Confluence click path:
1. Space settings > Look and Feel > Templates > Create new template.
2. Paste the generated template body.
3. Add labels weekly-report, program label, yyyy-ww, draft/ready-for-review/published.
4. On 00 Reporting Hub, insert /create from template and point it to this template.
5. Add /content report table filtered by weekly-report and program label.
Generate a weekly report template from your report choices. Pick the report mode, tune sections and metadata, then copy the Confluence-ready template and setup card.

Phase 4: Prepare Tableau subscriptions and KPI snapshots

  1. Save custom views

    Open Tableau dashboard > apply exact reporting filters (the Save Custom View button only appears in the toolbar after you change the view) > toolbar Save Custom View > name Weekly Exec KPI - Scope - Last Completed Week > make visible if your role/site allows.

  2. Subscribe to the custom view

    Watch > Subscriptions > select Current View > choose PNG, PDF attachment, or both > subject prefix [Tableau KPI][Weekly Exec][Program] > schedule after refresh plus a buffer. Live connections follow the Data Freshness Policy; extract-backed dashboards follow their extract refresh schedule — time the subscription against whichever applies.

  3. Route evidence mail

    In Outlook, create a rule for the Tableau sender/subject prefix into Weekly KPI Feeds/Tableau. Flow B watches that real folder.

  4. Verify the snapshot

    Check current cycle, custom view name, dashboard link, visible filters, data freshness, quality warnings, and attachment readability.

Phase 5: Prepare Outlook intake folders and searches

  1. Create real folders

    Outlook > create folders Weekly Report - Project Mail, Weekly Report - Leadership, Weekly Report - Jira Filters, and Weekly KPI Feeds. Power Automate reads real folders, not Search Folders — Search Folders are only for human review and are not selectable in the flow folder picker.

  2. Create routing rules

    Right-click an example message > Rules > Create rule > choose destination folder. For richer rules: Settings > Mail > Rules > Add new rule > add conditions, actions, exceptions, order, and stop-processing behavior. The When a new email arrives (V3) trigger fires only on arrival, so the rule must run server-side at delivery — moving mail into the folder later will not trigger the flow.

  3. Add exclusions

    Exclude legal, HR, procurement, confidential, private side conversations, and customer-sensitive content unless your reporting policy allows it.

Build the Power Automate flows

The flows are the deterministic spine — they move and gate data on a schedule, with run history and failure handling. The agent layer in the next section reasons over these flows; it does not replace them.

Phase 6: Build Power Automate flows

  1. Flow A: Weekly Main Orchestrator

    Power Automate > Create > Scheduled cloud flow > Monday 07:00. Keep the recurrence Start time consistent with the create-dialog Starting value. Initialize reportWeek, runId, stagingPath, draftTitle, approver. Create source folders. Get Outlook messages, Jira issues, previous Confluence context, and Tableau snapshots. Prepare draft package. Start approval.

  2. Wire Jira collection explicitly

    Primary no-code path: use Jira saved filter subscriptions as the collection feed. In Jira, open each saved filter > Details > New subscriptions; schedule it before the Monday run and send it to the reporting mailbox with a subject prefix such as [Jira Weekly Filter][Blockers]. In Flow A, add Office 365 Outlook Get emails (V3) scoped to the real folder Weekly Report - Jira Filters; filter by subject prefix and received time (the Subject Filter only matches the first 250 items, so set Top explicitly and use the Search Query field for busy folders); save each email body/link set into 02_Jira with filter name, run ID, result count if visible, dashboard link, and collection time.

  3. Use the Jira connector only after a tenant test

    Microsoft documents Jira action Get list of issues (ListIssues) as returning issues using JQL, and Get list of Filters (ListFilters or ListFilters_V2) as returning accessible filters. In practice the published Get list of issues action exposes only the Jira instance parameter — no maker-facing JQL input — so treat Get list of Filters as an access check, not issue retrieval. The only first-class JQL-input surface is the event trigger When a new issue is returned by a JQL query (OnNewIssueJQL), which is limited to the latest 100 results. If your tenant exposes a bounded JQL/filter input for Get list of issues, run one action per saved filter and enforce a review limit, usually 50 issues. If it does not, keep the filter-subscription email path as the supported no-code source. Atlassian sends only the first 200 filter results in subscription emails, so filters above that limit must use dashboard links/manual review rather than email as complete evidence. Do not confuse the two numbers: 200 = the filter-subscription email cap; 100 = the JQL trigger window.

  4. Flow B: Tableau Intake

    Create automated cloud flow from Office 365 Outlook When a new email arrives (V3) in Weekly KPI Feeds/Tableau. Save PNG/PDF attachments and metadata into 04_Tableau; move message to Processed.

  5. Flow C: Approval / Review

    Use Start and wait for an approval and set the Approval type selector (the standalone "first to respond" action is gone). Include draft link, evidence folder, Jira dashboard, Tableau snapshot folder, checklist, and approve/reject comments. Leave rejected drafts in needs-review.

  6. Add failure handling

    Put main work in Scope - Main processing; add Scope - Failure handling; configure run after failed/timed out/skipped; notify owner with run ID, failed phase, and staging folder. Use Flow checker before enabling.

FlowTriggerWhat it should produceFailure rule
Flow A: Weekly Main OrchestratorScheduled recurrence Monday 07:00 after data refresh/cutoff.Run folder, source links/files, draft package or Confluence draft, approval request.Missing required source blocks publish and creates warning note.
Flow B: Tableau IntakeNew Tableau email in monitored Outlook folder.Snapshot attachment, dashboard link, metadata file, processed email.No attachment keeps dashboard link and logs warning; do not invent chart evidence.
Flow C: Approval / ReviewCalled by Flow A or manual owner trigger.Approval decision, reviewer comments, status update or publish instruction.Timeout/rejection leaves page in draft or needs-review.
Flow A/B/C design details.

Build the four agents in Copilot Studio

The agents are an additive reason → draft → QA layer between "evidence staged" and "approval sent." They perform no write the flows did not already perform, and they never publish to Confluence. Build all four in Microsoft Copilot Studio (not the lightweight Agent Builder inside the Microsoft 365 Copilot app — you need triggers, tools, and multi-agent), inside the unmanaged solution WeeklyExecReporting, using Authenticate with Microsoft so each connector read runs in the signed-in owner's permission context. The three workers are child agents of the orchestrator (GA, in-environment, with typed inputs/outputs) — not externally-hosted A2A agents. Reusable tools live on the Tools page (formerly "Library").

AgentSingle responsibilityBuild surfaceInputs → OutputsConnected tools
WeeklyExec-DataCollectorGather and normalize the week's evidence — and collect nothing it cannot cite.Child agentprogram, reportWeek, stagingPath, jiraFilterScopeevidenceBundle (JSON)GetJiraWeeklyFacts, GetOutlookEvidence, GetConfluenceContext (read-only), Tableau snapshot folder
WeeklyExec-ReportDrafterTurn the evidence bundle into a source-linked draft — write nothing the bundle does not support.Child agent (no fetch tools)evidenceBundle, reportMode, audiencereportDraft (markdown) + claimMap (JSON)None — reasons only over the bundle; "Allow ungrounded responses" off
WeeklyExec-QAReviewerAdversarially check the draft against the evidence; return pass/fail + fix list, change no wording.Child agent (no fetch tools)reportDraft, claimMap, evidenceBundleqaVerdict (JSON)None — independent of the drafter
WeeklyExec-ReportOrchestratorRun the three workers in order, resolve outputs into one review-ready draft, hand to approval.Parent agent, published to Teamsprogram, reportWeek, reportMode, jiraFilterScope → staged finalDraft + qaVerdict + approvalThe three child agents, StageFinalDraft, StartApproval (Flow C)
The four agents. Single responsibility, typed I/O, where each is built.

Build the four agents

  1. Create the orchestrator and solution

    Copilot Studio > create agent WeeklyExec-ReportOrchestrator inside the unmanaged solution WeeklyExecReporting in your dev environment. On Overview, turn generative orchestration on (required for triggers, MCP, and connected agents) and paste the orchestrator Instructions (use the generator below).

  2. Add each worker as a child agent

    Open the orchestrator > Agents page > Add an agent > New child agent > name it WeeklyExec-DataCollector (then -ReportDrafter, then -QAReviewer) > keep When will this be used? → The agent chooses, based on description > paste the Description (the orchestration signal) and Instructions > set the typed Inputs/Outputs > Save > set Enabled on.

  3. Attach the Collector's tool-flows

    On the Data-Collector, open the Tools page > Add a tool > Flow > add GetJiraWeeklyFacts, GetOutlookEvidence, and GetConfluenceContext. Each is a published agent flow using the When an agent calls the flow trigger and Respond to the agent action; set a precise Name + Description (the description drives tool selection) and map inputs. GetJiraWeeklyFacts defaults to reading the Jira filter-subscription emails (Get emails (V3)), not a direct JQL call.

  4. Lock down drafting and QA

    On the Report-Drafter and QA-Reviewer, turn off "Allow ungrounded responses" so a turn with no tool or knowledge cannot answer from general knowledge. Keep the QA-Reviewer a separate agent from the Drafter — the reviewer must not mark its own homework.

  5. Test with the activity map

    Use the Test your agent panel and open the activity map to watch the orchestration plan: which child agent was chosen, its inputs/outputs, timings, and errors. Restart with Start new test session.

Agent Spec Generator

Agent spec builder

Generate a paste-ready Copilot Studio agent spec

Pick one of the four reporting-factory agents, set your program key, report mode, in-scope sources, and the grounding gate. The card on the right regenerates a full spec — name, build surface, description, instructions, typed I/O, tools, and the exact click-path — that you copy straight into Copilot Studio.

WeeklyExec-DataCollector

Child agent

Gather and normalize the week's evidence from Jira, Tableau, Outlook, and prior Confluence into one validated bundle — and collect nothing it cannot cite.

Why this surface: Collection is deterministic and lives in agent-flow tools; the agent only chooses scope and assembles + validates the bundle.

Description (orchestration signal)

Use this agent to collect the weekly evidence bundle for ACME-OPS and a reporting week. It reads Jira, Tableau, Outlook, Confluence in scope, then returns one validated JSON evidence bundle with source URLs. It does NOT write the report, judge wording, publish anything, or include any source it cannot link. Inputs: program, reportWeek, stagingPath, jiraFilterScope. Output: evidenceBundle JSON.

Instructions (system prompt)

You are the Data-Collector for a weekly executive reporting factory. Your only job is to gather and normalize evidence into one JSON bundle. You never draft prose, never judge, never publish.

Program in scope: ACME-OPS. Sources in scope this run: Jira, Tableau, Outlook, Confluence.

Rules:
1. Use ONLY the provided tools and the staged Tableau snapshot folder. Do not use general knowledge to fill in facts.
2. For Jira: call GetJiraWeeklyFacts once per scope in jiraFilterScope. The tool reads the Jira filter-subscription emails (it does not run JQL directly). Keep at most 50 issues per scope. Record key, summary, status, priority, assignee, due, updated, url, and the scope name for every issue.
3. For Outlook: include an item only if it is a decision, action, follow-up, or risk and is allowed to be cited. Exclude anything HR, legal, procurement, customer-sensitive, private, or speculative. Set allowedToCite accordingly.
4. For Tableau: record view name, filters applied, refresh time, snapshot URL, and live dashboard URL. Never invent a KPI value or a chart that is not in the snapshot.
5. For Confluence: read and link the previous report, decision log, and action tracker. You may quote prior page content returned by the tool, but only as context — never copy it forward as this week's facts.
6. Every item MUST carry a source URL or sourceRef. If you cannot cite it, drop it and add the source name to "missing".
7. If a Jira subscription/filter likely exceeded 200 results, or any result was truncated, add a line to "warnings".
8. Output ONLY the evidenceBundle JSON in the contract you were given. No commentary.

Strictness: turn OFF "Allow ungrounded responses" so any turn that uses no tool or knowledge is blocked from answering with general knowledge.

Inputs

NameTypeReq.
programProgram/portfolio key, e.g. ACME-OPSStringYes
reportWeekISO week, format YYYY-WWStringYes
stagingPathRun folder, WeeklyExec/{program}/{reportWeek}StringYes
jiraFilterScopeSaved-filter scope (blockers, overdue, defects, leadership-attention)StringYes

Outputs

  • evidenceBundle (String, JSON) — typed bundle with jira[], tableau[], email[], confluencePrior[], missing[], warnings[]

Connected tools / sources

  • GetJiraWeeklyFacts — Reads the saved-filter subscription emails (Get emails V3 on the Jira-filter Outlook folder). No direct JQL is assumed.
  • Tableau snapshot folder (04_Tableau) — Reads KPI snapshots staged by Flow B; optional tableau-mcp read tool for live values (advanced).
  • GetOutlookEvidence — Get emails (V3) scoped to the real reporting folder, filtered by subject prefix + received time.
  • GetConfluenceContext — Connector reads (GetPagesBySpace + GetPageMetadata, full page body). Read-only — never creates or updates pages.

Click-path to build it

  1. 1Copilot Studio → open WeeklyExec-ReportOrchestrator
  2. 2Agents → Add an agent → New child agent
  3. 3Enter name WeeklyExec-DataCollector; keep "The agent chooses — Based on description"
  4. 4Paste the Description
  5. 5Paste the Instructions
  6. 6Add the Knowledge / Tools listed below
  7. 7Set Inputs/Outputs under the child-agent detail pane
  8. 8Save
  9. 9Enabled: on

Human-approval gate

Block ungrounded answers is ON — the spec turns off "Allow ungrounded responses". A human still approves before anything publishes.

This run

Program
ACME-OPS
Report mode
Balanced
Ungrounded
Blocked
Sources
Jira, Tableau, Outlook, Confluence
Pick a role and tune the program, report mode, sources, and strictness, then copy a paste-ready Copilot Studio agent spec — name, build surface, description, system prompt, typed inputs/outputs, tools, and the exact build click-path. Re-run it for each agent.

Assemble, review, and approve

The Report-Drafter produces the content and the QA-Reviewer checks it, but the page itself is still created by the approved write path and published only after a human approves.

Phase 7: Assemble the Confluence draft page

  1. Use the approved page path

    Manual MVP: click the create-from-template launcher. Automation path: use the page created/copied by the Atlassian Automation Publish new page rule, a platform-owned governed write path, or an admin-scoped Rovo agent (Create page / Edit / Publish, confirm-before-publish). The Report-Drafter produces the content; the page is created by one of these paths. Page creation stays on the four approved paths — never a hand-built API call.

  2. Fill sources before prose

    Add Jira links, Tableau snapshots, previous report, decision/action pages, and approved email references before writing the executive summary. The Data-Collector's evidenceBundle is the single source of truth the Drafter writes from.

  3. Label status

    Use draft while assembling, ready-for-review before approval, and published only after review.

Phase 8: Add Rovo and Copilot refinement

  1. Run evidence checks

    The QA-Reviewer agent runs these automatically against the evidence bundle and claim map: weak claims, missing owners/dates, vague risks, operational noise, sensitive email content, and unsupported KPI interpretation. For the prompt/MVP tier, Rovo and Copilot run the same checks by hand.

  2. Keep AI output reviewable

    Copy useful edits into the draft only after confirming source links. The claimMap ties each sentence to a source; mark uncertain claims in Review Notes and keep confirmed facts, assumptions, and recommendations separate.

Prompt Workbench

Generated script

01Tool: Rovo02Goal: Find weak or unsupported claims03Program: ACME-OPS04Reporting period: 2026-W3905Audience: senior leadership06Source scope: current Confluence draft, previous weekly report, Jira dashboard, Tableau snapshots, approved email references0708Task: Find weak or unsupported claims for the weekly executive report.09Return: claim, missing evidence, why it matters, suggested fix, section owner.10Use only the supplied sources. If evidence is missing, say what is missing instead of inferring.11Keep confirmed facts, assumptions, and recommendations separate.12Preserve source names or links where available.13Do not copy sensitive email content into the output; summarize and point to approved references instead.1415Context note: Use inside Confluence or Jira against the draft, previous report, or issue/filter context.

Checklist for this prompt

Every summary claim has a source link
Risks have impact/owner/mitigation
Decisions have owner and needed-by date
Generate Rovo and Copilot prompts as script-like output with source scope, strictness, and verification checklist — for the manual/prompt tier and for the agents' instructions.

Phase 9: Add approval and publishing controls

  1. Send the approval package

    The orchestrator calls StartApproval (Flow C). The approval message includes the staged Confluence draft, evidence folder, Jira dashboard, Tableau snapshot folder, the QA verdict, the review checklist, and required decision buttons.

  2. Review checklist

    Check sources, Tableau filters, current blockers, action owners/dates, sensitive mail exclusions, and whether the summary matches detail sections.

  3. Publish the reviewed page

    After approval, replace draft or ready-for-review with published, move or link the page under the weekly archive, and use that page for email/PPT outputs.

Automate and verify

This is where the pieces become one running workflow. Schedule the orchestrator, run it once by hand, then confirm the scheduled run fired on its own.

Run the factory on a schedule

  1. Publish the orchestrator to Teams

    On WeeklyExec-ReportOrchestrator > Publish > connect the Teams channel. Teams is required because the pipeline relies on long worker reasoning and asynchronous agent-flow responses, and async callbacks are supported only on Teams — not on the Microsoft 365 Copilot or telephony channels.

  2. Build the clock as a scheduled flow

    Copilot Studio > Flows > New agent flow (or Power Automate > Scheduled cloud flow). Set Recurrence: every 1 week, Monday 07:00, after the data-refresh buffer — this is Flow A's trigger. Initialize program, reportWeek (compute YYYY-WW), reportMode, jiraFilterScope, runId, stagingPath.

  3. Invoke the orchestrator from the flow

    Add the Microsoft Copilot Studio connector action Execute Agent and wait (ExecuteCopilotAsyncV2): set Agent to the published orchestrator and Message to a JSON string carrying program/reportWeek/reportMode/jiraFilterScope. It returns lastResponse, responses[], and conversationId. Alternatively use the GA agent node ("Run an agent" under AI capabilities). The flow keeps the durable run history, retries, and Flow-A failure scope — which is why the clock stays a flow even though the reasoning is an agent.

  4. Run it manually first

    In the Teams chat, message the orchestrator: "Run the weekly executive report for ACME-OPS, week 2026-25, risk-heavy." It prompts for any missing input, then runs Data-Collector → Report-Drafter → QA-Reviewer → stage → approval. If the QA verdict fails, the orchestrator returns the fix list to the Report-Drafter once and re-checks before staging; a second failure is staged for a human with a QA FAILED note. Each autonomous fire bills a Copilot Credit, so avoid very frequent recurrences.

Phase 10: Run first weekly test and improve

  1. Dry run with one program

    Use four Jira filters, two Tableau custom views, one Outlook folder, one Confluence template, three child agents, and one approver. Trigger the orchestrator manually in Teams and watch the activity map.

  2. Diagnose a broken handoff

    If a worker returns nothing, open the activity map, find that worker's step, and check its inputs/outputs — usually a vague child-agent description or a failed tool-flow. Test the tool-flow alone. If the run times out, confirm the orchestrator is on the Teams channel (async callbacks are Teams-only).

  3. Confirm the scheduled run fired

    Check the scheduled flow's run history and the agent's Activity page for the next Monday — each trigger and reaction is recorded there. A green run with a staged 05_Final-Draft and an approval request means the cadence works.

  4. Measure and fix before expanding

    Track manual search time saved, missing evidence, noisy filters, review fixes, and whether a leader can scan the report in under five minutes. Narrow filters/rules, repair custom views, tighten agent descriptions, and document tenant-specific variations before adding more sources.

Weekly operating procedure

Monday 07:00: the scheduled flow starts, creates the run folder, initializes the reporting week, and invokes the Report-Orchestrator.

Monday 07:00-07:20: the Data-Collector pulls Jira filters, Confluence context, Outlook reporting folders, and Tableau subscription attachments into one evidence bundle.

Monday 07:20-07:30: the Report-Drafter writes the draft and the QA-Reviewer checks it; the orchestrator stages the result and prepares the Confluence draft package/page through the approved page path.

Monday 07:30-07:40: the reviewer receives the approval package with the QA verdict.

Monday review window: the owner reviews the QA verdict and draft, fixes any unsupported claims, checks source links, and approves or rejects before publishing.

Three report variants

The baseline above builds the factory. These are the variants worth tuning for once it runs — each changes what leads the executive summary and maps to the Report-Drafter's reportMode.

Email-and-Copilot summary (reportMode: balanced). The baseline mode. Route project and leadership mail into real Outlook folders, use Copilot (or the Data-Collector's Outlook tool) to summarize selected threads, then copy only source-backed, approved points into the draft.

Risk-heavy report (reportMode: risk-heavy). Drive it from the Jira blockers, overdue, stale-in-progress, and leadership-attention filters. Lead each item with risk impact, owner, mitigation, decision needed, and source.

KPI-focused report (reportMode: kpi-focused). Use three Tableau custom views, subscribe to PNG/PDF snapshots, verify filters/refresh/attachments, and link every KPI to its live dashboard.

SymptomLikely causeFix
Power Automate connector authentication failureExpired connection, MFA/conditional access, revoked consent.Power Automate > Data > Connections > re-authenticate; ask admin about policy if it fails again.
Jira filter returns too many issuesBroad project query or no date/status bound.Add statusCategory, fixVersion, due date, updated date, label, or priority bounds.
Jira evidence is incomplete or returns 400Filter subscription exceeded the first 200 results, the JQL was unbounded (Jira rejects unbounded queries with 400 Bad Request), an expired Jira API token, or the source folder missed the email.Bound every query by project plus statusCategory/fixVersion/date, tighten the saved filter, link the Jira dashboard, re-create the Jira connection if the 400 persists (it can mean an expired token), and treat a subscription email as incomplete until manually checked.
Confluence page creation failsUnsupported connector write path or missing permission.Use the manual template launcher, the Atlassian Automation Publish new page rule, an admin-owned governed draft path, or a governed Rovo agent.
Orchestrator runs but a worker returns nothingChild-agent description too vague, or its tool-flow failed.Open the activity map, find the worker's step, check inputs/outputs; tighten the child-agent description; test the tool-flow on its own.
Agent flow times out / no result returnedLong run on a channel without async callbacks.Publish the orchestrator to the Teams channel — async callbacks are unsupported on the Microsoft 365 Copilot and telephony channels.
Scheduled run did not fireFlow disabled, trigger auth expired, environment not provisioned, or not published.Check the flow run history and the agent Activity page; confirm the orchestrator is published and the schedule flow is on.
Tableau subscription missing attachmentPermission, admin setting, unsupported object, or email size limit.Check View/Download permissions, PDF setting, attachment size, and try PNG-only if needed.
Tableau snapshot has wrong filtersSubscribed to base view instead of custom view.Open custom view, confirm filters, recreate subscription to Current View.
Outlook folder misses emailRule order, sender/subject changed, rule did not run at delivery, or broad Search Folder assumption.Use real folders, inspect rule order, test with new mail (moving old mail will not trigger), adjust prefix/sender conditions.
AI summary overstates statusPrompt lacked source constraints, "Allow ungrounded responses" left on, or draft lacked evidence.Turn off ungrounded responses on the Drafter/QA agents, use the Prompt Workbench source-only/red-team mode, and move unsupported claims to Review Notes.
Approval does not triggerFlow failed before approval, approver value invalid, environment not provisioned.Open run history, inspect failed action, verify approver email/UPN and approval provisioning.
Troubleshooting lane for non-developers.
WeekBuildProof
Week 1Confluence workspace/template, Jira filters/dashboard, Tableau custom views/subscriptions, Outlook folders.Manual report can be created from template with real evidence links.
Week 2Flow B Tableau Intake, Flow A Main Orchestrator, staging folders, source collection, failure scope.Run folder appears with source evidence and warnings where sources are missing.
Week 3The four Copilot Studio agents, the scheduled flow that invokes the orchestrator, Flow C approval, first dry run, review checklist, optional Copilot Word/PPT output.A reviewed Confluence page is published from a scheduled run and is reusable for the leadership update.
Three-week rollout plan.

Knowledge check

Which path is the safest MVP if Confluence page creation automation is blocked?

Knowledge check

Why are the Report-Drafter and QA-Reviewer built as two separate agents instead of one?

Reach the end and this star joins your charted sky.