Pipeline Automation
Took a year-old, ~800-field manual revenue-ops task per run across three regions to a reviewed automation cleared by Legal, IT and enterprise security review, 87% time reduction, in production globally.
- Python
- Playwright
- CSV
- Local-only runtime
- manual ops / week, baseline
- ~57 hrs
- fills / run
- ~800
- per cycle
- ~26 min
- accuracy
- 99.8%
- ops time reduction
- 87%
Revenue operations teams managing a multi-billion-dollar renewals pipeline updated records by hand every cycle across three global regions. Engineering was committed elsewhere. I shipped the fix without dedicated engineering support, and got it through governance on the first submission.
Context
Revenue operations teams managing a multi-billion-dollar renewals pipeline updated records manually, every cycle, across AMER, EMEA and JAPAC. Hundreds of field-level edits per run, done one at a time, with no margin for error because the outputs fed forecast calls and account-level commitments.
The scale was ~57 hours of manual ops per week absorbed across the three regions. The problem had been on the backlog for over a year. Engineering was committed to higher-priority platform work, and the ops teams had absorbed the manual cost into their week. The implicit answer had become, 'this is just how it is.'
The source system had no native bulk-edit capability. Every update meant navigating record-by-record, field-by-field, in the browser.
Constraints I had to design around
No dedicated engineering. Anything I shipped, I had to own end-to-end, including the rollout, the rollback story, and the support load.
Enterprise security review, Legal, and IT had to clear the tool before a single user touched it. That is a hard bar at Adobe scale, and a failed first submission usually means months of delay.
Zero tolerance for silent writes. Ops teams trust pipeline data because it is reviewed by humans. Anything I built had to preserve that trust, not bypass it.
What I built
A local Python tool that reads structured CSV inputs from ops managers, runs Playwright browser automation against the pipeline system, and pauses before committing anything. The team reviews every proposed fill on screen, edits in place if needed, and clicks through to commit. It never auto-saves.
All data stays on the user's machine. There is no server. There is no cloud sync. The tool reads, the human reviews, the tool commits, and an audit log is written locally with the before-state, the after-state, the user, and the timestamp.
That review gate was not a compromise to win approval, it drove adoption. Ops managers trusted it precisely because it could not surprise them.
The design call, deterministic at runtime
Claude wrote a large fraction of the code. It does not run in production. The automation is fully deterministic: no LLM at runtime, no probabilistic behaviour, no external API calls, no model drift to manage.
That choice closed the entire LLM-risk surface for governance. Enterprise security review, Data Security, and Legal/IT cleared the tool without requiring changes to the submitted design. It is the same architectural trick I reused on the NL query layer and the agentic loop: separate the AI-authoring step from the AI-runtime step, then only ship the deterministic runtime.
Outcomes
~800 field fills per run, completed in ~26 minutes against a manual baseline of hours, at 99.8% accuracy verified against ops-team spot checks. 87% reduction in ops time on the targeted workflow.
Cleared on first governance submission. Rolled out across three regions. Adopted as the default path for the workflow, not an alternative to it.
"The instinct under pressure is to ship the fastest interface and worry about governance later. Inverting that, designing review and determinism into the first version, was what made the rollout actually happen. The next bet is to generalise the same review-gate pattern as a reusable platform primitive other Adobe teams can plug into."
Builds on the same thread
- PROTOTYPE
NL Query Layer
A natural-language query layer over pipeline data where no records ever reach the model, a 5-layer SQL guard enforces read-only access in code, not in policy.
- PROTOTYPE
Agentic Operations Loop
A planning agent that reasons over pipeline state, proposes write actions, and hands off to a human at every consequential step, human review is not configurable out.