Macha

How to Notify Customers About Shipping Delays — Automatically

Abbas, Customer Support & AI, Macha

Written by

Ankeet Guha, Co-founder & CTO, Macha

Reviewed by

Published July 27, 2026

Updated July 27, 2026

Nothing erodes trust faster than silence. A customer pays, gets the "your order is on its way" email, and then… nothing moves. The package sits in a carrier facility three days past its promised date, and the first they hear about it is the tracking page that hasn't updated. So they open a ticket. Then another. Then they email asking for a refund.

How to Notify Customers About Shipping Delays — Automatically

The fix is well understood and boring: tell people before they have to ask. Every best-practice guide — from Jeff Toister to Square to Omnisend — says the same thing: reach out the moment a delay is confirmed, be specific about the new date, apologize, and tell them you're watching it. The hard part isn't the message. It's noticing the delay across thousands of orders without a human babysitting a tracking dashboard.

This post shows how to build that proactive notification with Macha — the AI agent layer that sits on top of the helpdesk you already run (Zendesk, Freshdesk, Gorgias, Front) and connects to the commerce tools you already use, like Shopify and Slack. The goal: when an order falls behind, an agent detects it, posts a personalized update onto the Zendesk ticket, and quietly flags your ops team in Slack. No human in the loop until one is actually needed.

Quick framing: Macha isn't a shipping app or a helpdesk replacement. It's the layer that reads your Shopify orders, decides what to do, and takes the action inside the tools your team already lives in.

Why proactive beats reactive (the numbers)

"Where is my order?" — WISMO — is one of the largest, dullest, most automatable categories in ecommerce support. Gorgias data puts it at roughly 18% of incoming requests on average, and most operators see it land somewhere in the 20–40% of total support volume band, spiking past 50% during peak seasons. A large slice of that is delay-driven: the order didn't arrive when the confirmation email promised, so the customer comes looking.

The lever is timing. Vendors who sell proactive delivery notifications (so take the magnitudes as directional, not gospel) report meaningful WISMO reductions and higher CSAT on delayed shipments specifically when customers are told first — the intuition being that a customer who hears bad news proactively is far less likely to open a ticket than one who discovers the delay themselves. You don't need the exact figure to act on it. The mechanism is obvious: a delay you announce is an apology; a delay they discover is a complaint.

So the job is to turn a delay you'd otherwise find out about from the customer into a delay you surface first. That's an automation problem, and it's a good fit for an agent.

What the workflow looks like

Here's the shape of it, using the three tools this use case needs — Shopify (order data), Zendesk (the customer-facing update), and Slack (the internal heads-up):

StepToolWhat happens
1. DetectShopifyAgent finds orders past their expected fulfillment/delivery date that haven't shipped or are stuck in transit
2. DecideMachaFor each late order, pull full details (line items, fulfillment status, new ETA) and draft a specific, empathetic update
3. Notify customerZendeskPost the update as a public reply on the order's ticket (creating one if needed)
4. Alert the teamSlackDrop a short note in #ops so a human can intervene on the worst cases

A real customer-facing message from this flow reads like this:

Hi! We noticed your order #1523 is running a bit behind schedule. It's currently in transit and we now expect it to arrive by March 6. We're sorry for the delay and we're keeping an eye on it for you — no need to do anything on your end.

Specific order number, honest status, a concrete new date, an apology, and a commitment to watch it. That's the entire best-practice checklist in four sentences — and the agent fills in the order number and ETA from live Shopify data, so it's never a generic "sorry for any inconvenience" blast.

The honest part: how the delay actually gets detected

Here's where most "just automate it" articles wave their hands. Macha's Shopify connector exposes tools, not event triggers — you get search_orders, get_order, lookup_customer, get_customer_orders, and a handful more, but there is no native "Order Updated" webhook firing into Macha out of the box. So you have two genuinely different ways to make this proactive, and the right choice depends on how fast you need to react.

Option A — a scheduled trigger (the simple, robust default)

Macha's scheduled triggers run an agent on a recurring cron interval. You point one at a "shipping-delay sweep" agent and it runs every hour (or a few times a day), uses Shopify's Search Orders tool to pull orders that are unfulfilled or in-transit past their expected date, and for each one posts the Zendesk update and the Slack alert.

Macha's scheduled triggers — agents that run automatically on a recurring cron interval.
Macha's scheduled triggers — agents that run automatically on a recurring cron interval.

This is the approach I'd start with, because it's stateless and self-healing: if the run fails, the next sweep picks up the same orders. A few guardrails to know going in:

  • Minimum interval is 1 hour, with a 24-runs-per-day cap and an org concurrency limit — so this is "checked hourly," not "instant to the second."
  • Triggers auto-disable after 5 consecutive failures and email you, so a broken Shopify token can't silently spin forever.
  • Scheduled triggers are plan-limited — Professional includes a few, Enterprise more — so budget one slot for this sweep. See the pricing page for current limits.
