Skip to content

The moment it happens

Get an email when an EasyPost tracker reports a problem

The moment a parcel fails, is sent back or errors, you hear about it and can contact the customer first.

Runs
The moment it happens
Apps
EasyPost
AI
Not needed
Access
production key

Send this to your assistant

Create a ClickRuntime automation: when an EasyPost tracker changes to failure, return_to_sender or error, email me the tracking code, carrier and the latest tracking detail.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Most packages arrive without any attention, but a few do not: an address that cannot be found, a package held at customs, a failed delivery attempt or a parcel returned to sender. The customer does not know yet, and neither do you, until they email asking where their order is, often days after the problem started. By then the carrier's window to fix it may have closed, and what could have been a quick call is now a refund and an unhappy review.

When EasyPost sends a tracking update, the automation checks the status and, if the shipment has failed, been returned or hit another exception, alerts you with the tracking number and details. You can contact the customer and the carrier first, while the package can still be saved.

Online sellers, fulfillment teams and customer support leads will find it reduces the surprise.

What you get out of it

  • Fix delivery problems before the customer asks

    Reaching out to a customer to correct an address, with the problem already identified, turns a failure into good service. It is much better than answering an angry email that arrives after days of silence.

  • Packages recovered while still possible

    A parcel with a bad address can often be redirected if you act within a day or two. Waiting for the customer to notice usually means it is on its way back to you.

  • Support spends less time on where is my order

    When you already know about the exception, support can reply quickly with a plan. The number of vague where is my package tickets falls as problems are handled proactively, and agents spend their time on real fixes.

  • Chargebacks and bad reviews avoided

    A customer who is told early and offered a replacement is far less likely to dispute the charge. Proactive handling is cheaper than a chargeback fee and a lost customer.

  • Carrier performance becomes visible

    A steady stream of alerts for one carrier or route shows where problems cluster. That is evidence you can use when choosing carriers, adding insurance or negotiating service levels with an account manager.

How it works

What happens, step by step

  1. When an EasyPost tracker is updated, EasyPost tells ClickRuntime straight away.

  2. ClickRuntime only acts if the parcel has failed delivery, is being returned to sender, or has an error.

  3. You get an email with the tracking number, the carrier and the latest tracking message, so you can contact the customer first.

Before it runs live

  • Connect EasyPost
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Get an email when an EasyPost tracker reports a problemjust nowSucceeded
Email · Tracking problemTracking return to sender: 1Z999AA10123456784 Carrier: UPS · Latest: Returned to shipper, refused by recipient

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other EasyPost steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
tracking_exception_alert.pyexample
from clickruntime import on_event, notify

BAD = ("failure", "return_to_sender", "error")

@on_event
def handle(event):
    body = event.json or {}
    if body.get("description") != "tracker.updated":
        return {"skipped": True}
    t = body["result"]
    if t["status"] not in BAD:
        return {"status": t["status"]}
    last = (t.get("tracking_details") or [{}])[-1]
    notify.email_me(f"Tracking {t['status'].replace('_', ' ')}: {t['tracking_code']}",
                    f"Carrier: {t['carrier']}\nLatest: {last.get('message', 'no detail')} ({last.get('datetime', '')})")
    return {"tracker": t["id"]}

FAQ

Common questions

Which statuses count as a problem?
Statuses such as failure, return to sender, error and delivery attempted or held are treated as problems. Ordinary in-transit and delivered updates are ignored, so you only hear about shipments that need attention from a person.
How quickly will I hear about an exception?
EasyPost sends the update when the carrier reports it, so the alert arrives within moments of that report, with the tracking number and the carrier's own description of what went wrong. Carriers differ in how fast they scan and report, so any delay is mostly on their side, not in the alert itself, and it usually amounts to minutes.
Does it work for every carrier?
It works for any carrier whose shipments are tracked through EasyPost, since the updates arrive in one common format. Detail and timing vary by carrier, but the alert logic is the same for all of them, so adding a second carrier later needs no new setup.
What permissions does it need?
production key. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get an email when an EasyPost tracker reports a problem” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.