Every online store owner knows these messages: "Where is my parcel?", "When will it arrive?", "The tracking number doesn't work." The customer buys, pays, and then starts writing because they don't know what's happening with their order. Instead of replying to each message manually, you can send the customer information they can check themselves — the tracking number, carrier's tracking page, and estimated delivery window. These three pieces of information take care of most status queries. The problem is that most stores only send a payment confirmation, and the rest the customer has to figure out themselves.
On this page you'll find: which messages need to go out after a purchase and when, what exactly to include in each one, how to mark up shipment data according to the ParcelDelivery standard, and what it looks like when a system runs the entire process instead of you.

Where messages "where is my parcel" come from
A customer who didn't receive a shipping notification doesn't know three basic things: what the tracking number is, which carrier is handling the delivery, and when it will approximately arrive. These three pieces of information are everything they need to track the parcel themselves on the carrier's website or app. Without them — they write to you. You reply manually to each message, waste time repeating the same thing, and the customer still isn't sure if the data you provided is current.
The most common scenarios where customers write:
- the order was paid, but two days have passed and there's no shipping notification,
- the tracking number is in the email, but the link doesn't work or leads to a page in a different language,
- the customer checks the carrier's website and sees status "shipped," but doesn't know when the parcel will be at the parcel locker.
In each case, one correct notification with complete data would have been enough.
Which messages to send after a purchase and when
An organized communication sequence with the customer looks like this:
Payment confirmation — at the moment the payment system confirms receipt of payment. Here the customer sees that the order is accepted and that you're working on it.
Shipping notification — when the carrier picks up the parcel and assigns a tracking number. This is the moment when you send three key pieces of data: the tracking number, the carrier's tracking page link, and the estimated delivery window (from when to when). Don't send this before the carrier actually picks up the parcel — otherwise the customer will see that the "shipped" status doesn't change for several days and start writing.
In transit information — optionally, when the carrier updates the status to "in transit" or "at parcel locker." In many systems this happens automatically, but if you want to make sure the customer knows about the change — send a notification.
Delivery notification — when the status changes to "delivered" or "collected." This is the moment when you can ask for a product review.
Review request — a day or two after delivery, when the customer has had time to test the product. Not earlier, because they haven't had time to check anything yet.
This sequence matches the natural lifecycle of an order and gives the customer information at every stage before they start worrying.