Configuring a scheduled (cron) trigger so the agent sweeps for delayed orders on a recurring interval.
Configuring a scheduled (cron) trigger so the agent sweeps for delayed orders on a recurring interval.

The one thing you must build in is idempotency: tell the agent not to re-notify an order it already messaged. The cleanest way is to have it tag the Zendesk ticket (or check for its own prior public reply) before posting, so a customer doesn't get the same "you're running behind" message every hour. Make that explicit in the agent's instructions.

Option B — a custom webhook (closer to real-time)

If "checked hourly" isn't tight enough, use Macha's universal webhook trigger: Macha generates a unique webhook URL with a signing secret — no connector required — and you point Shopify at it. With Shopify Flow (or a native Shopify orders/updated webhook), you fire that URL the instant fulfillment status changes, and the agent runs per event. You filter inside the agent's instructions: only act when the order is genuinely late, ignore the rest.

A custom webhook trigger — Macha's universal webhook URL that an external system like Shopify Flow can call on an order-update event.
A custom webhook trigger — Macha's universal webhook URL that an external system like Shopify Flow can call on an order-update event.

The trade-off is real: Option B reacts in seconds but needs Shopify Flow set up and is chattier (it fires on every order update, late or not, so your filtering logic has to be tight). Option A is slower but dead simple and needs nothing on the Shopify side beyond the existing connector. Most teams are well served by the hourly sweep; reach for the webhook only if your SLA genuinely demands sub-hour reaction.

Building it: the three tools on one agent

However you trigger it, the agent itself is the same. In the agent builder you wire three actions:

  • Shopify → Get Order / Search Orders — read the order and its fulfillment status.
  • Zendesk → Add Comment — post the public reply (or, if you want a human to send it, an internal note for an agent to approve).
  • Slack → Send Message — drop the alert into #ops.
The tool picker in Macha — searching and adding helpdesk and app actions (Zendesk tools shown) onto a single agent.
The tool picker in Macha — searching and adding helpdesk and app actions (Zendesk tools shown) onto a single agent.

Then the instructions do the reasoning: for each late order, write a short, specific, apologetic update that names the order number and the new expected date; post it as a public reply; if the delay is severe (e.g. more than a week past ETA or a high-value order), also post to #ops so someone can offer a discount or expedite. Because the message is generated per order from live data, you don't maintain a pile of canned macros — the agent adapts the wording to what's actually happening to that order.

If you'd rather not hand-configure all of this, Macha's build-with-AI flow lets you describe the workflow in plain language and it wires up the tools, trigger, and instructions for you — then you tune from there.

A note on credits and cost

Macha is credit-based, and credits are spent per AI action, not per ticket or per "deflection." The default model (GPT-5.4 Mini) costs 1 credit per action, with other models ranging roughly 0.5–9 credits depending on how heavy you go. So a sweep that notifies ten late orders is on the order of a few dozen credit-actions, not thousands. Before any batch run you get an estimate, and you're only billed for actions that actually succeed — a cancelled or errored step costs nothing. No per-seat surprise, no charge for the 990 orders that weren't late. See pricing for the plan that fits your volume, or start a 7-day free trial, no credit card required and meter it on your real store.

Watch-outs — when not to reach for this

Automation is a force multiplier in both directions, so be deliberate:

  • Don't fully automate the public reply on day one. Start the agent in "internal note" mode — it drafts the delay message onto the ticket for a human to approve and send. Watch a week of its judgement (is it calling orders "late" that aren't? is the tone right?) before you let it post publicly without review.
  • Get idempotency right or you'll spam people. A scheduled sweep with no "already notified" check will message the same customer every hour. This is the single most common way this workflow goes wrong — bake the dedupe into the instructions and tags before you turn it on.
  • It's only as accurate as your fulfillment data. If your Shopify "expected delivery" dates are unreliable or your 3PL doesn't sync tracking back cleanly, the agent will mis-classify on-time orders as late. Fix the data source first.
  • Severe delays still need a human. A two-day slip is a polite heads-up. A lost shipment or a two-week delay on a high-value order is a judgement call about refunds, reships, and goodwill — which is exactly why the Slack alert exists. Don't try to automate the apology and the remedy.
  • Channel matters. This use case posts to the Zendesk ticket, which reaches customers who already have an open conversation. If you want to reach every delayed customer (most of whom never opened a ticket), pair this with a proactive email/SMS flow in your ecommerce stack — the agent handles the support-side communication, not your marketing broadcast.

This pairs naturally with Macha's other order-management agents — see the related use cases for auto-resolving "where is my order" inquiries and looking up order details mid-conversation, and the Shopify integration page for the full list of order tools.

