Back to Knowledge Base
    3 min read Templates

    Workflow Template

    The specification to write before you build an automation — including the parts that break.

    Write this before you open the automation tool. Every time.

    The happy path takes twenty percent of the effort. This template is mostly about the other eighty.

    Read the design principles · Request Your Free Systems Audit


    The specification

    ═══════════════════════════════════════════
    WORKFLOW: [name]
    ═══════════════════════════════════════════
    
    PURPOSE
    [One sentence. What this replaces or enables.]
    
    PLATFORM
    [CRM / integration tool / script — and why this one]
    
    READINESS CHECK — all must be true before building
    [ ] The process is documented
    [ ] It has run the same way for 4+ weeks
    [ ] Volume justifies the build
    [ ] Failure is detectable
    [ ] Someone is named to be notified on failure
    
    ───────────────────────────────────────────
    1 · TRIGGER
    ───────────────────────────────────────────
    Event:          [the specific event]
    Data source:    [where the data comes from]
    Frequency:      [expected executions per day/week]
    
    ───────────────────────────────────────────
    2 · CONDITIONS
    ───────────────────────────────────────────
    Validation:     [what must be present and valid]
    Deduplication:  [what makes two records the same]
                    [what happens on a match]
    Filters:        [what gets excluded entirely]
    
    ───────────────────────────────────────────
    3 · ACTIONS
    ───────────────────────────────────────────
    1. [action]
    2. [action]
    3. ...
    
    If step N fails, prior steps have already run. Recoverable state:
    [describe what a partial run leaves behind]
    
    ───────────────────────────────────────────
    4 · NOTIFICATIONS
    ───────────────────────────────────────────
    Internal:         [who, which channel, when]
    Customer-facing:  [who, which channel, when]
                      Approval obtained: [ ] yes  [ ] n/a
                      Consent required:  [ ] yes  [ ] no
    
    ───────────────────────────────────────────
    5 · RECORD UPDATE
    ───────────────────────────────────────────
    
    | Source field | Destination | Transformation | If missing |
    |---|---|---|---|
    |  |  |  |  |
    
    Stage / status change:  [from] → [to]
    Tags applied:           
    Ownership:              [who the record belongs to afterwards]
    
    ───────────────────────────────────────────
    6 · FOLLOW-UP
    ───────────────────────────────────────────
    Timing:         [when]
    Condition:      [only if...]
    Timeout:        [what happens if nothing responds by...]
    
    ───────────────────────────────────────────
    7 · REPORTING
    ───────────────────────────────────────────
    Success visible at:   [where]
    Failure visible at:   [where]
    Silent-stop detection: [how you'd know it stopped running at all]
    
    ───────────────────────────────────────────
    8 · STOP CONDITION
    ───────────────────────────────────────────
    [What makes this workflow stop applying to a record]
    
    ───────────────────────────────────────────
    ERROR HANDLING
    ───────────────────────────────────────────
    Retry rule:       [interval, max attempts]
    After retries:    [escalation]
    Logging:          [where]
    Manual override:  [how a human intervenes]
    
    ───────────────────────────────────────────
    WHAT THIS DOES NOT DO
    ───────────────────────────────────────────
    - 
    - 
    
    [This section prevents more misunderstandings than any other.]
    
    ───────────────────────────────────────────
    ROLLBACK
    ───────────────────────────────────────────
    How to switch it off:   
    What needs manual repair if it ran wrong:  
    Who may stop it:        
    
    ───────────────────────────────────────────
    
    Built by:       
    Approved by:    [name, date — required for anything customer-facing]
    Go-live date:   
    Review date:    
    

    Acceptance tests

    Run all six. Record the results. Keep the record.

    TestExpected resultPass
    Normal caseCompletes, all fields correct[ ]
    Required field missingStops cleanly, notifies, no partial record[ ]
    Same input twiceNo duplicate created[ ]
    External system unavailableRetries per rule, escalates, no data lost[ ]
    Ten consecutive executionsAll complete, no limits hit[ ]
    Stop condition metCorrectly stops applying[ ]

    When something breaks in four months, this table is what tells you whether it ever worked.


    Before go-live

    • Built and tested outside production
    • All six acceptance tests passed and recorded
    • Written approval for customer-facing actions
    • Rollback written and someone else knows about it
    • First real execution supervised end to end
    • Monitoring confirmed working

    Thinking about automating something?

    A free systems audit tells you whether the process is ready and what the build involves.

    Request Your Free Systems Audit