What it does
What automation does
Cross-project status reports combines data from Jira (tasks, epics, sprints), Asana (projects, subtasks, due dates) and Runn (resource planning, team utilization), turns it into a weekly or daily portfolio report. AI agent reads raw data, highlights key changes, anomalies and risks, forms a narrative — coherent text, not a table of numbers.
What goes into the report
- Project progress. Completion percentage, burn rate, deviation from plan.
- Delays and blockers. Tasks overdue for the week; tasks marked blocked.
- Risks. AI agent compares current velocity with the plan, highlights projects with a tendency to fall behind before the deadline becomes hard.
- Team workload. From Runn — who is overloaded, where there is idle time, where overbooked.
- Scope changes. New tasks, shifted deadlines, changes to estimation.
- Executive summary. 3-5 sentences for the manager: what matters, what requires a decision, where we are heading.
- Comparison with the previous period. Week-over-week progress, rolling trends for the month.
Formats and delivery channels
The report goes to Slack (thread to the PMO channel), to email for managers, to Notion or Confluence as a page, or as a PDF for clients. One report — multiple recipients with different levels of detail: executive summary for the CEO, full version for PMO, client-facing version with internal metrics filtered out for the client.
Triggers and schedule
The report is generated on a cron schedule (weekly digest every Monday at 9:00) or by trigger — a button press in Slack, a call from Notion, an event in Jira (P0 bug), budget exceeded in Runn (team load 90%+), a missed deadline in Asana. AI agent in trigger scenarios produces not a weekly overview but an alert: a short report on the anomaly with recommendations. The combination of schedule and triggers covers most PMO visibility requests.
Typical configuration options
Solo PMO / 1-5 projects
For freelancers, solo PMs and small teams, where one person runs 1-5 parallel projects. Automation takes data from a single source (Asana or Jira), generates a weekly digest in Markdown, sends it to a personal Slack or email. Focus on personal overview and outstanding items. Setup — 1 working day, including auth and prompt template. AI agent on AI model runs on a cron trigger once a week. No additional hosting, no resource planning — Runn is not needed here. Infrastructure — GitHub Actions or AWS Lambda in free tier.
SMB PMO / 6-30 projects
For agencies and SaaS teams of 6-30 people with a portfolio of 6-30 projects. All three systems are connected: Jira (development), Asana (design, marketing), Runn (resources). AI agent groups the report by type: client projects, internal initiatives, R&D. A separate section — capacity alerts from Runn. The report goes to two channels: executive summary for the manager, full version for PMO. Client-facing versions are available with internal details filtered out. Setup — 2-3 working days, including project mapping between systems, prompt tuning, template configuration.
Enterprise PMO / 30+ projects
For companies with a PMO office and a portfolio of 30+ projects. Hierarchy: programs → projects → epics. The report is generated in a cascade: program-level for C-suite, project-level for program managers, tactical for teams. AI agent highlights cross-project dependencies (dependencies between projects from different tracks) and proactively flags escalation risks. Integration with a BI system for historical trend, report versioning in Notion or Confluence. Setup — 2-3 weeks, including the access role model, review process and RBAC for client-facing versions.
How it works
How it works
Architecture
Automation — a custom-code solution (Python or TypeScript), runs in 5 steps on a schedule (cron) or on a trigger:
- Extraction. The script calls the Jira, Asana, and Runn APIs, pulls data for a specified period (week or day). OAuth tokens from the PMO account or service account are used.
- Normalization. Data from the three systems is normalized to a common schema:
project_id,status,owner,deadline,progress,risk_signal. Project mapping between systems — by custom ID or naming convention. - Analysis. An AI agent on an AI model reads the normalized data, compares it against last week's data, and identifies deltas, anomalies, and risks.
- Generation. The same AI agent writes the narrative: executive summary, project sections, risk list, recommendations. Structured output is used — a JSON schema for the report, markdown for text.
- Delivery. The report is distributed to Slack, email, Notion, or PDF according to rules defined in the config.
AI analysis steps
The AI agent does not simply format data — it performs 4 types of analysis:
- Delta analysis. Week-over-week progress comparison: what accelerated, what slowed down, which projects show a stable rate.
- Anomaly detection. Projects with an unusually slow burn rate, unexpectedly high number of blocked tasks, sudden scope spikes, teams with 120%+ overload.
- Risk forecasting. Extrapolating the current pace: if the project continues at this rate, will it meet the deadline. A proactive signal before the deadline turns red.
- Summarization. Distilling dozens of projects and hundreds of tasks into 3-5 priorities that require PMO attention in the coming week.
Output quality
The JSON schema strictly fixes the report structure — the AI agent cannot "forget" a section or add a fabricated field. Text fields go through post-processing: hallucination checks (the AI agent references a project that does not exist in the data), tone checks, length checks. For critical reports (client-facing), human-in-the-loop is configured — the PMO sees the draft in Slack, makes 1-2 edits, and approves it for sending to the client.
Alternative approaches
Status reports can be produced in three ways — each with its own trade-off between control, speed, and cost.
Approach | Time per report | Flexibility | Control | Entry threshold |
|---|---|---|---|---|
Manual collection | 5+ hours | Maximum | Full | Zero |
No-code (Zapier, Make) | 30-60 minutes + editing | Low | Medium | Low |
AI automation (custom code) | 5 seconds | High | High | Medium |
Manual collection — the PMO copies data from three systems into Google Doc, reviews it, and formats it. Quality depends on fatigue; by the end of the week the report is formal. Full control over every line, but it costs a real working day every week.
The no-code approach (Zapier, Make.com) pulls data on a schedule, but cannot analyze it — it outputs a table or bullet list. Narrative and risk conclusions are still written manually. Saves 30-40% of time, does not solve the analysis quality problem. Suitable for dashboards, not for narrative reports.
AI automation produces narrative, risk forecasting, and summarization in seconds. Requires custom code, hosting, and prompt configuration. Control — through the report's JSON schema (structure is fixed) and regression tests on historical data. Maintenance cost is higher than no-code, but lower than PMO manual time.
Automation does not replace PMO judgment — final decisions on prioritization, resources, and client communication remain with the person. The AI agent prepares the material for a decision, it does not make the decision.
Security and compliance
Data from Jira, Asana, and Runn contains business-sensitive information: clients, deadlines, rates, employee names. The custom-code solution is deployed in the client's infrastructure (on-premise, Docker, private cloud) — data does not reach third-party services beyond what is required for the AI request. OAuth tokens are stored in a secret manager (Vault, AWS Secrets Manager). For companies with GDPR or SOC2 requirements — reports are stored in a controlled environment (Notion workspace with SSO, Confluence with RBAC); the prompt is configured to redact PII and sensitive fields before sending to the AI. For compliance-demanding industries (fintech, healthcare), a self-hosted AI model is used instead of a public API — data does not leave the perimeter. Automation logs every request: who requested it, what data the AI agent read, what report was produced. Log retention is configured separately.
Prerequisites
What you need before launch
Basic requirements
- API access. A working PMO account or service account in Jira, Asana, and Runn with read permissions for projects and tasks.
- OAuth or API tokens. For each system — a personal access token or OAuth app registered in the admin panel.
- Delivery channel. Slack workspace, work email, or Notion/Confluence workspace with write permissions.
- Unified project schema. Agreed project IDs across systems or a mapping table (manual or via naming convention).
- AI model. API key for the AI model (or equivalent) with a quota sufficient for 1-4 runs per week.
- A place to run the script. A cron server, AWS Lambda, GitHub Actions, or a local workflow engine — any headless runtime with API access.
What is configured separately
- Report template (markdown + JSON schema) — PMO defines the section structure and field formats.
- Delivery rules: who receives the executive summary, who gets the full version, who gets the client-facing version.
- Risk thresholds: from what percentage of delay to flag as a risk.
- List of ignored projects (internal chores, archived).
- Report language (EN/RU/UK/ES) and tone (executive, technical, friendly).
Potential pitfalls
- Different status flows across systems. Jira has its own statuses, Asana has different ones, Runn has yet another set. Without explicit mapping ("Done" in Jira == "Complete" in Asana == "Delivered" in Runn), the AI agent will get a confusing picture. Solution — a status mapping table before launch.
- Duplicate projects. The same project is registered in Jira and in Asana under different IDs. The AI agent sees two projects and the report duplicates. Solution — a unique project-tag in each system or a mapping file.
- Expecting a perfect narrative from the first run. The first version of the prompt produces either overly generic text or overloads with details. You need 3-5 iterations of prompt tuning with real PMO data. Budget 1 week for calibration before production.
- Rate limits. Jira and Asana have limits on the number of requests per minute; with 30+ projects you can hit them. Solution — caching, batch requests, exponential backoff.
- Data changes after collection. The report is built on a snapshot at the time of the run. If PMO edits tasks during generation, desynchronization is possible. Solution — an atomic pull for the period with a fixed timestamp in the report.
Pain points
- Too Many Tools Without Integration
- Time on Manual Reports
- Constant context switching
FAQ
How long does implementation take?
For a solo-setup (1 source, simple report) — 1 business day. For SMB PMO with three systems (Jira + Asana + Runn) and custom templates — 2-3 business days. For Enterprise with program hierarchy, RBAC, and BI integration — 2-3 weeks. Most time is spent not on code, but on status mapping between systems and prompt iterations to match company terminology.
What if we don't have Jira or Runn?
The automation is modular. If you use only Asana — we connect one source, the report is built from it. If ClickUp, Linear, or Monday is used instead of Runn — we adapt to that tracker's API. Basic requirements: one issue tracker with an API and one delivery channel (Slack, email, Notion). Runn is only needed for team capacity alerts; without it, the report focuses on progress and risks.
What can break?
Three typical failure sources. First — API rate limits of trackers with a large portfolio (resolved with caching and retry). Second — API changes by providers (Atlassian, Asana) without prior notice; monitoring and regression tests are required. Third — prompt quality drift when PMO project structure changes; a weekly review of initial runs is needed. Automation does not replace PMO — the final decision rests with a human.
Does this work in our industry?
The automation suits agencies (marketing, dev, design), SaaS teams, consulting, in-house IT — anywhere a PMO manages a project portfolio and collects statuses weekly. Horizontally applicable to any company of 5-50 people with 5+ parallel projects. For production lines, construction projects, or agricultural holdings, metric adaptation is required — there is no out-of-the-box solution for these industries.
How accurate is the risk analysis?
The AI agent calculates risk based on task completion velocity, the number of blocked items, and the weekly delta. This is a proactive signal — not a prediction, but an early warning. Accuracy depends on data quality: if PMO does not update Jira regularly, risk is calculated from an incomplete picture. The recommendation is to use the AI assessment as a reason for review, not an automatic decision.
Can the report format be customized?
Yes. The format is defined by a JSON schema and a markdown template, both are configurable. You can add sections for clients, remove financial metrics, change the report language (EN/RU/UK/ES), adjust the tone (executive, technical, friendly). Changing the template does not require rewriting code — the config is edited. Template versioning — via git.
What data does the AI agent see?
Normalized data from issue trackers: project name, status, owner, deadline, progress, comments-summary. Financial data from Runn (rates) is filtered before being sent to AI. For companies with GDPR or SOC2 requirements, the prompt is configured to redact PII. The custom-code solution is deployed in the client's infrastructure — data does not leave for external services beyond what is necessary for the AI call.
Want this in your business?
Book a free audit — we'll show how this automation will work for you.