Daily
List paid Etsy orders that still need shipping
Each morning you get the paid, unshipped orders sorted oldest first with how many days each has waited.
- Runs
- Daily
- Apps
- Etsy
- AI
- Not needed
- Access
- transactions_r
Send this to your assistant
Create a ClickRuntime automation: every morning at 7:30, email me Etsy orders that are paid but not shipped, oldest first, with the buyer, items and days since purchase.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Etsy tracks how quickly you dispatch against the processing time on each listing, and late shipments feed into Star Seller status, search ranking and the dreaded 'where is my order' message. In a busy week a paid receipt from Tuesday gets buried under newer ones, especially when you work from the Orders page sorted by newest. Nobody notices until the buyer writes in on Saturday.
Each morning, ClickRuntime pulls your Etsy receipts that are paid but not yet marked shipped, works out how many days each has been waiting, and emails the list with the oldest first. The top of the email is the order most at risk of missing its promised date.
It is most useful for sellers who make to order, where production time varies, and for shops where a partner or family member packs boxes and tracking numbers get entered late.
What you get out of it
Hit your processing-time promise
The list shows days waiting next to each order, so anything approaching your stated processing time stands out. Shipping it first protects the on-time dispatch rate that Etsy measures against you. Late packages are the most common cause of angry messages.
Keep Star Seller status in reach
Star Seller depends partly on on-time shipping and tracking uploads. A daily oldest-first list means one forgotten box does not drop you below the threshold for the quarter. One quiet quarter can change a shop's standing.
Avoid refund requests and disputes
Buyers who wait with no update ask for refunds or open cases. Clearing the oldest paid orders each morning removes the main reason for those messages, along with the fees and lost goodwill that follow.
Start the day with a pick list
The email doubles as a packing plan: buyer, items, age. You can print it, work from the top, and know that when it is empty nothing paid is waiting. It also helps whoever packs on busy mornings.
Catch orders marked wrong
If a receipt shows paid but a parcel already left, the entry flags a missing 'mark as shipped' step. Fixing it keeps tracking visible to the buyer and stops the order from reappearing.
How it works
What happens, step by step
Once a day, ClickRuntime looks for Etsy orders that are paid but not yet shipped.
It works out how many days each one has been waiting.
You get an email listing them oldest first, with the buyer, the wait and the items.
Before it runs live
- Connect Etsy
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 Etsy steps into one automation
Under the hood
The code that runs this automation
import time
from clickruntime import on_trigger, credentials, http, notify
SHOP_ID = "12345678"
@on_trigger
def run(event):
resp = http.get(f"https://openapi.etsy.com/v3/application/shops/{SHOP_ID}/receipts",
params={"was_paid": "true", "was_shipped": "false", "sort_on": "created",
"sort_order": "asc", "limit": 100},
headers={"x-api-key": credentials.secret("ETSY_API_KEY"),
"Authorization": f"Bearer {credentials.connection('etsy', 'shop')}"})
resp.raise_for_status()
receipts = resp.json()["results"]
if not receipts:
return {"to_ship": 0}
lines = []
for r in receipts:
days = int((time.time() - r["create_timestamp"]) // 86400)
items = ", ".join(f"{t['quantity']}× {t['title']}" for t in r["transactions"])
lines.append(f"- {r['name']}, {days} days: {items}")
notify.email_me(f"{len(receipts)} Etsy orders to ship", "\n".join(lines))
return {"to_ship": len(receipts)}FAQ
Common questions
How does it decide an order is unshipped?
Will digital downloads show up in the list?
Can I get the reminder only when something is overdue?
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 before an Etsy listing sells out
A daily email names the active listings with fewer than 3 left, before Etsy deactivates them.
See how it worksGet last week's Etsy orders and revenue every Monday
A Monday email gives the order count and total for the past week next to the week before.
See how it worksPost every Etsy sale to Slack for packing
Each new Etsy receipt appears in a Slack channel with the buyer and items, so whoever packs knows what to send.
See how it worksKeep exploring
Set up “List paid Etsy orders that still need shipping” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.