Info

Published May 16th, 2026

I don’t think people want to have every question and solution anticipated for them.

Today, I felt this previously named “friction-via-frictionless interface” in action at Amazon and several other sites. Isn’t it funny how once you see something, you’re primed to see it more? Anyways…

We received a bottle of body wash via Amazon which we wouldn’t have had reasonable access to otherwise. I’m reluctant to give Amazon any praise, but darn it, they get items to our home that I’d have no recourse to get within a month otherwise.

So, the body wash arrives with a busted pump and spout. The viscosity of the wash kept it from seeping everywhere, but it was by no means reasonable to return via our local UPS. I can imagine now how frustrating it would be to watch a patron slap a label haphazardly on a clear bag of loose body wash.

So, understandably, I’d expect to report the item as damaged and open, and because it’s a liquid, they cannot reasonably accept it back (not that returns really get back to where they came from), we’d get a refund, safely dispose of any remaining waste, and buy a new one.

Amazon, in their process-improvement friction-removing fervor, deleted the direct option to speak with a rep. We were being coerced by this ease-of-access flow to mail a bag of loose body wash back to a warehouse where it would sit at the bottom of a pallet of other returns until someone bought it at a deep discount or it found life at an end in the local landfill.

As I leave you with this fun treasure map, I’d like to say this reminds me that in our projects or workflows we cannot reasonably anticipate all outcomes. Additionally, we cannot expect that what we see as a lowered friction entry point for service is desirable. To anticipate and reduce the quality or advocacy process to an automated flow in any field is to dilute or remove the individuality of the person reporting it. It’s not necessarily perceived as efficient in cases like this, but as isolating or dismissive of edge cases. In the service industry, healthcare, or the trades it’s the same effect. It’s perceivable as enshittification and a push for hands-off management. In my career, I’ve heard the public call these workflows like herding cattle.

People want to express what is wrong, even if it’s the same thing everyone else is saying, because that’s part of the process for reconciliation. Companies that think the answer is to remove the opportunity to express dissatisfaction only consolidate this short-lived fuming into a choking-smog that will drive your community away.

Here’s the flow we experienced. Due to the complexity, I did leverage GLM-4.7 (reasoning) from Z.ai via Kagi Assistant to apply the Obsidian Mermaid Syntax to the outlined flow.

flowchart TD
    %% Style Definitions
    classDef action fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
    classDef decision fill:#fff9c4,stroke:#fbc02d,stroke-width:2px,rx:20,ry:20;
    classDef system fill:#f3e5f5,stroke:#4a148c,stroke-width:2px;
    classDef result fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
    classDef note fill:#ffebee,stroke:#b71c1c,stroke-width:1px,stroke-dasharray: 5 5,font-style:italic;
    classDef rep fill:#fff3e0,stroke:#e65100,stroke-width:2px,stroke-dasharray: 2 2;
    classDef looper stroke:#d50000,stroke-width:4px,stroke-dasharray: 10 5,fill:#fff5f5;

    %% --- START ---
    Start((Amazon Item Returns Broken)):::action
    ContextNote[Context: Unsafe to return would just flow out of bag being liquid]:::note
    Start -.-> ContextNote

    Profile[Visit Amazon Profile]:::system
    Orders[Your Orders]:::system
    ReturnBtn[Return or Replace]:::system

    Profile --> Orders --> ReturnBtn

    %% --- THE FIRST PASS ---
    ReturnBtn --> Reason{Choose Reason}:::decision
    Reason -->|Item defective| Photos[Asked to provide photos]:::system
    Reason -->|Product damaged but box OK| Photos
    Reason -->|Missing broken parts| Photos
    Reason -->|Box and item damaged| Photos

    %% --- THE FORM ---
    Form[Return form with instructions to drop it off and in exchange can be sent a refund to account balance or original payment method OR receive the same item in exchange]:::system

    Photos --> Form
    Form --> Escalation1{Escalation Available}:::decision
    Escalation1 -->|No option provided| NavCS[Navigate to specialized Customer Service Page]:::action

    %% --- THE ROUNDABOUT LOOP ---
    subgraph Circuit [The Return Logic Roundabout]
        direction TB

        SelItem[Select Specific Item]:::looper
        RetRep[Return or Replace]:::looper
        Reason2{Choose Reason}:::looper
        Photos2[Asked to provide photos]:::looper
        Form2[Return form with instructions to drop it off and in exchange can be sent a refund to account balance or original payment method OR receive the same item in exchange]:::looper
        Escalation2{Escalation Available}:::looper

        SelItem --> RetRep --> Reason2
        Reason2 -->|Options| Photos2 --> Form2 --> Escalation2
    end

    NavCS --> SelItem

    %% --- LOOP NOTE DETAIL ---
    LoopNote[Note the areas where we are looping: Begin returned to the exchange type page etc]:::note
    LoopNote -.-> Form2

    %% --- EXIT & RE-ENTRY ---
    Escalation2 -->|No option provided| Search[Search the word Chat in help content]:::action
    Search --> SupOpt[Select Support options and customer service]:::system
    SupOpt --> Link[Select link for Customer Service for 24 7 Support]:::system
    Link --> MainCS[Returned to main Customer Service center]:::system

    MainCS ==>|Loop Back| SelItem

    %% --- GAMING THE SYSTEM ---
    SelItem --> Egregious{Select Egregious Option}:::decision
    Egregious -.-> Motiv[Motivation: In hopes that there is not a flow prepped property damage item missing or stolen etc]:::note

    Egregious -->|Select Option| AIEsc[Get escalated to AI]:::system
    AIEsc --> Trouble[Complete confirmation of troubleshooting steps]:::system
    Trouble --> AIResolve[AI says it has been resolved and asks if you need more assistance]:::system
    AIResolve -->|Select Yes| AIItem{Assistance with this item or another item}:::decision
    AIItem -->|Same Item| HumanOffer[Offer to escalate to human]:::system
    HumanOffer -->|Agree| Warn[Warned that lines are busy we may not hear from a human for several minutes or longer]:::system
    Warn -->|Agree| ConnectNode[Instantly connected to a human]:::result

    %% --- HUMAN REP FLOW ---
    subgraph RepProcess [Human Rep Internal Flow]
        direction TB
        Receive[Receive Connection]:::rep
        Listen[Human is informed that the bottle is broken and to ship it would be to mail a bag of loose liquid to Amazon]:::rep
        CheckAlgo[Pause to check Standardized Internal Flowchart]:::rep
        CheckNote[Note: Algorithm is Standardized]:::note
        CheckAlgo -.-> CheckNote
        Process[Rep immediately calls that silly and processes immediate refund]:::result

        Receive --> Listen --> CheckAlgo --> Process
    end

    %% --- CONCLUSION ---
    ConnectNode --> Receive
    Process --> TimeCost[15 to 30 minutes of my morning gone for something that no amount of anticipatory programming could account for]:::note
    TimeCost -.-> End((END)):::user