What this automation does
Customers hear about problems from you first, and your support team stops spending its day copying tracking numbers into carrier websites.
- Register. When a label is created in ShipStation or a fulfillment is created in Shopify, the workflow registers the tracking number and carrier with the tracking source and links it to the order and customer.
- Receive events. The carrier or aggregator pushes each scan by webhook. Every event is stored with its carrier timestamp, location and raw status code.
- Normalize. Hundreds of carrier-specific codes map to a short list of milestones: label created, picked up, in transit, out for delivery, delivered, delivery attempted, exception and returned to sender.
- Detect problems. Rules flag labels with no pickup scan, shipments with no movement for longer than their service level allows, exception codes, and shipments that will miss the promised date.
- Notify. Customers get messages at the milestones you choose, plus a plain-language delay notice when something goes wrong. Internal alerts go to the shipping lead, and B2B accounts can alert the account manager.
- Answer status questions. When a where-is-my-order email arrives, a model identifies the order from the email address or order number, pulls current status, and drafts the reply in your help desk.
When it is worth building
This earns its keep when where-is-my-order tickets are a large share of support volume, when B2B customers expect a call before a late delivery rather than after, or when you ship with a mix of parcel and freight carriers that no single tool covers.
It is usually not worth a custom build for a straightforward direct-to-consumer brand on one platform. Shopify’s built-in shipping notifications and the carriers’ own emails cover the basics, and post-purchase tracking apps offer branded tracking pages for a monthly fee. Build when tracking has to connect to your help desk, ERP or account management process, when you need custom delay rules per service level, or when freight is in the mix. For broader order problems beyond tracking, pair this with automated Shopify order exception handling.
Architecture
| Layer | What we use | Why |
|---|---|---|
| Label source | ShipStation through its REST API using n8n’s HTTP Request node, Shopify fulfillment events | Tracking numbers are captured the moment they exist |
| Tracking data | Carrier APIs (UPS, FedEx, USPS developer accounts) or an aggregator such as EasyPost, Shippo or AfterShip | Webhooks instead of polling, and fewer formats to maintain |
| Event store | Postgres | Full scan history per shipment, needed for stuck-shipment rules |
| Rules | Code inside n8n | Delay thresholds per carrier and service level are exact logic |
| Customer messages | Transactional email, Twilio SMS for opted-in customers | Customers choose the channel; SMS is reserved for what matters |
| Help desk | Zendesk or Gorgias | Status replies are drafted where agents already work |
| AI layer | Claude Haiku 5.5 | Short, accurate delay notices and reply drafts from structured facts |
Our ShipStation notes cover webhook setup and the API limits to plan around.
How to build it
- List carriers and label sources. Note every carrier, service level and place labels get created. Missing one source means silent gaps.
- Choose the tracking source. Direct carrier APIs for one or two carriers, an aggregator beyond that. Register a test shipment end to end before building anything else.
- Build the milestone map. Map each carrier status code to your milestones. Keep the raw code too, because the mapping will need revisions.
- Write the notification policy. Decide which milestones message the customer. Shipped, out for delivery, delivered and any delay is usually enough. More messages mean more opt-outs.
- Set delay rules per service level. Ground and overnight need different thresholds. Store them in a table, not in workflow logic.
- Add AI for exceptions. Give the model the exception code, the carrier’s own description, the order and the promised date. Constrain it to never promise a new delivery date the carrier has not provided and never offer refunds or reships.
- Draft status replies in the help desk. Have the model find the order, pull live status and write a draft. Agents send it in one click. The same pattern is covered in more depth in our support reply drafting guide.
- Replay last month. Feed last month’s shipments through the rules and compare alerts with what actually happened before you message any real customer.
What breaks in production
- Out-of-order and duplicate webhooks. An “in transit” event can arrive after “delivered”. Order events by carrier timestamp and never move a shipment backward to an earlier milestone.
- Voided labels. A label created and then voided looks like a package that was never picked up. Not every label source sends a void event, so check label status before alerting, or every void becomes a false alert.
- Vague exception codes. “Exception” can mean a weather delay, a bad address or a damaged package. Keep the carrier’s detail text and treat address problems as urgent.
- Multi-package orders. One box delivered and one stuck is not “delivered”. Roll up status per order only when every package agrees.
- Delivered but not received. Porch theft and misdelivery claims need a person and a policy. Do not automate the response beyond acknowledging the report.
- Over-messaging. Every scan as a text message drives opt-outs and complaints. Watch opt-out rates in the first weeks and cut messages if they rise.
Timeline and cost
A parcel-only setup with one label source and one help desk typically takes two to three weeks. Lumeor builds this in the range of $3,500 to $9,000. The lower end covers registration, milestone mapping, delay alerts and email notices. The upper end adds SMS, help desk reply drafting and freight carriers with uneven API coverage. Ongoing costs are mostly per-shipment tracking fees from the aggregator or carriers, SMS fees and modest model usage.
How to measure success
- Where-is-my-order tickets per 100 orders shipped
- Hours from a shipment stalling to someone on your team knowing
- Share of delayed orders where the customer heard from you before contacting you
- Agent handle time on tracking tickets
- SMS and email opt-out rates after launch
- Open delivery exceptions older than three business days