← Selected work
Work
Customer Operations
Direct-to-consumer, installed product

Automation Request Architecture

The backlog was not short of ideas. It was short of ideas that could be built. The form was the filter.

AutomationIntake DesignPartner SystemsPrioritization

Sanitized for publication. Company names, customer identities, and proprietary figures have been removed.

01

Purpose

Requests to automate a notification, an alert, or a partner handoff arrive constantly and almost always as a sentence. The architecture existed to convert that sentence into a specification an engineer could act on, and to make prioritization an arithmetic exercise rather than a persuasion contest.

02

The problem

Everybody agreed the operation needed automation and nobody agreed on what first. Requests were phrased as outcomes, not as mechanics, so the same idea meant three things to three teams. The harder issue was underneath: a large share of the requests had no reliable trigger event or no single record that could be trusted to answer the question. Those requests were not hard to build. They were impossible to build correctly, and that only surfaced weeks into the work.

03

The thinking

  • Ask for the trigger event first. If nobody can name the moment the automation should fire, the request is a wish.
  • Demand a source of truth. Two systems disagreeing about the state of an order is the actual project, and it should be named before anything is scheduled.
  • Split execution into three lanes: what changes internally, what the partner must do, and what the customer receives. Most failed automations were strong on one lane and silent on the others.
  • Require monitoring in the request. An automation nobody watches fails silently, which is worse than the manual process it replaced.
  • Name an owner and a fallback. Systems that run unattended still belong to a person.
  • Write acceptance criteria before estimating. If success cannot be described, it cannot be verified after launch.
  • Score volume against effort and let the plot argue. Ranking by opinion produced a permanent tie.
04

What was created

  1. 01

    A request specification

    A fixed set of fields covering trigger, source of truth, internal execution, partner execution, customer communication, internal task assignment, monitoring, timing rule, owner and fallback, dependencies, and acceptance criteria.

  2. 02

    A scored request register

    Every request captured with estimated monthly volume and share of orders affected, so the operational weight of each idea was visible next to it.

  3. 03

    A phase boundary

    An explicit nice-to-have column, so useful but non-essential scope could be recorded without inflating the first build.

  4. 04

    A partner-facing view

    The subset of each request that depended on the logistics partner, separated out so external dependencies could be negotiated as a group rather than one ticket at a time.

05

Selected artifacts

Figure 01 — The anatomy of a buildable request
A REQUEST IS NOT A REQUEST UNTIL ALL EIGHT FIELDS ARE ANSWEREDTrigger eventWhat in the world makes this fireSource of truthWhich record decides the answerSystem executionWhat changes internallyPartner executionWhat the external party must doCustomer communicationWhat the customer receives, and whenMonitoring and alertingHow a silent failure gets noticedOwner and fallbackA person, and a second personAcceptance criteriaWhat proves it worksMost requests failed at source of truth, not at engineering effort.THE FORM WAS THE FILTER. WRITING IT DOWN KILLED THE WEAK IDEAS.
A structural recreation of the intake specification. Field names are generalized and all request content, partner names, and volumes are removed.
Figure 02 — Volume against effort
VOLUME AGAINST EFFORT. THE ORDER OF WORK CAME OUT OF THE PLOT.HIGHLOWVOLLOW EFFORTHIGH EFFORTBuild firstPlan and sequenceBatch when convenientQuestion the requestDOZENS OF REQUESTS, SCORED THE SAME WAY, ARGUED ABOUT ONCE.
An illustrative distribution showing how the register was sequenced. Positions are representative of the method, not of any real request set.
06

Key decisions

  1. 01

    Make the form mandatory before the conversation

    It felt bureaucratic and it was the highest-leverage decision in the project. Roughly half the backlog resolved itself once people had to write down what would trigger it.

  2. 02

    Treat customer communication as part of the automation

    An internal state change that the customer learns about by calling in is not an improvement. Every request had to say what the customer sees and when.

  3. 03

    Refuse requests without a source of truth

    Rather than building against ambiguous data, unresolved requests were held and the data ownership question was raised on its own. Slower, and it prevented automating a wrong answer at scale.

07

What it informed

  • Became the intake layer behind the customer journey operating system.
  • Turned the partner relationship from ad hoc asks into a negotiated dependency list.
  • Established the habit of writing acceptance criteria before estimating effort.
08

Reflection

The register was valuable less as a plan than as a diagnostic. Reading the completed fields told you exactly where the operation lacked reliable data, and that turned out to be more useful than any single automation that came out of it. If I built it again I would add a column for what the manual workaround costs today, because that number ends prioritization arguments faster than volume does.

09

Related work