This week I’m working on a reconciliation app that helps manage the messy parts of a recurring business review process.
The basic problem is pretty common: information lives in several places, some of it doesn’t line up, and somebody has to figure out what still needs attention. That can mean a missing credit, an unmatched payment, something waiting for approval, or an issue that was still open from the previous week.
The app is meant to keep those exceptions organized from the moment they’re identified until they’re resolved.
One part of that workflow is communication. Once the open items have been reviewed, someone prepares the client-facing report and message. That communication then needs to be reviewed internally, changed if necessary, approved, and eventually sent.
A lot of that process used to happen through email. Someone would prepare the draft, send it over for review, make changes, and then send the final version.
I’ve been moving that into the application so the review process has a proper history. If someone reviews Version 1 and asks for changes, Version 1 stays exactly as it was. A new version gets created. If Version 3 is eventually approved, the system preserves exactly what was in Version 3 when that approval happened.
This week I’m focused on finishing the outbound side of that workflow.
The app can already send review notifications and send an approved communication through an email provider. What I’m working on now is making sure the delivery record is accurate all the way through.
For example, there’s a difference between handing an email to the provider and knowing the receiving mail server actually accepted it. I want the app to reflect that difference correctly, so a communication moves from SUBMITTED to DELIVERED only when there’s real evidence that delivery happened.
I’m also making sure the same approved version can’t accidentally be sent twice. That matters for obvious reasons, especially if someone double-clicks a button, refreshes the page, or retries after a slow response.
The larger goal is to make the outbound workflow something I can trust from end to end: prepare the communication, review the exact version, approve it, send it, confirm delivery, and preserve the record of what happened.
If I get that finished this week, I’ll be ready to move on to the next parts of the app, including improving the actual report artifact and bringing client responses back into the same workflow.
For now, I’m trying to get one path working cleanly from start to finish.