Overview
The finance department was dealing with invoice discrepancies that were hard to trace manually because the same business process touched several separate systems. Invoices could appear in Microsoft email, finance exports from a property-management system, and the DocuWare archive. By tax-season reporting, those gaps represented seven-figure operational exposure and required a more reliable way to identify what had been received, processed, archived, or left for manual investigation.
I built a Python workflow that gathered invoice evidence from the available sources, recorded reconciliation state, used conditional logic to decide what needed to be downloaded or uploaded, and produced a twice-daily report for the finance team. The system made an expensive, high-risk review process more systematic without exposing private invoice details in the public version of this portfolio.
Key Features
- Collected invoice records from finance files, Microsoft tenant email data, and the DocuWare archive.
- Tracked newly uploaded DocuWare invoices using a differential watermark from the previous scan.
- Applied conditional logic and presence indicators to determine which invoices needed download, upload, review, or no action.
- Generated a twice-daily reconciliation report covering invoices processed within a 12-hour window.
- Attached CSV exception files for invoices or errors that required manual finance investigation.
- Reduced reliance on memory and ad hoc manual review for a process tied to seven-figure exposure.
Architecture
The workflow gathered finance records, collected invoices from email, scanned DocuWare from the last known watermark, reconciled the results through Python, recorded run state in SQLite, and sent the finance team a scheduled report with separate CSV attachments for exceptions.
Business Impact
This project is a strong example of business-impact engineering: the value was not just connecting APIs or writing scripts, but reducing uncertainty around an expensive finance process. The workflow created a repeatable control point for invoice tracking, gave the finance team a consistent twice-daily view, and made exceptions easier to investigate before they compounded into larger reporting problems.
What I Learned
This work reinforced that operations automation is not just scripting. The useful part is turning fragile manual knowledge into a process that can be rerun, audited, explained, and handed off. It also strengthened my experience designing automation around business risk, scheduled reporting, data quality, and exception handling while keeping implementation details and sensitive records private.