Daily
See what you spent on EasyPost labels today
Every evening you get the number of labels bought and what they cost in total.
- Runs
- Daily
- Apps
- EasyPost
- AI
- Not needed
- Access
- production key
Send this to your assistant
Create a ClickRuntime automation: every day at 8pm, list the EasyPost shipments created today and email me how many labels I bought and the total postage, split by carrier.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An online store, print shop or fulfillment team buys shipping labels all day through EasyPost, and postage is one of the largest variable costs. But the total is usually visible only on a monthly invoice or an account page nobody opens, so a mistaken service level, an unexpected surcharge or a spike from a bulk order goes unnoticed. By the time finance sees it, hundreds of labels have been bought at the wrong rate.
Each day the automation lists the shipments created that day, adds up their rates and emails you the total with a count of labels. It gives you a number to compare against what you expected, while there is still time to correct a rule or a rate selection.
Ecommerce owners, operations managers and bookkeepers who watch margins will value having this every day.
What you get out of it
Postage mistakes caught on the same day
If the day's total is double normal, you can look at the shipments right away. Fixing a wrong default service level the same day saves far more than finding it on the monthly invoice.
Accurate cost of goods
Daily totals feed straight into margin calculations. When you know what postage really cost, you can price shipping fairly and avoid quietly losing money on heavy orders, which is where free-shipping promises often go wrong.
Label counts reveal order volume
The number of labels bought alongside the spend gives you a quick read on how busy the day was. It is a simple operational pulse that does not need a dashboard.
Spot expensive carrier changes
A rate increase from a carrier shows up as a rising cost per label. You will see it within days, and can adjust your shipping options or renegotiate before margins suffer for a whole quarter.
Bookkeeping is easier at month end
A series of daily emails is a ready record of postage spend by day. That saves reconstructing figures from the invoice when it is time to reconcile, and makes it easy to explain a strange month to an accountant.
How it works
What happens, step by step
Every evening, ClickRuntime lists the EasyPost shipments you bought labels for today.
It adds up the number of labels and their cost for each carrier.
You get an email with the day's total and a line per carrier, such as USPS or FedEx.
Before it runs live
- Connect EasyPost
What you get
Build your own
Need it to work differently?
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
- Run it at a different time, more or less often, or only on weekdays
- 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
from collections import defaultdict
from datetime import date
from clickruntime import on_trigger, credentials, http, notify
@on_trigger
def run(event):
shipments = http.get("https://api.easypost.com/v2/shipments", auth=(credentials.secret("EASYPOST_API_KEY"), ""),
params={"start_datetime": date.today().isoformat() + "T00:00:00Z", "page_size": 100,
"purchased": True}).json()["shipments"]
per_carrier = defaultdict(lambda: [0, 0.0])
for s in shipments:
rate = s.get("selected_rate")
if rate:
per_carrier[rate["carrier"]][0] += 1
per_carrier[rate["carrier"]][1] += float(rate["rate"])
total = sum(c for _, c in per_carrier.values())
count = sum(n for n, _ in per_carrier.values())
notify.email_me(f"EasyPost today: {count} labels, ${total:,.2f}",
"\n".join(f"{c}: {n} labels, ${cost:,.2f}" for c, (n, cost) in per_carrier.items()) or "No labels today.")
return {"labels": count, "total": total}FAQ
Common questions
Does the total include refunds for unused labels?
Which rate is counted when there are several options?
Can I see spend broken down by carrier?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
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.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksPost a morning briefing to Slack
Your team starts the day with the weather, a reminder or anything else you'd like in #general.
See how it worksKeep exploring
Set up “See what you spent on EasyPost labels today” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
