Triage every new ShipHero return and route it to the right people
Every ShipHero return gets read, summarized in plain English for your support channel, logged for trend spotting, and escalated when it actually matters.
Whenever a new return is created in ShipHero, triage it and route it to the right people. Use a ShipHero poll trigger on the new return event so this runs as soon as a return appears, without anyone having to watch the returns list.
For each new return, gather the full picture before judging anything. Use Get return to pull the complete return record, including the returned line items, the reason code on each one, the condition the item came back in, and the return reference. Use Get order to fetch the original order behind it so I have the order number, the order date, the customer, and what they actually paid. Use Get product for each returned SKU so I have the product name and price alongside the bare SKU.
Before deciding how urgent this is, read back the recent history from my returns log in Google Sheets using Get Values, covering roughly the last 30 days of rows, and count how many times this same SKU has already come back and for what reason. That log is the only place this history lives, so read it first and write to it last. If the log is empty or brand new, fall back to List returns in ShipHero over the last 30 days to build the same count.
Then judge which of three buckets the return falls into. A routine return: wrong size, changed their mind, ordered the wrong thing. A possible product quality problem: damaged, defective, broken on arrival, or the same SKU coming back repeatedly for the same reason. Or a case that needs a human now: a high value order, or a customer who returns a lot. State which bucket you picked and why in one line.
Post a Slack message to my support channel using Send a Message. Keep it short and plain language, because support leads read it on their phone. Include what came back and from which order, the reason in everyday words rather than the raw reason code, the condition it arrived in, the value of the original order, and one recommended next step such as restock, inspect before restocking, refund and move on, or hold for a human to review. No jargon, no raw field names, no ID strings unless they help someone look the return up.
Append every return, without exception, as a row in my returns Google Sheet using Append Values. One row per returned item with the date, the order number, the SKU, the product name, the reason, the item condition, and the order value, so that over time I can see which products drive returns.
Escalate into a separate Slack channel, again with Send a Message, whenever the original order value is over 200 dollars or the same SKU has come back three or more times in the last 30 days. Treat both the dollar threshold and the repeat count as settings I can change in one place, not numbers buried in the logic. An escalation should say plainly why it was escalated, name the product and the customer, and be its own message rather than a thread reply, so it is impossible to miss.
A few things to be careful about. ShipHero money fields come back as decimal strings in the record's currency, so convert them before comparing against the threshold and do not assume cents. A single return can cover several line items, so handle multi-item returns rather than reading only the first one. If the original order or the product record cannot be found, still post the Slack summary and still log the row with whatever is known, and say what was missing rather than skipping the return silently. Never change anything in ShipHero; this workflow only reads and reports.
What does this prompt do?
- Watches ShipHero for new returns and pulls the full picture together: what came back, why, what condition it arrived in, and what the customer originally paid.
- Posts a short, plain-language summary to your support channel with the reason for the return, the order value, and a recommended next step.
- Adds every return to a running spreadsheet so you can finally see which products drive the most returns.
- Escalates to a separate channel when an order is high value or when the same product keeps coming back.
What do I need to use this?
- A ShipHero account that handles returns, and admin access to connect it.
- A Slack workspace with two channels: one for everyday return notices, one for escalations.
- A Google Sheet to log returns in, with a header row for date, order, SKU, reason, condition, and order value.
How can I customize it?
- Change the escalation amount. Two hundred dollars is a starting point, not a rule.
- Adjust the repeat-return threshold and how far back it looks, for example five returns in sixty days instead of three in thirty.
- Send everyday summaries and escalations to different channels, or route escalations as a direct message to your ops lead.
FAQs
How quickly will I hear about a new return?
What makes a return worth escalating?
Will this work if we are a 3PL handling returns for several brands?
Does it change anything in ShipHero?
Do I need the spreadsheet, or can it just post to Slack?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Stop finding out about returns problems a quarter too late.
Get every ShipHero return triaged, summarized, and logged the moment it is created.