Catch bad shipping addresses before you buy the label
Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.
Every weekday at 8am, check the shipping addresses on my unfulfilled Shopify orders before I buy labels for them, so I do not pay for a failed delivery and then a reship.
Start with Shopify List Orders to pull orders that are paid but not yet fulfilled. Only look at orders that are currently waiting on a label. Do not revalidate order history, and skip anything already fulfilled or cancelled.
Run the shipping address on each of those orders through Shippo Validate Address.
When Shippo returns a clean correction that only normalizes formatting, apply it with Shopify Update Order. That means things like a street type abbreviation (Street to St), odd casing (123 MAIN STREET to 123 Main St), a missing ZIP+4 extension, or a misspelled city that resolves to the same place. Write the corrected address onto the order and add a note recording exactly what changed, so anyone looking at the order later can see it was touched automatically and why.
When the address is genuinely undeliverable or ambiguous, do not change it. Leave it exactly as the customer entered it. This covers a missing apartment or suite number on a multi unit building, a street that does not exist at that number, and a mismatch between the city and the postal code. Instead, use Shopify Update Order to tag the order for review with a tag like address-review, and add a note explaining what Shippo flagged.
For each of those held orders, use Gmail Send a Message to email the customer a short, friendly note asking them to confirm the correct address before it ships. Quote the address we have on file, name the specific thing that is unclear, and make it easy to reply. Keep it warm and brief, and do not make the customer feel blamed.
Do not email the same customer twice about the same order. Before sending, check the order's existing tags and notes. If it is already tagged for review and we have already reached out, skip the email and just keep tracking it in the digest.
Finish with one Slack Send a Message digest to my fulfillment channel. Include how many addresses were auto corrected and which orders they were, which orders are on hold waiting for a customer reply, and a clearly separated section listing any order that has been blocked for more than two days so nothing quietly stalls. If there is nothing to report, still post a short all clear line so I know the check ran.
What does this prompt do?
- Each weekday morning, pulls every order that has been paid for but not yet shipped and checks the delivery address against a shipping address database.
- Fixes harmless formatting problems on its own, like Street versus St, odd capitalisation, a misspelled city, or a missing four digit ZIP extension, and records the change on the order.
- Leaves genuinely questionable addresses untouched, such as a missing apartment number or a city that does not match the postal code, tags the order for review, and emails the customer a friendly request to confirm.
- Posts one summary to your fulfillment channel with the number of auto corrections, the orders waiting on a customer reply, and anything stuck for more than two days.
What do I need to use this?
- A Shopify store where you can view and edit orders
- A Shippo account, used for the address checks
- A Gmail account to send the customer emails from
- A Slack workspace and the channel your fulfillment team watches
How can I customize it?
- Change the timing. Run it every weekday at 8am, twice a day through peak season, or only on the days you actually buy labels.
- Decide how cautious to be. You can treat a missing apartment number as an automatic hold, or let it through when the building is a single unit.
- Change the review tag, the wording of the customer email, which channel gets the summary, and how long an order can sit before it gets called out as stalled.
FAQs
Could this change a customer's address to the wrong one?
What happens if the customer never replies?
Will customers get the same email every morning?
Do I need to change how I buy labels?
Does it look at my whole order history every morning?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.
One board showing every party you are onboarding, which documents are still missing or expiring, and a one click chase email for exactly what is outstanding.
Every hour, new email attachments get sorted by document type and vendor, saved under clear names, and logged in a spreadsheet index.
Work one return at a time at the dock: grade each item, pick a disposition, restock what is resellable, and process or flag it without leaving the screen.
Stop paying twice for the same delivery.
A bad address costs you the wasted label, the reship, and the customer's patience. Catch it the morning before you ship instead.