Catch bad Shopify addresses before you buy a label

When a new Shopify order arrives, we verify the shipping address and alert your fulfillment team about anything undeliverable before a label gets bought.

Deterministic Code
EasyPostShopifySlack BotOperationsNotifications & Alerts
PromptCreate

This is a deterministic code workflow that validates the shipping address on every new order before a label is bought. Trigger it with a Shopify webhook that fires whenever a new order is created (order created).

When a new order comes in, take the shipping address off the order: the recipient name, street lines, city, state or province, postal code, and country.

Send that address to EasyPost using Create and Verify Address, which creates the address object and runs delivery verification in a single request. Read the verification result it returns, including whether delivery verification succeeded, any verification errors, and the normalized address EasyPost produces.

Branch on the result. If the address verifies cleanly with no errors, stop and do nothing so clean orders pass through silently. If EasyPost flags the address as undeliverable or returns verification errors, continue with the two steps below.

First, use Shopify Update Order to add an "address-check-failed" tag to the order while keeping any existing tags, and append a short note saying EasyPost could not verify the shipping address so the team should review it before buying a label.

Second, post an alert to our fulfillment Slack channel using the Slack Bot Send a Message action. Include the order number, the customer name, the exact address the customer entered, and any suggested correction EasyPost returned (its normalized version of the address). Format it so a fulfillment teammate can spot the problem and fix the order quickly.

The goal is to catch bad addresses before a shipping label is bought, cutting failed deliveries and return fees. Only orders that fail verification should generate a tag, a note, and a Slack alert.

What does this prompt do?

  • Checks the shipping address on every new Shopify order the moment it comes in.
  • Runs each address through a real deliverability check to catch typos, missing unit numbers, and locations that can't receive mail.
  • Flags failed orders with an "address-check-failed" tag and a short note so your team knows to review before shipping.
  • Posts an alert to your fulfillment Slack channel with the order number, customer name, the address they entered, and a suggested correction.
  • Leaves clean orders untouched, so your team only sees the ones that need attention.

What do I need to use this?

  • A Shopify store where you manage orders.
  • An EasyPost account for address verification.
  • A Slack workspace with a fulfillment channel where alerts should land.

How can I customize it?

  • Change which Slack channel gets the alerts, or send them as a direct message instead.
  • Rename the tag or reword the note added to flagged orders.
  • Adjust what counts as a failure, for example alerting only on undeliverable results versus any verification warning.

FAQs

Will this slow down my checkout?
No. The check runs right after an order is placed, so shoppers never wait. It just flags problem addresses before you print a label.
What happens if the address is fine?
Nothing. Clean addresses pass through silently. Only orders that fail verification get a tag, a note, and a Slack alert.
Does it fix the address automatically?
No. It flags the order and shares the suggested correction so a person can confirm and update it. That avoids shipping to a wrongly guessed address.
Which countries does address verification cover?
EasyPost verifies US addresses in the most detail and supports international verification for many countries. The level of detail varies by country.
Do I need to be technical to set this up?
No. You connect your Shopify store, EasyPost, and Slack, choose the channel for alerts, and the workflow runs on its own.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

Stop shipping to addresses that don't exist.

Catch undeliverable Shopify orders before a label gets bought and save on failed deliveries and return fees.