What ParcelDelivery schema contains
ParcelDelivery is a schema.org standard that describes a shipment in a way that systems and search engines understand. If you mark up shipment data according to this standard, there's a chance Gmail and other systems will display extended shipment information directly in the inbox.
Key ParcelDelivery fields:
- trackingNumber — tracking number assigned by the carrier,
- trackingUrl — the website address where the customer can track the parcel,
- expectedArrivalFrom — earliest estimated delivery date,
- expectedArrivalUntil — latest estimated delivery date,
- carrier — carrier name (e.g., InPost, DPD, Poczta Polska).
These five fields are the absolute minimum that should appear in every shipping notification. Without them, the customer doesn't have tools to check where their parcel is themselves.
More about ParcelDelivery fields in the schema.org documentation: ParcelDelivery on schema.org.
Why ParcelDelivery matters for deliverability
When your emails contain properly marked up ParcelDelivery data, Gmail can display a tracking card directly in the inbox. This means the customer sees the tracking button without leaving their email client. It's not a guarantee, but correct markup gives you this opportunity. The key is including trackingNumber, trackingUrl, and expectedArrival dates in a structured way.
What happens without tracking information
Without these three pieces of information, customers have no choice but to contact you. They can't check the carrier's website because they don't know the tracking number. They can't estimate delivery because they don't know the window. Every such message takes your time and creates friction. The solution is simple: send the data they need in the first notification.
Gmail and extended shipping notifications
Gmail supports ParcelDelivery markup in email messages. This means that if you include ParcelDelivery-compliant data in the message code (number, link, dates), Gmail can display a special module with a tracking button and shipment status directly in the inbox.
This happens without your store participating in the Gmail Product Expert program — you just need to correctly mark up the data in the header or body. It's not a guarantee of display (Gmail decides), but a correctly marked message gives you that chance.
More details in Google's documentation: ParcelDelivery in Gmail Markup.
WooCommerce order statuses: when to send "shipped"
WooCommerce has two statuses that determine when the customer should receive the shipping notification:
Processing — payment has been received, inventory has been reduced, the order is awaiting fulfillment. This is the moment when you're preparing the parcel, but haven't handed it to the carrier yet. Don't send the tracking number at this stage, because the carrier might not have it yet.
Completed — the order has been fulfilled, meaning the parcel has been handed to the carrier and the tracking number has been assigned. This is the moment to send the notification "your parcel has been shipped" with complete data.
If you send the shipping notification at the Processing stage, before the carrier actually ships the parcel, the customer will see that the number doesn't work or that the carrier's status still shows "awaiting shipment." This generates messages instead of eliminating them.
Why timing matters
Sending the notification too early causes more harm than good. The customer sees "shipped" status but can't find the parcel. They contact you expecting answers you don't have yet. Wait for the carrier to confirm pickup, then send the notification. This way the tracking number works from the start.
Notification channels: email, SMS, messenger
The basic and most universal channel is email. It works on every device, doesn't require marketing consent (the message concerns order fulfillment), and customers are used to it.
SMS — works faster than email, but requires customer consent for SMS messages. Good for urgent notifications: "parcel at parcel locker, collect within 48 hours." Don't send everything by SMS because costs add up and the customer might consider it spam.
WhatsApp, Telegram — alternative to SMS if the customer prefers messenger. Requires consent and an active channel on the customer's side. Works similarly to email but in a more interactive format — you can, for example, send a link the customer opens with one click.
The channel choice depends on what the customer prefers and what they consented to. Don't require SMS from every customer if most don't read them anyway.
Situations that will still happen: delay, damage, return
Even with a perfect notification system, customers will write in three situations:
- delay — the parcel didn't arrive within the expected time window,
- damage — the parcel arrived with visible external damage,
- return — the customer wants to return the product according to withdrawal rights.
For these three cases you need a clear path: where the customer can report the problem, who responds, and how much time they have. Don't give a general address "write to us" — give a specific email address or form. For returns, an automatic email with return instructions often helps (link to return page, form, shipping details), but the decision to accept a return is still made by a person.
These situations aren't a problem — they're a natural part of online selling. What's important is that you have a ready process for them instead of inventing an answer every time.
Do it yourself: shipping notification template
Here's a minimal "parcel shipped" notification template you can paste into your email system or store:
Subject: Your parcel is on its way — tracking number
Hi {customer name},
Your order #{order number} has been shipped!
Shipment details:
- Tracking number: {tracking number}
- Carrier: {carrier name}
- Estimated delivery: {date from} – {date to}
Track your parcel here: {tracking link}
Have questions about your order? Reply to this email or call: {phone number}.
Best regards,
{store team}The three key elements of this template are: tracking number, tracking link, and estimated delivery window. Without them, the message is incomplete.
Additional steps you can take yourself:
- check that the tracking link works and leads to a page in the customer's language,
- enable automatic notifications in your store admin (WooCommerce has plugins for this),
- if you use InPost — the tracking link should look like:
https://inpost.pl/pl/wyszukiwanie-zasilku?numer={number}, - for DPD:
https://tracktrace.dpd.com.pl/parcel/{number}, - for Poczta Polska:
https://emonitoring.poczta-polska.pl/?numer={number}.
If you're not sure how to connect your store to the carrier — check if your store operator (WooCommerce, inStore, inPay) has a ready integration.
Automation of notifications — what you gain
When notifications are run by a system, the process looks like this: carrier ships parcel and passes number to system → system immediately sends customer email with number, link and delivery window → when carrier updates status to "delivered," system sends notification "your parcel has been delivered" → next day system sends review request → if customer replies with an issue that doesn't fit automated scenarios, it goes to a queue you see in the panel.
The system doesn't eliminate all messages — delays, damage and returns still require your reaction. But it removes the tedious work of answering "where is my parcel" and "when will it arrive" for the second, third, and tenth time.
See how the notification system works: Automatic messages — we configure confirmations, reminders and thank-yous that go out on their own. If you run a store and want all post-purchase messages to happen without your involvement, see Online Stores, Email integrations, Integrations and Telegram / WhatsApp Integrations. Read more about how the entire process looks from the customer side in the article Query handling automation, Follow-up automation, Process automation in a company and AI agent vs chatbot.
Frequently asked questions
Do I need to send separate notifications for each stage?
You don't have to, but it's worth it. The minimum is one notification with complete data (number, link, date) at the moment of shipping. The rest depends on your store and what customers expect. If you see that people still write despite receiving the number — add a second notification when the status changes to "at parcel locker."
What if the carrier didn't provide the number at the moment of handing over the parcel?
Don't send the shipping notification until the number exists. Wait until the carrier ships the parcel and retrieves the number from their system. In the meantime, you can send a message "we're preparing your order for shipping" — this lets the customer know work is underway, and you're not promising something you don't have yet.
Do I need to mark up emails according to ParcelDelivery?
You don't have to, but it's worth it. Correctly marked message gives a chance for extended view in Gmail (tracking button directly in the inbox). It's not an obligation — it's an extra benefit. If you don't know how to do this technically, ask a developer or check your email system's documentation.
What data must be in every shipping notification?
Three things: tracking number, carrier's tracking page link, and estimated delivery window (from when to when). Without a number, the customer doesn't know which parcel to track. Without a link, they have to find the carrier's website themselves and enter the number manually. Without a window, they don't know if the parcel is still in transit or should already be there.
What to do when a customer writes that the parcel didn't arrive?
Check the status on the carrier's website — often the parcel is already in transit but the customer doesn't see it. If there's actually a delay, contact the carrier and ask for the status. If the parcel is lost — start the carrier's claims procedure and prepare to ship a new product or refund.
Should I send SMS instead of emails?
Don't replace email with SMS — they're different channels for different situations. Email serves to deliver complete information (number, link, date) that the customer can save and come back to later. SMS works for urgent cases: "parcel at parcel locker, collect within 48 hours." Only send SMS to customers who have consented to it.
How often should I update statuses in my store?
Statuses should update automatically through carrier integration. If your store platform doesn't have such integration, check available plugins or consider integration with a system (Integrations) that connects your store to the carrier's API. Without automatic updates, you'll have to change statuses manually, which takes time and creates errors.