We’re a Support team that exports tickets to CSV from Jira/JSM every week and publishes them in Confluence for internal reviews. We want the report to be quick to scan, easy to filter, and downloadable for CS and Product.
Our sample CSV (simplified):
issueKey,summary,assignee,team,priority,status,created,dueDate,originalEstimate,loggedTime,breachedSLA
SUP-1024,"Checkout error",ana,Support L1,High,In Progress,2025-08-20,2025-08-25,8h,6.5h,false
SUP-1031,"Notifications missing",luis,Support L2,Medium,Waiting for Customer,2025-08-21,2025-08-28,6h,1.5h,false
SUP-1040,"Mobile bug",maria,Support L1,High,Done,2025-08-22,2025-08-24,10h,11h,true
What we want to achieve
What we’ve tried
We imported the CSV with Simple Tables and enabled search/export (works great). We still need help fine-tuning grouping + per-column aggregations, and defining the formulas for DelayDays and OverUnder. We’d also love advice on layout (Compact + height) and on the attachments-based refresh flow.
Could you share a recommended step-by-step configuration and a few example formulas/settings?
Thanks in advance @Mia Tamm _Simpleasyty_!
Hey @David Romero! Thanks for the super-clear brief. Here’s a concise, do-this-now setup you can follow in Confluence with Simple Tables:
Import & persist
Use Import from page attachments (keeps file versions) and enable Save table data as attachment for performance on big tables.
Grouping + per-column roll-ups
Turn on Grouping → group by team
, then priority
. For each metric column, set Column settings → Aggregation (e.g., loggedTime
= Sum, status
= Mode).
About “% breachedSLA”: built-in aggregations don’t filter/compute percentages. Easiest options are (a) export and compute in Excel, or (b) emit breachedSLA
as 0/1 in the CSV so you can Sum/Avg it.
Footer totals
Add Footer aggregation for whole-table Count / Sum / Avg / Max (e.g., ticket count, total loggedTime
). Updates as data changes.
Calculated columns
Create OverUnder = loggedTime - originalEstimate
. (Ensure those fields are numeric, e.g., 6.5
not 6.5h
.) Conditional functions like IF()
/today()
aren’t documented—if you need DelayDays
or SLA Status
, add them in your source or compute after export.
Readability for 800–1,200 rows
Set Layout & spacing → Compact and Table height → Large to see more rows without page scroll. Purely visual—doesn’t affect data or exports.
Fast navigation
Toggle Search bar and Row numbers for standups and quick lookups.
Export
Enable Download CSV/Excel for CS/Product pivots and charts. Use exports to compute advanced ratios like “% breached”.
Polish the view
Hide created/assignee
, Rename headers (e.g., loggedTime
→ Time Logged (h)
), and Drag & drop columns so key fields are leftmost.
Weekly refresh (best practice)
Keep the same page, attach the new CSV each week, and re-import from attachments—you get history/versioning and stable macro config.
Bonus—JSON with nested fields
If your source is JSON, add columns with dot notation (e.g., issue.fields.assignee.displayName
) via Columns → New column.
Minimal config to copy:
Compact + Large height → Group by team
→priority
with Sum(loggedTime
) → Footer: Count, Sum(loggedTime
), Avg(originalEstimate
) → Search + Row numbers → Hide/rename/reorder → Enable CSV/Excel.
Happy to share a tiny sample CSV + screenshots if helpful.
— Mia Tamm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi David, thanks for sharing your question in the community!
You don’t need to rely on weekly CSV uploads — with Excel-like Tables for Confluence you can connect directly to Jira so your table always syncs automatically whenever the page is loaded. And since we're talking about spreadsheets, you can customise your reports using your Jira work items as a data source in any way you need.
That gives you a living dashboard instead of a static report.
Here's how the information you requested to show would be displayed:
Here’s how ETC covers all the points you raised:
✅ Group by team and priority with per-column roll-ups – Pivot Tables in ETC let you nest by Team → Priority and display totals like time logged or SLA percentages.
✅ Footer totals – add overall ticket counts, sums, averages, and max values that adjust automatically with filters.
✅ Calculated fields inside Confluence – enrich your Jira data without touching the source to calculate DelayDays, OverUnder, and SLA Status.
✅ Readability for large datasets – use Compact layout and table height controls to keep 800–1,200 row reports easy to scan.
✅ Search bar & row numbers – enable these for quick filtering and easy ticket reference in stand-ups.
✅ Export anytime – download CSV or Excel with a click; grouped tables export raw rows ready for further analysis.
✅ Column control – hide less relevant fields, rename headers (e.g. loggedTime → Time Logged (h)) and reorder columns by drag-and-drop.
✅ Weekly refresh flow – if you prefer CSVs, attach the new file each week and ETC keeps versions. But in most cases, syncing Jira directly removes the manual step entirely.
✅ JSON parsing – even nested fields are accessible with formulas, for example:
=TEXTBEFORE(TEXTAFTER([Team], """name"":"""), """")
That extracts the team name from JSON, and
=IF(TEXTBEFORE(TEXTAFTER([Time to resolution], """breached"":"), ",")="true",1,0)
This one converts the SLA “breached” flag into a usable field.
In short: ETC ticks all nine boxes — connecting Jira data live, adding calculated fields, parsing JSON, and surfacing it all in Pivot Tables with flexible grouping, totals, search, and exports.
We’d love for you and your team to give it a try and see how much easier weekly reviews become when your dashboard stays in sync with Jira.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @David Romero ,
For other users who may come across this thread - if you have our app installed (that is Table Filter, Charts & Spreadsheets for Confluence), you may also implement the described use case:
If you need a step-by-step guide adjusted for your specific case, please contact our support portal directly. It is confidential, we'll be able to share more details and provide you with the required settings.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @David Romero,
You could get the list of issues and generate the reports/stats needed for internal reviews directly from Jira, without manually exporting Jira data in CSV and attaching it to the Confluence page. This will save a lot of your time and will simplify the things a lot.
Confluence offers some useful macros for that allows you to display the issues from a filter in a page (e.g Filter Results macro or Jira Work Items macro). In addition, it offers additional macros with charts and stats that you could add: Two Dimensional Filter Results, Issue Statistics etc.
For the advanced stats, you will need to search for an app on Atlassian Marketplace, that provides the stats you need. For example, our Great Gadgets for Confluence Cloud app, offers a Pivot Table & Pivot Chart macro that allows you to group the data from a Jira filter/JQL and apply sums, count, percentages for those issues.
This is an example of a multidimensional table showing Sum of Time Spent split by team and priority
Or maybe a heat-map table like this showing the same thing.
Or if you prefer a chart...
Also, with its Advanced Issue Filter Formula macro, you can apply all kind of match formulas based on up-to 6 filters to calculate sums, counts, percentages, ratios. The app offers all kind of macros for tracking the SLA and many other metrics that ate ITSM specific.
See more in this article - the examples are for Jira but they all applies to Confluence as well: https://community.atlassian.com/forums/App-Central-articles/An-effective-dashboard-for-Service-Desk-and-Customer-Support/ba-p/2360369
Danut
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.