Inspiration
At month end, finance teams compare the ledger, bank statement and invoices. Different column names, formats and languages make manual checking slow, and unresolved differences lose their context between spreadsheets and work tracking.
What it does
Reconcile compares two to five CSV/XLSX exports right inside Jira and Confluence.
- Confidence-scored column-mapping proposals that a person reviews and confirms; low-confidence fields stay blank.
- Bounded combinations explain split amounts such as 300.00 + 5.01 = 305.01 while keeping every component row.
- Domestic exports work too: GBK/GB18030, full-width values, yuan amounts and Chinese dates.
- Selected exceptions become grouped Jira issues only after explicit confirmation; issue types load per project.
- Verified corrected data adds a resolution-evidence comment to the original issue, leaving closure to a person.
- Run metadata, notes and confirmation events form an audit trail, and a new Confluence report can be created from any run.
- Rovo runs saved templates, explains stored evidence and reuses matching exception issues on retries instead of creating duplicates.
How we built it
Atlassian Forge hosts the Jira panel, Confluence macro, Rovo actions and bounded storage. A browser Worker parses files and computes interactive comparisons; Forge rechecks source authorization and independently verifies resolution evidence before commenting. Reconciliation data stays inside Atlassian and the user's browser, with no application-initiated external network calls.
Challenges we ran into
Keeping write actions safe: every Jira or Confluence write needs explicit confirmation, and retries must reuse earlier issues rather than duplicating them. Handling messy real-world exports (title rows, mixed encodings, full-width digits) without losing the link back to the source row.
Accomplishments that we're proud of
Every difference is accounted for and traceable to its source rows, and the same evidence drives the Jira issue, the closure comment, the Confluence report and the Rovo answer.
What we learned
Explainable reconciliation needs more than matching totals: human mapping confirmation, integer-cent arithmetic, source-row provenance, explicit write confirmation, and a clear distinction between missing evidence and balanced evidence.
What's next
Add more export templates and complete a full dependency security review (not claimed yet). Installation through the sharing link was checked on a brand-new Atlassian account and site on 2026-11-11: no extra consent page, no error, panel header v4, and the sample returned 3 / 1 / 2 / 2 / 0.
Built With
- atlassian
- confluence
- exceljs
- forge
- javascript
- jira
- node.js
- parse
- playwright
- react
- rovo
- vite