Work/Financial Operations Dispatch/Case study · 2025 to 2026
Workflow automation · Translation operations
Financial Operations Dispatch
From an unstructured email request to assigned, reviewed, and auditable work.
I embedded with an operations team, mapped a manual request and billing workflow, defined success with the people doing the work, and shipped an AI supported system with 14 stages system around the email and cloud tools they already used.
Reported project outcomeProduction deployment · not independently benchmarked again for this portfolio
80%less manual work
My role
Workflow discovery, system design, implementation, deployment
Period
November 2025 to January 2026
Stack
Python, TypeScript, Azure Functions, Cosmos DB, Microsoft Graph, GPT-4o
Boundary
AI classifies and drafts; operators approve consequential outgoing work
The original workflow
The work ran through email, attachments, spreadsheets, and manual follow up.
Before
A request arrived as client correspondence rather than a clean record. An operator had to identify the work, extract project details, choose and contact a worker, monitor the reply, track the deadline, relay completion, handle QA, and keep the billing trail coherent across the whole exchange.
System response
The system converts each request into a stateful Cosmos DB document, uses Azure Functions to advance it, reads and writes the existing mailbox through Microsoft Graph, and applies language models only where the input is genuinely ambiguous: classification, extraction, and drafting.
Operator interface
Dashboard and assignment views
These views use the dashboard markup, styling, and interaction model from the private production repository. The records are sanitized and representative; no client, worker, mailbox, or deployment data is shown.
Operations overviewLive workload, unassigned requests, missing purchase orders, worker load, workflow status, and project deadlines.Human assignment checkpointVolume data derived from spreadsheets, ordered worker selection, and the persisted workflow state before dispatch.
Private source reviewed locally · interface captured from the working project · representative data substituted before capture
Implemented state machine
The workflow has 14 explicit stages
01 to 04
Intake and assignment
01
New request notificationCosmos trigger
Turn an incoming request record into an operator alert and a worker selection task.
02
Worker offerCosmos trigger
Contact workers in the priority order chosen by the operator.
03
Reply and escalation poller2 min timer
Classify accept or decline replies, follow up, expire the offer, and advance the queue.
04
Client assignment noticeCosmos trigger
Prepare the assignment confirmation after a worker accepts.
05 to 07
Delivery tracking
05
Deadline reminder5 min timer
Send a reminder before the recorded deadline.
06
Completion poller3 min timer
Detect the worker’s completion message in the correct thread.
07
Client completion draftCosmos trigger
Draft the client update and send it to the operator for review.
08 to 12
QA loop
08
QA window setupCosmos trigger
Open the client feedback window and persist its deadline.
09
QA feedback poller2 min timer
Identify a QA report and attach it to the right project.
10
QA forwardCosmos trigger
Forward the report and its attachments to the assigned worker.
11
Revision poller2 min timer
Require completion language in the past tense before marking revisions done.
12
Revision complete draftCosmos trigger
Route the final client message through review before forwarding.
13 to 14
Closure and recovery
13
Finalization without QA30 min timer
Close work after the QA window of ten days expires without a report.
14
Stuck job alertDaily timer
Surface projects that have remained in one state longer than expected.
Actual test material
The validation matrix contains 31 cases
Validation snapshot31
cases across six operational scenarios
QA report classifier6
Request classifier6
Worker completion6
Worker request6
QA report reply4
Project status3
Evidence boundary: these counts come from the project’s actual CSV validation matrix. The available snapshot has blank outcome columns, so this page does not claim a model accuracy percentage. Raw rows are not published because they include real operational correspondence.
What changed after deployment
Why the operator review step was added
Observed
The AI sometimes produced an answer that looked certain but was wrong.
Logs showed what the system did, but conversations with the team explained why they hesitated to use it.
Redesigned
Consequential client communication stopped at a review checkpoint.
The system still classifies, routes, drafts, and tracks. The operator owns the final outgoing message.
Result
The automation kept the repetitive steps and left the final decision with the operator.
The system handles routine work, while the operator decides what is sent to the client.
Production engineering
Safeguards around email and state changes
01
One send, even under retry
Every trigger that can send email first acquires a write lock in Cosmos DB. Updates based on ETags prevent two concurrent invocations from sending the same message.
02
The right reply for the right job
Conversation IDs, sender validation, timestamps, and a global set of used messages keep one inbox message from advancing multiple projects.
03
Test without contacting clients
Recipient overrides redirect messages addressed to clients and workers during local and integration testing.
04
A person owns the final send
Completion and QA revision messages are delivered to the operator with an explicit banner that requires review before forwarding.
Source policy
What this case study leaves private
The implementation repository, deployment configuration, and individual validation messages are intentionally private. This case study exposes the system boundary, workflow logic, and verified aggregate evidence without publishing client or worker correspondence.