# Where is my order triage desk for ecommerce support teams

> Open one board every morning that ranks every in-transit shipment worst first and flags the stuck packages nobody has complained about yet.

- Workflow type: app
- Services: EasyPost, Shopify, Gorgias
- Categories: Customer Support, Operations
- Published: 2026-08-21

## What it does

- Ranks every in-transit shipment worst first into four buckets: delivery exceptions, stalled packages with no recent carrier scan, orders past their promised delivery date, and everything still on track.
- Flags the silent problems, meaning shipments that are clearly stuck where the customer has not written in yet, so your team can reach out before the complaint arrives.
- Opens each row into a detail view with the full carrier scan history beside the customer's order, items and promised date, plus any support conversation they have already started.
- Drafts a plain-English customer update on request, holds it for a support agent to review, and sends it as a reply on the customer's ticket once approved.

## What you'll need

- An EasyPost account that tracks your outbound shipments
- A Shopify store, with permission to read orders and customers
- A Gorgias helpdesk where your support team answers customers
- A rough idea of how long a package normally goes without a carrier scan on your routes, so you can set the stall threshold

## Prompt

Build me a "where is my order" triage desk that my ecommerce support team opens every morning and works out of. This is not an alerting workflow and it must not be framed as one: nothing runs on a schedule and nothing gets pushed anywhere. It is a persistent queue that shows every in-transit shipment ranked worst first, so an agent can tell a simple status question apart from a real delivery exception in seconds.

The main view is a triage board. Load the in-transit shipments from EasyPost using List Trackers, and pull the full detail for a shipment with Retrieve Tracker when a row needs its complete scan history. Join each shipment to its store order in Shopify: use List Orders to match on the tracking number carried on the order's fulfillments, and Get Order to load the full order once a row is matched, so each row can show the customer name, the items in the box, the order value and the promised delivery date. Then check Gorgias for whether that customer has already written in: List Tickets filtered to the customer to find any open conversation, and List Messages to read the thread on it.

Sort every shipment into one of four buckets, ordered worst first. Delivery exception comes first: the carrier has reported a problem such as a failed delivery attempt, a bad address, the recipient being absent, or a customs hold. Stalled comes second: the package is still moving in theory but there has been no new carrier scan for longer than the stall threshold, which defaults to three days. Past estimated delivery date comes third: the carrier's estimated delivery date has passed and the package has not been delivered. On track comes last. Within each bucket, rank by how bad the row is, using days since the last scan, days past the promised date and order value, so the worst rows float to the top of the whole board.

The single most valuable column is the silent-problem flag, and it should be visually obvious on the board. A shipment gets flagged as a silent problem when it lands in the exception, stalled or past-due buckets but that customer has no open ticket in Gorgias. These are the customers who are about to be upset and have not written in yet, and reaching out first is the entire reason my team would open this app. Make it filterable so an agent can work only the silent problems, and show a count of them at the top of the board.

Each row on the board shows the bucket, the silent-problem flag, the customer name, the order number, the carrier and tracking number, the last carrier scan and how long ago it was, the promised delivery date and how far past it we are, the order value, and whether there is an existing ticket with its status and how long the customer has been waiting. Clicking a row opens a detail panel with three things side by side: the full carrier scan history from the tracker as a timeline, the order with its line items, shipping address and promised date, and the existing ticket thread with its messages in order.

Every row has a "Draft customer update" button that kicks off a background agent. The agent reads the full tracking scan history for that shipment, the matching order, and any existing ticket thread, then works out what actually happened to the package and writes a short plain-English update for the customer: where the package really is, what went wrong if something did, what happens next, and by when. It should sound like a human support agent wrote it, avoid carrier jargon and internal status codes, and never invent a delivery date the carrier has not given. The draft lands back in the app attached to that row as a reviewable draft, so the board shows which rows have a draft waiting.

A support agent reviews the draft in the app, edits the text if they want, and either approves or discards it. On approval the agent sends it as a reply on the customer's Gorgias ticket using Create Message. Nothing is ever sent to a customer without a human approving it first. If the silent-problem customer has no existing ticket, make that case explicit in the interface so the team knows the reply will start a new conversation rather than continue one, and let them choose whether to send it or just mark the row handled.

Two things need to persist. First, the stall threshold has to be configurable in a settings area, defaulting to three days without a carrier scan, because the right number is different for ground versus international shipping. Changing it re-sorts the board immediately. Second, each support agent can mark a row as handled so the queue actually clears, and the app records who handled it and when. Handled rows drop out of the default view but can be brought back with a filter, and if a handled shipment later gets a new exception it should come back into the queue. Show each person who else has already claimed or handled a row so two agents do not write to the same customer about the same package.

Design it for speed during peak season, when this queue gets long. The board should be dense and scannable with the bucket and the silent-problem flag readable at a glance, and an agent should be able to go from opening the app to sending a customer update without ever leaving the screen.

## How to customize

- Change the stall threshold, which starts at three days without a carrier scan, to match your carriers and delivery speeds
- Adjust the ranking or add your own buckets, such as international customs holds or packages heading back as return to sender
- Decide whether an approved update goes out as a public reply to the customer or lands as an internal note for a second pair of eyes
- Filter the board by carrier, destination country or order value so peak season volume stays workable

## FAQ

### What does WISMO mean?

WISMO is short for "where is my order", the single biggest category of inbound ecommerce support contacts. This app is built to work that queue as a triage list instead of answering the same question one ticket at a time.

### Is this a dashboard or does it send alerts?

It is a board your team opens and works out of, not a notification. Nothing runs on a schedule and nothing pings you. Shipments are ranked worst first so the queue clears as your team marks rows handled.

### Will it message customers on its own?

No. Every customer update is written as a draft and sits in the app until a support agent reads it and approves it. Only then does it go out as a reply on the ticket.

### How does it know a customer has not complained yet?

It checks each shipment's customer against your helpdesk for an existing conversation. A shipment that looks stuck with no matching open ticket gets the silent-problem flag, which is the whole point of the board.

### Can several support agents use it at the same time?

Yes. Each person sees who has already claimed or handled a row, so two agents do not end up writing to the same customer about the same package.

### Do I need to set up new tracking for my shipments?

No. It reads the shipment tracking you already have in EasyPost and joins each one to the matching store order, so there is nothing new to create.

Use this prompt in General Input: https://www.generalinput.com/prompts/where-is-my-order-triage-desk-for-ecommerce-support-teams