FAQ

Does Macha have a native Shopify "order delayed" trigger? No — the Shopify connector provides tools (search orders, get order, lookup customer, etc.), not event triggers. You make the workflow proactive with a scheduled trigger (an agent that sweeps for late orders on a recurring interval) or a custom webhook (Shopify Flow calls Macha's universal webhook URL on order updates). Both are first-class in Macha.

How quickly will a customer be notified after a delay? With the scheduled approach, as fast as your interval — minimum one hour. With the webhook approach, within seconds of Shopify firing the event. Pick based on your SLA; most teams find an hourly sweep is plenty.

Will it message the same customer repeatedly? Not if you set it up correctly. Instruct the agent to tag the ticket (or check for its own prior reply) before posting, so each delayed order is notified once. This dedupe step is essential for any scheduled sweep.

Can a human approve the message before it goes out? Yes. Run the Zendesk action as an internal note so an agent reviews and sends, or as a public reply for full automation. Start with notes, graduate to public replies once you trust it.

What does it cost to run? Credits are spent per AI action (default model = 1 credit/action; 0.5–9 by model), billed only on success, with an estimate shown before batch runs. Notifying a handful of late orders is a handful of credit-actions. See pricing.

Which helpdesks does this work with? This example uses Zendesk, but Macha sits on top of Freshdesk, Gorgias, and Front too — swap the "Add Comment" action for the equivalent on your helpdesk.

Build it

If WISMO is eating your queue, the highest-leverage fix is to stop being the last to know. Start a 7-day free trial, no credit card required, connect Shopify and your helpdesk, wire up a shipping-delay agent, and let it tell customers what's happening before they open a ticket. Read the triggers and scheduling docs for the full setup, or browse the blog for more order-management automations.


Written by Abbas (Customer Support & AI, Macha) · Reviewed by Ankeet Guha (Co-founder & CTO) · Published 2026-06-24 · Last updated 2026-06-24.

Macha

About Macha

Macha is an AI agent platform that works on top of the help desk you already use — Zendesk, Freshdesk, Gorgias, or Front — and connects to the rest of your stack, even your own internal systems. Its AI agents resolve tickets and automate entire workflows end to end, all set up in plain English, no code. Learn more about Macha →

Zendesk
5.0 on Zendesk Marketplace

Loved by support teams worldwide

See what support teams are saying about Macha AI.

The application seems excellent to me! We are still testing, and we need support for some details and they were extremely efficient too!

Daniela Costa

Daniela Costa

Head of Support, Seabra

Macha has been a great addition to our support toolkit. It generates clear, well-organized responses that fit naturally into our workflow. One feature we particularly appreciate is its ability to automatically reply in the same language as the ticket.

Marius F

Marius F

Support Head, Zentana

We've been using Macha for a little while now and it's been really great addition so far! It's powerful, convenient, and makes getting work done a lot easier for our agents.

Alexander Wedén

Alexander Wedén

Head of Support

Support team is very helpful and responsive. Really enjoy how lightweight this is within Zendesk itself vs other more intrusive tools.

Cathleen Wright

Cathleen Wright

Zendesk Admin, Cortex IO

So far it's pretty good! Our queries are a little nuanced, so we can't always use it, but it's got enough utility for us. It can even incorporate our bilingual country with greetings in a second language.

Jae Oliver

Jae Oliver

Head of Support, Wise

Really enjoying using Macha, it has made a noticeable difference to our support team in a short amount of time. I really like the ticket summary feature, saves us a lot of time.

Harry Jackson

Harry Jackson

Head of Support, Crumb

Macha AI is a great addition to my workspace! It's powerful, convenient, and it really makes productivity so much easier for our agents!

Dave G

Dave G

Head of Support, Cyber Power Systems

Very impressed! AI integration for Zendesk has certainly come a long way and Macha seems to set the standard for now. This will for sure save lot of time in our support team.

Pauli Juel

Pauli Juel

Head of CS, Dokument24

Macha has been working great for us so far! The auto-responses are accurate and our resolution time has dropped significantly.

Lana T

Lana T

Zendesk Admin, Swotzy

Macha AI is a great addition. The knowledge base feature means our agents always have the right answers at their fingertips.

Mischa Wolf

Mischa Wolf

Head of Support, Topi

We're enjoying this integration so far. It's made our support team more efficient and our customers get faster responses.

Paula G

Paula G

Head of Customer Support, Xly Studio

The team enjoys using it. It saves considerable time on common questions and the integration options are excellent.

Kilian Leister

Kilian Leister

Support Head, Didriksons

Ready to supercharge your team with AI?

Get started in minutes. Connect your tools, configure your agents, and let AI handle the rest.

500 free credits · no time limit, no credit card