<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Your Package Tracker — Articles</title>
        <link>https://yourpackagetracker.com/articles</link>
        <description>Guides for tracking shipments in Google Sheets with 1,700+ carriers.</description>
        <lastBuildDate>Thu, 23 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 Your Package Tracker.</copyright>
        <item>
            <title><![CDATA[How to Track Packages from Multiple Couriers in One Place]]></title>
            <link>https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers</link>
            <guid>https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers</guid>
            <pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Track UPS, FedEx, USPS, DHL, and 1,700+ other carriers side-by-side in a single Google Sheet — one column per carrier, one formula for everyone, live statuses auto-updated.]]></description>
            <content:encoded><![CDATA[<p>Here's the situation most shipping teams eventually land in. Monday's outbound: 40 packages via UPS Ground, 20 via USPS Priority, 8 via FedEx Express, 3 international via DHL, one oversized item via Estafeta, and two inbound supplier shipments via SF Express. That's six carriers, six tracking portals, and exactly zero good ways to see <em>all of them</em> in one place.</p>
<p>You don't actually need six tools. You need one <strong>column</strong>. This guide shows how to track packages from every carrier you use — side by side, in a single Google Sheet, with one formula that doesn't care who the carrier is.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-core-idea-carrier-is-a-column-not-a-tool">The core idea: carrier is a column, not a tool<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#the-core-idea-carrier-is-a-column-not-a-tool" class="hash-link" aria-label="Direct link to The core idea: carrier is a column, not a tool" title="Direct link to The core idea: carrier is a column, not a tool" translate="no">​</a></h2>
<p>The way most teams fail at multi-carrier tracking is by splitting their data: one tab for UPS, one tab for USPS, a separate tool for DHL. That's copying the carriers' fragmentation into your own system.</p>
<p>The cleaner pattern is the exact opposite: <strong>one master list, every shipment in it, the carrier is just a value in a column.</strong> The tracking formula reads whichever carrier the row specifies and returns the right status, whether that's UPS, FedEx, DHL, Royal Mail, or J&amp;T Express.</p>
<p>Concretely:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS(tracking_cell, carrier_cell)</span><br></span></code></pre></div></div>
<p>That single formula — with <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Your Package Tracker</a> installed — handles every one of the 1,700+ supported carriers. UPS rows query UPS. USPS rows query USPS. DHL rows query DHL. All in the same column.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-the-canonical-multi-carrier-sheet-layout">Step 1: The canonical multi-carrier sheet layout<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#step-1-the-canonical-multi-carrier-sheet-layout" class="hash-link" aria-label="Direct link to Step 1: The canonical multi-carrier sheet layout" title="Direct link to Step 1: The canonical multi-carrier sheet layout" translate="no">​</a></h2>
<p>Here's the column structure most multi-carrier ops teams converge on. Adapt to taste — the essential columns are <strong>tracking number</strong> and <strong>carrier</strong>, side by side.</p>
<table><thead><tr><th>Col</th><th>Header</th><th>Example</th><th>Notes</th></tr></thead><tbody><tr><td>A</td><td>Date shipped</td><td><code>2026-04-20</code></td><td>Useful for sorting and SLA checks</td></tr><tr><td>B</td><td>Order / reference</td><td><code>SO-8821</code></td><td>Whatever ties back to your system</td></tr><tr><td>C</td><td>Recipient</td><td><code>Jane Doe</code></td><td>For customer-service lookups</td></tr><tr><td>D</td><td>Tracking #</td><td><code>1Z999AA10123456784</code></td><td><strong>Required</strong></td></tr><tr><td>E</td><td>Carrier</td><td><code>UPS</code></td><td><strong>Required</strong> — one carrier per row</td></tr><tr><td>F</td><td>Status</td><td><em>(formula)</em></td><td><code>=PKG_STATUS(D2, E2)</code></td></tr><tr><td>G</td><td>Summary</td><td><em>(formula)</em></td><td><code>=PKG_SUMMARY(D2, E2)</code></td></tr><tr><td>H</td><td>Last event</td><td><em>(formula, optional)</em></td><td><code>=PKG_LAST_EVENT(D2, E2)</code> — for exceptions</td></tr></tbody></table>
<p>The essential thing: columns <strong>D</strong> and <strong>E</strong> are the inputs the formula reads from. Everything else is context for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-the-one-formula-that-handles-everyone">Step 2: The one formula that handles everyone<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#step-2-the-one-formula-that-handles-everyone" class="hash-link" aria-label="Direct link to Step 2: The one formula that handles everyone" title="Direct link to Step 2: The one formula that handles everyone" translate="no">​</a></h2>
<p>In cell <code>F2</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS(D2, E2)</span><br></span></code></pre></div></div>
<p>In cell <code>G2</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_SUMMARY(D2, E2)</span><br></span></code></pre></div></div>
<p>Do <strong>not</strong> copy these down 500 rows manually — we'll get to the right way in a moment.</p>
<p>These two formulas work identically whether <code>E2</code> contains <code>UPS</code>, <code>USPS</code>, <code>FedEx</code>, <code>DHL</code>, <code>Australia Post</code>, <code>China Post</code>, <code>SF Express</code>, <code>Yamato</code>, or any other supported carrier name. The add-on recognizes the carrier string and routes the lookup to the right network under the hood.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="which-carrier-values-work">Which carrier values work?<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#which-carrier-values-work" class="hash-link" aria-label="Direct link to Which carrier values work?" title="Direct link to Which carrier values work?" translate="no">​</a></h3>
<p>You can use any of the following in column E:</p>
<ul>
<li class=""><strong>Full English name</strong> (case-insensitive): <code>UPS</code>, <code>FedEx</code>, <code>USPS</code>, <code>DHL</code>, <code>Royal Mail</code>, <code>Australia Post</code>, <code>Japan Post</code>, <code>SF Express</code></li>
<li class=""><strong>Common abbreviations:</strong> <code>UPS</code>, <code>DHL</code>, <code>USPS</code>, <code>FedEx</code>, <code>RM</code> (Royal Mail), <code>AusPost</code></li>
<li class=""><strong>Local/native names:</strong> <code>中国邮政</code> (China Post), <code>Deutsche Post</code>, <code>La Poste</code></li>
<li class=""><strong>Numeric carrier codes</strong> — if you're importing from a platform that uses codes, those work too</li>
</ul>
<p>This matters because most teams are ingesting tracking numbers from a mix of sources — your shipping platform, a supplier's CSV, a marketplace export — and the carrier name is spelled differently each time. Our normalization is forgiving.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-3-bulk-track-the-whole-list-in-one-pass">Step 3: Bulk-track the whole list in one pass<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#step-3-bulk-track-the-whole-list-in-one-pass" class="hash-link" aria-label="Direct link to Step 3: Bulk-track the whole list in one pass" title="Direct link to Step 3: Bulk-track the whole list in one pass" translate="no">​</a></h2>
<p>This is the step people most often get wrong.</p>
<p><strong>Wrong:</strong> Select <code>F2:G2</code>, grab the fill handle, drag down to row 500. What happens next: every one of those 500 rows fires a live carrier lookup in the same second. Carriers rate-limit, the add-on surfaces errors, and half your cells show <code>#ERROR!</code>.</p>
<p><strong>Right:</strong> Use <strong>Bulk Track Packages</strong>. It's the dedicated tool for exactly this situation, and it handles a <em>mixed-carrier</em> batch in a single run.</p>
<ol>
<li class="">In the Sheets menu bar, open <strong>Your Package Tracker → Bulk Track Packages</strong>.</li>
<li class="">Tracking range: <code>D2:D500</code>.</li>
<li class="">Carrier range: <code>E2:E500</code>.</li>
<li class="">Output type: <strong>Status</strong> (one word per row) or <strong>Summary</strong> (status + last location + timestamp).</li>
<li class="">Click <strong>Start Bulk Tracking</strong>.</li>
</ol>
<p>The add-on walks the rows, reads the carrier from column E for each, routes the lookup to the right carrier network, paces requests to respect each carrier's rate limits independently, caches duplicates, skips already-delivered rows, and writes the results into the column right after your carrier column.</p>
<p>You can close the dialog. It keeps running in the background. Come back in a few minutes, the status column is filled in.</p>
<p>This is the whole "unified multi-carrier view" you came here for — it's literally <em>one button press.</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-4-make-the-sheet-scannable">Step 4: Make the sheet scannable<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#step-4-make-the-sheet-scannable" class="hash-link" aria-label="Direct link to Step 4: Make the sheet scannable" title="Direct link to Step 4: Make the sheet scannable" translate="no">​</a></h2>
<p>Once the status column is populated, the readability win comes from <strong>conditional formatting</strong>. Three rules cover 95% of the use case:</p>
<ul>
<li class=""><strong>Delivered</strong> → green background. Dismiss these visually.</li>
<li class="">Status contains <strong>"Out for Delivery"</strong> → yellow. Today's arrivals.</li>
<li class="">Status contains <strong>"Exception"</strong>, <strong>"Alert"</strong>, <strong>"Return"</strong>, or <strong>"Held"</strong> → red. Your callback queue.</li>
</ul>
<p>How to add it:</p>
<ol>
<li class="">Select the Status column (e.g. <code>F2:F500</code>).</li>
<li class="">Format → Conditional formatting.</li>
<li class="">Condition: "Text contains" → <code>Delivered</code> → background green.</li>
<li class="">Add another rule for <code>Out for Delivery</code> → yellow.</li>
<li class="">Add another for <code>Exception</code>, <code>Alert</code>, etc. → red.</li>
</ol>
<p>Now a 300-row sheet with mixed carriers becomes instantly legible: green rows are done, yellow are today, red is the customer service list.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-world-multi-carrier-scenarios">Real-world multi-carrier scenarios<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#real-world-multi-carrier-scenarios" class="hash-link" aria-label="Direct link to Real-world multi-carrier scenarios" title="Direct link to Real-world multi-carrier scenarios" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dropshipper-sourcing-from-multiple-suppliers">Dropshipper sourcing from multiple suppliers<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#dropshipper-sourcing-from-multiple-suppliers" class="hash-link" aria-label="Direct link to Dropshipper sourcing from multiple suppliers" title="Direct link to Dropshipper sourcing from multiple suppliers" translate="no">​</a></h3>
<p>Supplier A ships via China Post. Supplier B via Yanwen. Supplier C via SF Express. End customers are in the US, EU, Australia.</p>
<p>Sheet structure: one row per order, tracking number in column D, carrier in column E. Conditional formatting on Status. Weekly pivot by carrier: which supplier delivers fastest? Which has the highest exception rate? You've built, for $19/month, a supplier performance dashboard that would take a week to build in a BI tool.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3pl-handling-mixed-domestic--international">3PL handling mixed domestic + international<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#3pl-handling-mixed-domestic--international" class="hash-link" aria-label="Direct link to 3PL handling mixed domestic + international" title="Direct link to 3PL handling mixed domestic + international" translate="no">​</a></h3>
<p>The 3PL receives goods from clients, bundles, and ships via whichever carrier is cheapest per destination. A typical week: 50% UPS Ground, 25% USPS Priority, 15% FedEx, 10% DHL for international.</p>
<p>Sheet structure: one row per outbound, columns for client, tracking, carrier, recipient, ship date, Status, Summary. Daily Bulk Track Packages over the open range. Each client sees a filtered view of their shipments only. One sheet, every carrier, no per-client dashboard to build.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="office-admin-tracking-inbound">Office admin tracking inbound<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#office-admin-tracking-inbound" class="hash-link" aria-label="Direct link to Office admin tracking inbound" title="Direct link to Office admin tracking inbound" translate="no">​</a></h3>
<p>You order supplies from twelve vendors. They ship via whatever carrier they prefer — UPS, FedEx, USPS, DHL, one vendor uses OnTrac, another uses a regional LTL freight carrier.</p>
<p>Sheet structure: vendor, PO number, expected arrival, tracking, carrier, Status. Quick Bulk Track when you want to see what's outstanding. Filter on <code>Exception</code> for the "something's stuck" list you need to chase.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="personal--tracking-everything-you-buy">Personal — tracking everything you buy<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#personal--tracking-everything-you-buy" class="hash-link" aria-label="Direct link to Personal — tracking everything you buy" title="Direct link to Personal — tracking everything you buy" translate="no">​</a></h3>
<p>Online shopping means a tracking number per purchase, and every retailer uses a different carrier. A single personal sheet with 50–100 rows, carrier in column E, Bulk Track once a week, and the whole "where are my things" question is answered without logging into a dozen tracker apps.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="handling-the-edge-cases">Handling the edge cases<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#handling-the-edge-cases" class="hash-link" aria-label="Direct link to Handling the edge cases" title="Direct link to Handling the edge cases" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="i-dont-know-the-carrier">"I don't know the carrier"<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#i-dont-know-the-carrier" class="hash-link" aria-label="Direct link to &quot;I don't know the carrier&quot;" title="Direct link to &quot;I don't know the carrier&quot;" translate="no">​</a></h3>
<p>Occasionally a marketplace gives you a tracking number without saying who the carrier is. In that case, leave column E blank or type <code>auto</code>. Some carriers have tracking number patterns distinctive enough that auto-detection works (e.g. 1Z-prefix is always UPS). For ambiguous numbers, you'll need to ask the shipper — no tracking engine can detect the carrier from a bare number 100% of the time.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="tracking-numbers-crossing-two-carriers">Tracking numbers crossing two carriers<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#tracking-numbers-crossing-two-carriers" class="hash-link" aria-label="Direct link to Tracking numbers crossing two carriers" title="Direct link to Tracking numbers crossing two carriers" translate="no">​</a></h3>
<p>FedEx SmartPost, UPS Mail Innovations, and DHL eCommerce's US arm all hand the final-mile delivery to USPS. You can put <code>FedEx</code> or <code>USPS</code> (or <code>UPS</code> / <code>USPS</code>) in column E — the formula will resolve either way, and the event timeline is continuous across the handoff. We explain this in more detail in our <a class="" href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets">FedEx</a> and <a class="" href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets">USPS</a> guides.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mixing-domestic-and-international-in-the-same-sheet">Mixing domestic and international in the same sheet<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#mixing-domestic-and-international-in-the-same-sheet" class="hash-link" aria-label="Direct link to Mixing domestic and international in the same sheet" title="Direct link to Mixing domestic and international in the same sheet" translate="no">​</a></h3>
<p>No special handling needed. International shipments just surface additional events (customs holds, export scans) in <code>PKG_LAST_EVENT</code>. A useful pattern: pin column H (Last Event) only for rows whose destination isn't your home country, so customs status is always visible for the shipments that actually care about it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Can I have different carriers in different rows?</strong>
Yes — that's the whole point of this setup. One row, one carrier. Mix as many as you want in the same sheet.</p>
<p><strong>Will my quota be split per carrier?</strong>
No. Your monthly lookup budget is pooled across all carriers. 500 lookups on Growth means 500 lookups <em>total</em>, whether they're all UPS or split across 20 carriers.</p>
<p><strong>What if my carrier column is in a different position than column E?</strong>
Doesn't matter. <code>PKG_STATUS(tracking_cell, carrier_cell)</code> takes any two cells as input. Put the columns wherever fits your layout.</p>
<p><strong>Is it fine to have the same tracking number appear twice?</strong>
Yes. Cached reads are free, so the second lookup of the same number doesn't count against quota.</p>
<p><strong>Does Bulk Track Packages really handle mixed carriers?</strong>
Yes — it reads the carrier per row and routes each lookup appropriately. You don't need to run it once per carrier.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try. Paid plans from $19/month. <a class="" href="https://yourpackagetracker.com/pricing">Full pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/track-packages-from-multiple-couriers#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>Multi-carrier tracking is a data-modeling problem, not a tooling problem. The moment you model <em>carrier as a column in one sheet</em> instead of <em>carrier as a separate tool</em>, the whole thing collapses into a single view, a single formula, and a single monthly bill.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>More carrier-specific guides: <a class="" href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets">UPS</a>, <a class="" href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets">FedEx</a>, <a class="" href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets">USPS</a>, <a class="" href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets">DHL</a>. Comparing tools? Read our <a class="" href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools">overview of multi-carrier tracking platforms</a>.</em></p>]]></content:encoded>
            <category>google-sheets</category>
            <category>multi-carrier</category>
            <category>package-tracking</category>
            <category>tutorial</category>
        </item>
        <item>
            <title><![CDATA[Tools to Track Packages from Multiple Couriers: A Practical Comparison]]></title>
            <link>https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools</link>
            <guid>https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools</guid>
            <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Compare multi-carrier package tracking tools — AfterShip, Ship24, TrackingMore, ParcelPanel, and the Google Sheets approach. Pick the one that fits your team size, budget, and workflow.]]></description>
            <content:encoded><![CDATA[<p>If you ship packages for a living — or even just often — you will eventually run into the same problem: <strong>your shipments are split across too many carriers</strong>. A pallet via UPS, a batch of small parcels via USPS, an international express via DHL, an Etsy order via Australia Post, a bulk run via FedEx SmartPost. Each one has its own tracking portal, its own login, its own vocabulary for "in transit."</p>
<p>You don't want five tracking portals. You want <strong>one view</strong> of every shipment you've ever sent, searchable, sortable, and next to the order information.</p>
<p>This article compares the tools that solve that problem — their strengths, their pricing, who they fit best — and where the dead-simple "just use Google Sheets" approach beats the dedicated platforms.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-look-for-in-a-multi-carrier-tracking-tool">What to look for in a multi-carrier tracking tool<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#what-to-look-for-in-a-multi-carrier-tracking-tool" class="hash-link" aria-label="Direct link to What to look for in a multi-carrier tracking tool" title="Direct link to What to look for in a multi-carrier tracking tool" translate="no">​</a></h2>
<p>Before naming names, here is the short checklist. The right tool for you depends on which of these you weight most:</p>
<ul>
<li class=""><strong>Carrier coverage.</strong> How many couriers are supported? The serious tools all cover 1,000+ global carriers. Anything under 500 is a red flag if you ship internationally.</li>
<li class=""><strong>Ingest method.</strong> Some tools want you to forward shipping-confirmation emails. Some read your Shopify orders automatically. Some expose an API. Some are spreadsheet-native. Which matches how <em>you</em> already work?</li>
<li class=""><strong>Pricing model.</strong> Per-shipment, per-user, per-month, or a flat fee? Small operations get gouged by per-shipment pricing at scale; large operations get gouged by per-user pricing.</li>
<li class=""><strong>Customer-facing vs. ops-facing.</strong> Some tools are designed to send branded "where's my package" pages to <em>your customers.</em> Others are designed to give <em>your team</em> a dashboard. These are different products.</li>
<li class=""><strong>Setup effort.</strong> A platform that requires a week of implementation is not free, even if the plan itself is. A formula that works in 60 seconds is.</li>
</ul>
<p>With those in mind:</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-tools-worth-knowing-about">The tools worth knowing about<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#the-tools-worth-knowing-about" class="hash-link" aria-label="Direct link to The tools worth knowing about" title="Direct link to The tools worth knowing about" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="aftership">AfterShip<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#aftership" class="hash-link" aria-label="Direct link to AfterShip" title="Direct link to AfterShip" translate="no">​</a></h3>
<p>AfterShip is the best-known name in this category and a genuinely strong product. Their sweet spot is <strong>mid-to-large Shopify / BigCommerce / Magento stores</strong> that want branded post-purchase experiences — tracking pages on your own domain, delivery notifications in your brand voice, returns flows, analytics dashboards, AI estimated-delivery dates.</p>
<ul>
<li class=""><strong>Best for:</strong> DTC e-commerce at scale, enterprise customer experience</li>
<li class=""><strong>Carriers:</strong> 1,400+</li>
<li class=""><strong>Pricing:</strong> free tier up to ~50 shipments/month, then plans typically start in the tens of dollars and scale with volume; enterprise plans can reach thousands per month</li>
<li class=""><strong>Tradeoff:</strong> overkill and pricey if you just need an operational view of your own shipments, and setup requires integrating it with your store platform</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ship24">Ship24<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#ship24" class="hash-link" aria-label="Direct link to Ship24" title="Direct link to Ship24" translate="no">​</a></h3>
<p>Ship24 positions itself as an <strong>API-first</strong> multi-carrier tracker. If you're a developer building your own dashboard, your own customer emails, or your own internal tool, Ship24 gives you a clean JSON endpoint per tracking number and you stitch the UX together yourself.</p>
<ul>
<li class=""><strong>Best for:</strong> engineering teams building custom tracking UX</li>
<li class=""><strong>Carriers:</strong> 1,200+</li>
<li class=""><strong>Pricing:</strong> pay-per-tracking with volume tiers</li>
<li class=""><strong>Tradeoff:</strong> there is no UI to speak of. If you don't have an engineer to wire it up, Ship24 on its own doesn't solve your problem</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="trackingmore">TrackingMore<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#trackingmore" class="hash-link" aria-label="Direct link to TrackingMore" title="Direct link to TrackingMore" translate="no">​</a></h3>
<p>TrackingMore sits between AfterShip and Ship24 — a dashboard for ops, plus APIs, plus Shopify-style integrations. Popular with <strong>small and mid e-commerce</strong> that want more than a raw API but less than the full AfterShip suite.</p>
<ul>
<li class=""><strong>Best for:</strong> small-to-mid stores wanting a dashboard and occasional API calls</li>
<li class=""><strong>Carriers:</strong> 1,200+</li>
<li class=""><strong>Pricing:</strong> per-shipment plans</li>
<li class=""><strong>Tradeoff:</strong> still a separate platform to log into, and the UI is generic rather than tailored to your workflow</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="parcelpanel">ParcelPanel<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#parcelpanel" class="hash-link" aria-label="Direct link to ParcelPanel" title="Direct link to ParcelPanel" translate="no">​</a></h3>
<p>ParcelPanel is a <strong>Shopify-native</strong> tracking app — installs on your store, automatically ingests orders, and pushes branded tracking pages and notifications. Very popular with Shopify merchants because setup is a few clicks.</p>
<ul>
<li class=""><strong>Best for:</strong> Shopify stores that want branded tracking pages fast</li>
<li class=""><strong>Carriers:</strong> 1,000+</li>
<li class=""><strong>Pricing:</strong> tiered by monthly shipments</li>
<li class=""><strong>Tradeoff:</strong> locked to Shopify (and a few other platforms). If you sell across multiple channels — Etsy, eBay, wholesale, your own site — it covers only one slice</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="parcelsapp-and-similar-consumer-trackers">Parcels.app (and similar consumer trackers)<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#parcelsapp-and-similar-consumer-trackers" class="hash-link" aria-label="Direct link to Parcels.app (and similar consumer trackers)" title="Direct link to Parcels.app (and similar consumer trackers)" translate="no">​</a></h3>
<p>A constellation of apps and websites — Parcels, Packagetrackr, Boxoh, ExtraVox — aimed at <strong>individuals</strong> tracking a handful of personal packages. Great for buyers. Not designed for sellers or ops teams.</p>
<ul>
<li class=""><strong>Best for:</strong> tracking a dozen packages a year for yourself</li>
<li class=""><strong>Carriers:</strong> varies, many hundreds</li>
<li class=""><strong>Pricing:</strong> free with ads; cheap pro tiers</li>
<li class=""><strong>Tradeoff:</strong> no bulk import, no team collaboration, no spreadsheet integration</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="easypost--shippo">EasyPost / Shippo<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#easypost--shippo" class="hash-link" aria-label="Direct link to EasyPost / Shippo" title="Direct link to EasyPost / Shippo" translate="no">​</a></h3>
<p>These are <strong>shipping-first platforms</strong> — they print labels, compare rates, manage pickups — that also provide tracking as part of the package. If you're choosing a shipping platform, tracking comes included. If you <em>already</em> have a shipping stack and just need a tracking view over top of it, they're too heavy.</p>
<ul>
<li class=""><strong>Best for:</strong> teams that haven't picked a shipping platform yet</li>
<li class=""><strong>Carriers:</strong> 100+ label-printing carriers, more for tracking</li>
<li class=""><strong>Pricing:</strong> per-label (shipping) + per-tracking</li>
<li class=""><strong>Tradeoff:</strong> solves more than the tracking problem, at more than the tracking price</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-google-sheets-approach-your-package-tracker">The Google Sheets approach (Your Package Tracker)<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#the-google-sheets-approach-your-package-tracker" class="hash-link" aria-label="Direct link to The Google Sheets approach (Your Package Tracker)" title="Direct link to The Google Sheets approach (Your Package Tracker)" translate="no">​</a></h3>
<p>This is our lane, and it is genuinely different enough from the above to warrant its own row.</p>
<p>Almost every small e-commerce operation, freight forwarder, 3PL intake team, personal seller, and office-admin shipping coordinator is <em>already tracking orders in a spreadsheet.</em> The spreadsheet has the order number, the customer name, the carrier, the tracking number, and enough columns for whatever else the business needs. The problem isn't <em>"I need a dashboard."</em> The problem is <em>"I want the status column next to everything else."</em></p>
<p><a class="" href="https://yourpackagetracker.com/">Your Package Tracker</a> is a Google Sheets add-on that makes that one column work. You drop <code>=PKG_STATUS(tracking_number, carrier)</code> into any cell and it returns the current status, live from the carrier. Five other formulas cover summaries, full event histories, and forced refreshes. <a class="" href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets">Bulk Track Packages</a> handles hundreds of rows at a time while respecting rate limits.</p>
<ul>
<li class=""><strong>Best for:</strong> small businesses, solo sellers, freight desks, office admins, anyone already tracking orders in Google Sheets</li>
<li class=""><strong>Carriers:</strong> 1,700+ worldwide</li>
<li class=""><strong>Pricing:</strong> 3 lookups free, then <strong>$19 / $49 / $99 per month</strong> for 200 / 1,000 / 3,000 lookups. No per-seat fee. No per-shipment overage surprises.</li>
<li class=""><strong>Tradeoff:</strong> not a customer-facing branded tracking page (use AfterShip or ParcelPanel for that). Not an API (use Ship24 for that). Not a shipping platform (use EasyPost/Shippo). It's <em>just</em> the tracking column in your sheet — and for a lot of small businesses, that's the whole need.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="at-a-glance">At a glance<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#at-a-glance" class="hash-link" aria-label="Direct link to At a glance" title="Direct link to At a glance" translate="no">​</a></h2>
<table><thead><tr><th>Tool</th><th>Primary user</th><th>Carriers</th><th>Ingest</th><th>Pricing shape</th><th>Requires a separate app?</th></tr></thead><tbody><tr><td><strong>AfterShip</strong></td><td>DTC e-commerce</td><td>1,400+</td><td>Platform integrations</td><td>Per-shipment + tiers</td><td>Yes</td></tr><tr><td><strong>Ship24</strong></td><td>Developers</td><td>1,200+</td><td>API</td><td>Per-tracking</td><td>Yes (you build the UI)</td></tr><tr><td><strong>TrackingMore</strong></td><td>Small–mid e-commerce</td><td>1,200+</td><td>Dashboard + API</td><td>Per-shipment tiers</td><td>Yes</td></tr><tr><td><strong>ParcelPanel</strong></td><td>Shopify merchants</td><td>1,000+</td><td>Shopify auto-sync</td><td>Per-shipment tiers</td><td>Yes (Shopify only)</td></tr><tr><td><strong>Parcels.app</strong></td><td>Individuals</td><td>Hundreds</td><td>Manual entry</td><td>Free / cheap</td><td>Yes</td></tr><tr><td><strong>EasyPost / Shippo</strong></td><td>Shipping-first teams</td><td>100+ ship, more track</td><td>Platform</td><td>Per-label + per-tracking</td><td>Yes</td></tr><tr><td><strong>Your Package Tracker</strong></td><td>Small business in Sheets</td><td><strong>1,700+</strong></td><td><strong>Google Sheets formula</strong></td><td><strong>Flat monthly, no per-seat</strong></td><td><strong>No — it's a Sheets add-on</strong></td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-the-google-sheets-approach-wins-for-small-business">Why the Google Sheets approach wins for small business<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#why-the-google-sheets-approach-wins-for-small-business" class="hash-link" aria-label="Direct link to Why the Google Sheets approach wins for small business" title="Direct link to Why the Google Sheets approach wins for small business" translate="no">​</a></h2>
<p>Three reasons small-business teams end up choosing our approach over dedicated platforms, even when the dedicated platforms have more features:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-you-already-live-in-google-sheets">1. You already live in Google Sheets<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#1-you-already-live-in-google-sheets" class="hash-link" aria-label="Direct link to 1. You already live in Google Sheets" title="Direct link to 1. You already live in Google Sheets" translate="no">​</a></h3>
<p>A spreadsheet already holds the order, the customer, the SKU, the shipping cost, the profit margin, the notes. The tracking column is the last missing piece. Adding <code>=PKG_STATUS(...)</code> completes the sheet; it doesn't create a new tool to learn, log into, or pay for separately.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-small-business-pricing-that-doesnt-punish-growth">2. Small business pricing that doesn't punish growth<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#2-small-business-pricing-that-doesnt-punish-growth" class="hash-link" aria-label="Direct link to 2. Small business pricing that doesn't punish growth" title="Direct link to 2. Small business pricing that doesn't punish growth" translate="no">​</a></h3>
<p>Per-shipment pricing is great for the vendor, rough on you. Ship 300 packages? $0.05 per tracking × 300 = $15 — but that's <em>per tracking refresh</em>. Two refreshes per shipment means $30. Across a year, that's serious money.</p>
<p>Our plans are flat: <strong>$19 / $49 / $99</strong> per month for <strong>200 / 1,000 / 3,000 lookups</strong> respectively. Cached reads are free, so checking a delivered package again doesn't count. There's no per-user fee, so your whole team can share one sheet.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-1700-carriers-not-just-the-big-us-names">3. 1,700+ carriers, not just the big US names<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#3-1700-carriers-not-just-the-big-us-names" class="hash-link" aria-label="Direct link to 3. 1,700+ carriers, not just the big US names" title="Direct link to 3. 1,700+ carriers, not just the big US names" translate="no">​</a></h3>
<p>Most small businesses think they only need FedEx / UPS / USPS — until they do. An Etsy seller in Portugal gets a buyer in Singapore via SingPost. A Shopify store dropshipping from Shenzhen gets a tracking number from Yanwen or 4PX or China Post. An office admin orders from a European supplier shipping via GLS or DPD.</p>
<p>Our 1,700+ carrier coverage spans every major regional post, every major express carrier, and most of the specialized e-commerce logistics networks that don't show up in smaller trackers. If your customer base is global even occasionally, this matters.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-choose-a-decision-tree">How to choose: a decision tree<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#how-to-choose-a-decision-tree" class="hash-link" aria-label="Direct link to How to choose: a decision tree" title="Direct link to How to choose: a decision tree" translate="no">​</a></h2>
<p>Answer these in order:</p>
<ol>
<li class=""><strong>"Are you a Shopify-only DTC brand with over $500k/year in revenue that needs branded tracking pages sent to customers?"</strong> → AfterShip or ParcelPanel are worth the cost.</li>
<li class=""><strong>"Are you a developer building a custom tool?"</strong> → Ship24's API.</li>
<li class=""><strong>"Are you a consumer tracking a few personal packages?"</strong> → Parcels.app or one of the free trackers.</li>
<li class=""><strong>"Are you a shipping-first team that needs to print labels AND track?"</strong> → EasyPost or Shippo.</li>
<li class=""><strong>"Do you already store your shipments in a Google Sheet, and just want a working status column — for one monthly fee, without adding another login?"</strong> → <strong>Your Package Tracker is probably the right call.</strong> <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install the free add-on</a> and try it with three free lookups.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Can I use Your Package Tracker alongside AfterShip or ParcelPanel?</strong>
Yes. Many teams use AfterShip (or ParcelPanel) for customer-facing branded tracking emails, and use the Sheets add-on as their internal ops view. The two layers don't conflict.</p>
<p><strong>Does the add-on work for non-e-commerce use cases?</strong>
Yes. Common non-e-commerce users: offices tracking inbound purchases, freight desks tracking LTL pickups, legal teams tracking registered mail and certified deliveries, procurement teams tracking vendor shipments.</p>
<p><strong>What if I need an API?</strong>
We don't publish an API. If you need raw JSON per tracking number, Ship24 is the right call. If you need an ops view for your team, we are.</p>
<p><strong>How does the "1,700+ carriers" count compare to the others?</strong>
The serious tools in this category (AfterShip, Ship24, TrackingMore) all claim around 1,000–1,400. Our 1,700+ includes many specialized regional and e-commerce carriers — particularly across Asia and Latin America — that the customer-experience-focused tools often skip.</p>
<p><strong>Is my data private?</strong>
The add-on only sends the tracking number and carrier name upstream for the lookup. It doesn't read other cells, other sheets, or other files in your drive. See our <a class="" href="https://yourpackagetracker.com/privacy">Privacy Policy</a>.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try. Paid plans from <strong>$19/month</strong>. <a class="" href="https://yourpackagetracker.com/pricing">Full pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/multi-carrier-package-tracking-tools#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>The multi-carrier tracking category has a tool for every size of operation. AfterShip is right for enterprise Shopify brands. Ship24 is right for engineers. ParcelPanel is right for Shopify merchants who just want a branded page. EasyPost and Shippo are right if you haven't picked a shipping platform yet.</p>
<p><strong>Your Package Tracker is right for the enormous middle</strong> — small businesses, solo sellers, freight desks, office admins — who are already running their operation out of a Google Sheet and just want the tracking column to work, for one monthly fee, without inviting a new tool into the stack.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>Related reading: <a class="" href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets">UPS</a>, <a class="" href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets">FedEx</a>, <a class="" href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets">USPS</a>, <a class="" href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets">DHL</a> — or browse all <a class="" href="https://yourpackagetracker.com/articles">articles</a>.</em></p>]]></content:encoded>
            <category>package-tracking</category>
            <category>comparison</category>
            <category>tools</category>
            <category>small-business</category>
        </item>
        <item>
            <title><![CDATA[DHL Tracking in Google Sheets: Express, eCommerce, and International]]></title>
            <link>https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets</link>
            <guid>https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Track DHL Express, DHL eCommerce, Deutsche Post, and Parcel International shipments in Google Sheets with one formula. Handles 10-digit waybills, JJD numbers, and GM barcodes.]]></description>
            <content:encoded><![CDATA[<p>"DHL" is really four different carriers sharing a logo. <strong>DHL Express</strong> is the air-freight giant that competes with FedEx Priority. <strong>DHL eCommerce</strong> (now "DHL eCommerce Solutions") is the lower-cost parcel service that hands off to local posts. <strong>Deutsche Post</strong> is the German postal service DHL is part of. <strong>DHL Parcel</strong> runs domestic in Europe. Each has its own tracking number format, its own system, and — until a sheet can query all of them — its own silo.</p>
<p>This guide shows how to track every DHL brand from a single Google Sheet column. One formula, every format, every country.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The formula<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#the-formula" class="hash-link" aria-label="Direct link to The formula" title="Direct link to The formula" translate="no">​</a></h2>
<p>Install <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Your Package Tracker</a>, then in any cell:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS("1234567890", "DHL")</span><br></span></code></pre></div></div>
<p>The add-on figures out which DHL service the number belongs to and routes accordingly. You'll get <code>In Transit</code>, <code>With Delivery Courier</code>, <code>Delivered</code>, <code>Held by Customs</code>, or <code>Returned to Shipper</code> back in the cell.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-dhl-tracking-number-cheat-sheet">The DHL tracking number cheat sheet<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#the-dhl-tracking-number-cheat-sheet" class="hash-link" aria-label="Direct link to The DHL tracking number cheat sheet" title="Direct link to The DHL tracking number cheat sheet" translate="no">​</a></h2>
<p>This is the table you actually want when a DHL number doesn't resolve — the format tells you which service handles it.</p>
<table><thead><tr><th>Format</th><th>Example</th><th>Service</th></tr></thead><tbody><tr><td><strong>10 digits</strong></td><td><code>1234567890</code></td><td>DHL Express (Air Waybill)</td></tr><tr><td><strong>11 digits</strong></td><td><code>12345678901</code></td><td>DHL Express (some national variants)</td></tr><tr><td><strong>JJD + 18 digits</strong></td><td><code>JJD000120230000001234</code></td><td>DHL eCommerce / Parcel Deutschland</td></tr><tr><td><strong>GM + 16 digits</strong></td><td><code>GM60511234567890</code></td><td>DHL Global Mail / eCommerce (US handoff)</td></tr><tr><td><strong>3S + 10 digits</strong></td><td><code>3SABCD1234567890</code></td><td>DHL Parcel (Netherlands, Benelux)</td></tr><tr><td><strong>LX + 9 digits + 2</strong></td><td><code>LX123456789DE</code></td><td>Deutsche Post / DHL Parcel Europe</td></tr><tr><td><strong>CN + 9 + 2 country</strong></td><td><code>CN123456789DE</code></td><td>DHL Registered International</td></tr><tr><td><strong>JVGL / JD...</strong></td><td><code>JD014600006888888888</code></td><td>DHL eCommerce Asia-Pacific</td></tr></tbody></table>
<p><strong>Rule:</strong> pass any of them with <code>DHL</code> as the carrier and the add-on does the right thing. If a specific number fails to resolve, it is almost always a scan-delay issue on DHL's side — the add-on polls the right endpoint, there's just nothing there yet.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-by-step-a-dhl-tracking-sheet">Step-by-step: a DHL tracking sheet<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#step-by-step-a-dhl-tracking-sheet" class="hash-link" aria-label="Direct link to Step-by-step: a DHL tracking sheet" title="Direct link to Step-by-step: a DHL tracking sheet" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-install-the-add-on">1. Install the add-on<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#1-install-the-add-on" class="hash-link" aria-label="Direct link to 1. Install the add-on" title="Direct link to 1. Install the add-on" translate="no">​</a></h3>
<p>Extensions → Add-ons → Get add-ons → <strong>Your Package Tracker</strong> → Install. 3 free lookups.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-columns">2. Columns<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#2-columns" class="hash-link" aria-label="Direct link to 2. Columns" title="Direct link to 2. Columns" translate="no">​</a></h3>
<p>International ops teams (which is most DHL use cases) tend toward a richer column set:</p>
<table><thead><tr><th>Col</th><th>Header</th><th>Example</th></tr></thead><tbody><tr><td>A</td><td>Order</td><td><code>PO-11284</code></td></tr><tr><td>B</td><td>Origin</td><td><code>Shenzhen</code></td></tr><tr><td>C</td><td>Destination</td><td><code>Berlin</code></td></tr><tr><td>D</td><td>Tracking #</td><td><code>1234567890</code></td></tr><tr><td>E</td><td>Carrier</td><td><code>DHL</code></td></tr><tr><td>F</td><td>Status</td><td><em>(formula)</em></td></tr><tr><td>G</td><td>Summary</td><td><em>(formula)</em></td></tr><tr><td>H</td><td>Last event</td><td><em>(formula, for customs)</em></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-formulas">3. Formulas<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#3-formulas" class="hash-link" aria-label="Direct link to 3. Formulas" title="Direct link to 3. Formulas" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">F2:  =PKG_STATUS(D2, E2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">G2:  =PKG_SUMMARY(D2, E2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">H2:  =PKG_LAST_EVENT(D2, E2)</span><br></span></code></pre></div></div>
<p>For DHL more than any other carrier, column H (last event) is where the value is — because international shipments stall at customs, and the event text tells you <em>where</em>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-bulk-track">4. Bulk track<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#4-bulk-track" class="hash-link" aria-label="Direct link to 4. Bulk track" title="Direct link to 4. Bulk track" translate="no">​</a></h3>
<p>Bulk Track Packages is mandatory for DHL at any scale. International lookups are slower than domestic ones (multi-hop routing, customs checks), so pacing matters.</p>
<ol>
<li class=""><strong>Your Package Tracker → Bulk Track Packages</strong></li>
<li class="">Tracking range: <code>D2:D500</code></li>
<li class="">Carrier range: <code>E2:E500</code></li>
<li class="">Output: <strong>Summary</strong> (captures location for customs events)</li>
<li class=""><strong>Start Bulk Tracking</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-each-dhl-service-looks-like-when-tracked">What each DHL service looks like when tracked<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#what-each-dhl-service-looks-like-when-tracked" class="hash-link" aria-label="Direct link to What each DHL service looks like when tracked" title="Direct link to What each DHL service looks like when tracked" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dhl-express">DHL Express<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#dhl-express" class="hash-link" aria-label="Direct link to DHL Express" title="Direct link to DHL Express" translate="no">​</a></h3>
<p>The premium air product. Tracking is detailed and frequent — you'll see scans every few hours across origin, transit, destination hub, customs, and courier. Typical lifecycle:</p>
<p><strong>Shipment information received → Picked up → Processed at origin → Departed origin facility → Arrived at destination hub → Customs clearance processing → Released by customs → With delivery courier → Delivered</strong></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dhl-ecommerce">DHL eCommerce<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#dhl-ecommerce" class="hash-link" aria-label="Direct link to DHL eCommerce" title="Direct link to DHL eCommerce" translate="no">​</a></h3>
<p>Lower cost, slower, fewer scans. Often hands off to the destination country's post office for the final mile. Common lifecycle:</p>
<p><strong>Shipment information received → Arrived at sort facility → Processed through export facility → Arrived in destination country → Transferred to local postal carrier → Out for delivery → Delivered</strong></p>
<p>Once the package hits "Transferred to local postal carrier," DHL's visibility drops. Local post scans may or may not show up.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="deutsche-post--dhl-parcel-europe">Deutsche Post / DHL Parcel Europe<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#deutsche-post--dhl-parcel-europe" class="hash-link" aria-label="Direct link to Deutsche Post / DHL Parcel Europe" title="Direct link to Deutsche Post / DHL Parcel Europe" translate="no">​</a></h3>
<p>For intra-EU shipments, DHL Parcel is effectively the domestic parcel service. Tracking is clean and frequent, with German-language event text translated by the add-on.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dhl-global-mail-us--international">DHL Global Mail (US → International)<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#dhl-global-mail-us--international" class="hash-link" aria-label="Direct link to DHL Global Mail (US → International)" title="Direct link to DHL Global Mail (US → International)" translate="no">​</a></h3>
<p>GM-prefixed numbers are for US-origin bulk international. Tracks through DHL's hub, then a local post. The handoff is where visibility can go dark — expect a 24–48 hour gap between <code>Arrived in destination country</code> and the first local-post scan.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="three-dhl-quirks-worth-knowing">Three DHL quirks worth knowing<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#three-dhl-quirks-worth-knowing" class="hash-link" aria-label="Direct link to Three DHL quirks worth knowing" title="Direct link to Three DHL quirks worth knowing" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-held-by-customs-often-resolves-by-itself">1. "Held by Customs" often resolves by itself<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#1-held-by-customs-often-resolves-by-itself" class="hash-link" aria-label="Direct link to 1. &quot;Held by Customs&quot; often resolves by itself" title="Direct link to 1. &quot;Held by Customs&quot; often resolves by itself" translate="no">​</a></h3>
<p>About half the time, <code>Held by Customs</code> is routine clearance processing that resolves in 24–72 hours with no action needed. Customs only contacts the recipient when a duty is owed or paperwork is missing. A useful rule: only escalate at the 72-hour mark.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-the-waybill-format-is-10-digits--not-11-not-12">2. The waybill format is 10 digits — not 11, not 12<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#2-the-waybill-format-is-10-digits--not-11-not-12" class="hash-link" aria-label="Direct link to 2. The waybill format is 10 digits — not 11, not 12" title="Direct link to 2. The waybill format is 10 digits — not 11, not 12" translate="no">​</a></h3>
<p>DHL Express waybills are <em>exactly</em> 10 digits. If you have an 11- or 12-digit "DHL" number, it's almost certainly DHL eCommerce or a JJD-style internal identifier, not Express. Pasting a non-waybill into DHL Express's tracker yields "not found." The add-on figures this out for you, but if you're ever debugging by hand on dhl.com, choose the right service.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-scan-events-for-international-come-in-the-local-language">3. Scan events for international come in the local language<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#3-scan-events-for-international-come-in-the-local-language" class="hash-link" aria-label="Direct link to 3. Scan events for international come in the local language" title="Direct link to 3. Scan events for international come in the local language" translate="no">​</a></h3>
<p>The raw event feed from DHL comes in the local language — German for EU intra-shipments, Chinese for some APAC, Spanish for LATAM. The add-on normalizes status words to English (<code>Delivered</code>, <code>In Transit</code>, etc.) but the <code>Last Event</code> text may include local-language detail. That's usually useful for ops; set expectations for customer-facing columns.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-worked-example-cross-border-e-commerce-from-china-to-europe">A worked example: cross-border e-commerce from China to Europe<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#a-worked-example-cross-border-e-commerce-from-china-to-europe" class="hash-link" aria-label="Direct link to A worked example: cross-border e-commerce from China to Europe" title="Direct link to A worked example: cross-border e-commerce from China to Europe" translate="no">​</a></h2>
<p>Picture a brand manufacturing in Shenzhen, shipping to EU customers via DHL Express for premium orders and DHL eCommerce for standard.</p>
<p>Workflow:</p>
<ol>
<li class="">One sheet for active shipments. Columns as above.</li>
<li class="">Column F (Status) filtered to hide <code>Delivered</code>.</li>
<li class="">Column H (Last Event) scanned for <code>Customs</code> or <code>Held</code>.</li>
<li class="">Column I manually, for any row stuck in customs more than 72 hours — the support agent adds a ticket link.</li>
<li class="">End-of-week pivot: average transit time by service, split by destination country. Finance uses this to price shipping.</li>
</ol>
<p>What this replaces: DHL's MyDHL+ dashboard (one account per shipper ID), manual CSV exports, a shared Notion page that was always stale.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Do I need a DHL developer account?</strong>
No. The add-on handles every DHL system. You don't need MyDHL+, DHL API keys, or anything else.</p>
<p><strong>Is my tracking info shared with DHL?</strong>
Only the tracking number and carrier name are sent to query DHL. The add-on doesn't read other cells or other files. See our <a class="" href="https://yourpackagetracker.com/privacy">Privacy Policy</a> for the full breakdown.</p>
<p><strong>Will it handle the Deutsche Post consumer tracking site's numbers?</strong>
Yes — Deutsche Post parcel numbers route through the same endpoints. Letters (non-package mail) aren't trackable; that's a DHL limitation, not ours.</p>
<p><strong>What happens with DHL's "proof of delivery" image?</strong>
Not available via the tracking API. You'll still need to log into MyDHL+ for the image. The event <code>Delivered, Received by [Name]</code> does appear in <code>PKG_SUMMARY</code> when DHL exposes it.</p>
<p><strong>How do I handle a package that shows "Delivered" but the customer hasn't received it?</strong>
Check <code>PKG_LAST_EVENT</code> for the exact scan location. DHL's scan-location text usually shows whether it was left at a parcel locker, with a neighbor, at reception, etc. That's almost always enough to answer the customer.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try. Paid plans from $19/month. <a class="" href="https://yourpackagetracker.com/pricing">See full pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>DHL's complexity is structural — it's genuinely several carriers under one brand, with real differences in speed, scan frequency, and visibility. From inside Google Sheets, that complexity collapses into one column of status strings, updated on demand. For anyone shipping internationally with DHL, the sheet is the right dashboard.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>Multi-carrier ops? See our guides for <a class="" href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets">FedEx</a>, <a class="" href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets">UPS</a>, and <a class="" href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets">USPS</a> — or browse all <a class="" href="https://yourpackagetracker.com/articles">articles</a>.</em></p>]]></content:encoded>
            <category>google-sheets</category>
            <category>dhl</category>
            <category>package-tracking</category>
            <category>tutorial</category>
            <category>international</category>
        </item>
        <item>
            <title><![CDATA[FedEx Tracking in Google Sheets: The Complete Guide]]></title>
            <link>https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets</link>
            <guid>https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Pull live FedEx tracking data — Ground, Express, SmartPost, Home Delivery, and Freight — into Google Sheets with one formula. No API keys, no developer account.]]></description>
            <content:encoded><![CDATA[<p>FedEx splits its tracking across half a dozen internal systems — Ground, Express, Home Delivery, SmartPost (now Ground Economy), Freight, International — and each has its own tracking number format. If you've ever pasted a batch of FedEx numbers into a spreadsheet and tried to sort them by status, you know the problem: ups.com and fedex.com don't talk to each other, and neither talks to your sheet.</p>
<p>This guide shows how to consolidate every FedEx service into one Google Sheet using a single formula, so <em>all</em> your FedEx shipments live in one place — next to your order IDs, customer names, and everything else you already track.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula-in-30-seconds">The formula, in 30 seconds<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#the-formula-in-30-seconds" class="hash-link" aria-label="Direct link to The formula, in 30 seconds" title="Direct link to The formula, in 30 seconds" translate="no">​</a></h2>
<p>Install <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Your Package Tracker</a> from the Google Workspace Marketplace. In any cell, type:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS("794657458294", "FedEx")</span><br></span></code></pre></div></div>
<p>You'll get back <code>In Transit</code>, <code>Delivered</code>, <code>Out for Delivery</code>, or whichever state FedEx has on file. The formula auto-routes across FedEx services — you don't need to know whether it's Ground, Express, or SmartPost.</p>
<p>The rest of this guide is the detail worth knowing: how to read a FedEx tracking number, how to pull the data at scale, and how to handle the edge cases (international, SmartPost handoffs, freight pros).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedex-tracking-number-formats-you-will-see">FedEx tracking number formats you will see<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#fedex-tracking-number-formats-you-will-see" class="hash-link" aria-label="Direct link to FedEx tracking number formats you will see" title="Direct link to FedEx tracking number formats you will see" translate="no">​</a></h2>
<p>Unlike UPS's single dominant <code>1Z</code> format, FedEx uses many. The add-on recognizes all of them, but knowing what you're looking at helps when something doesn't resolve:</p>
<table><thead><tr><th>Length</th><th>Looks like</th><th>Service</th></tr></thead><tbody><tr><td><strong>12 digits</strong></td><td><code>794657458294</code></td><td>FedEx Express — standard domestic Air</td></tr><tr><td><strong>15 digits</strong></td><td><code>100000000000000</code></td><td>FedEx Ground, Home Delivery</td></tr><tr><td><strong>20 digits</strong></td><td><code>61299998820821234567</code></td><td>FedEx SmartPost / Ground Economy (USPS last mile)</td></tr><tr><td><strong>22 digits</strong> (9611...)</td><td><code>9611018765432012345678</code></td><td>FedEx SmartPost alt format</td></tr><tr><td><strong>Pro #, 9 digits</strong></td><td><code>123456789</code></td><td>FedEx Freight (LTL)</td></tr><tr><td><strong>FDX...</strong></td><td><code>FDX123456789</code></td><td>FedEx freight pro (prefixed)</td></tr></tbody></table>
<p><strong>Rule of thumb:</strong> pass any of them with <code>FedEx</code> as the carrier and it will work. SmartPost numbers can <em>also</em> be tracked with <code>USPS</code> as the carrier in the final-mile phase — the add-on resolves either way.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-by-step-a-fedex-tracking-sheet">Step-by-step: a FedEx tracking sheet<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#step-by-step-a-fedex-tracking-sheet" class="hash-link" aria-label="Direct link to Step-by-step: a FedEx tracking sheet" title="Direct link to Step-by-step: a FedEx tracking sheet" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-install-the-add-on">1. Install the add-on<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#1-install-the-add-on" class="hash-link" aria-label="Direct link to 1. Install the add-on" title="Direct link to 1. Install the add-on" translate="no">​</a></h3>
<p>Extensions → Add-ons → Get add-ons → search <strong>Your Package Tracker</strong> → Install. You get 3 free lookups.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-build-the-columns">2. Build the columns<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#2-build-the-columns" class="hash-link" aria-label="Direct link to 2. Build the columns" title="Direct link to 2. Build the columns" translate="no">​</a></h3>
<p>The layout we see most often for FedEx-heavy ops:</p>
<table><thead><tr><th>Col</th><th>Header</th><th>Example</th></tr></thead><tbody><tr><td>A</td><td>Ship date</td><td><code>2026-04-18</code></td></tr><tr><td>B</td><td>Order ID</td><td><code>SO-8821</code></td></tr><tr><td>C</td><td>FedEx #</td><td><code>794657458294</code></td></tr><tr><td>D</td><td>Carrier</td><td><code>FedEx</code></td></tr><tr><td>E</td><td>Status</td><td><em>(formula)</em></td></tr><tr><td>F</td><td>Summary</td><td><em>(formula)</em></td></tr><tr><td>G</td><td>Last event</td><td><em>(formula)</em></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-drop-in-the-formulas">3. Drop in the formulas<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#3-drop-in-the-formulas" class="hash-link" aria-label="Direct link to 3. Drop in the formulas" title="Direct link to 3. Drop in the formulas" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">E2:  =PKG_STATUS(C2, D2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">F2:  =PKG_SUMMARY(C2, D2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">G2:  =PKG_LAST_EVENT(C2, D2)</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-scale-to-a-large-list">4. Scale to a large list<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#4-scale-to-a-large-list" class="hash-link" aria-label="Direct link to 4. Scale to a large list" title="Direct link to 4. Scale to a large list" translate="no">​</a></h3>
<p>Once you have more than ~20 rows, <strong>do not</strong> fill-down. Every formula fires a carrier lookup simultaneously and FedEx will rate-limit you. Use <strong>Bulk Track Packages</strong> instead:</p>
<ol>
<li class="">Menu bar → <strong>Your Package Tracker → Bulk Track Packages</strong></li>
<li class="">Tracking range: <code>C2:C500</code></li>
<li class="">Carrier range: <code>D2:D500</code></li>
<li class="">Output: <strong>Summary</strong></li>
<li class="">Click <strong>Start Bulk Tracking</strong></li>
</ol>
<p>The add-on paces the requests, respects FedEx's rate limits, caches duplicates, and writes results into the column right after your carrier column. Close the dialog, let it run, come back when it's done.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-each-fedex-service-looks-like-once-tracked">What each FedEx service looks like once tracked<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#what-each-fedex-service-looks-like-once-tracked" class="hash-link" aria-label="Direct link to What each FedEx service looks like once tracked" title="Direct link to What each FedEx service looks like once tracked" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedex-express">FedEx Express<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#fedex-express" class="hash-link" aria-label="Direct link to FedEx Express" title="Direct link to FedEx Express" translate="no">​</a></h3>
<p>The 12-digit Express numbers move fastest: ORIGIN SCAN → DEPARTED ORIGIN → ARRIVED AT DESTINATION HUB → OUT FOR DELIVERY → DELIVERED. For international Express, you'll also see <strong>Clearance in Progress</strong> and <strong>Released by Customs</strong>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedex-ground--home-delivery">FedEx Ground / Home Delivery<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#fedex-ground--home-delivery" class="hash-link" aria-label="Direct link to FedEx Ground / Home Delivery" title="Direct link to FedEx Ground / Home Delivery" translate="no">​</a></h3>
<p>15-digit Ground numbers have a different event vocabulary: <strong>Picked Up → At FedEx Destination Facility → On FedEx Vehicle for Delivery → Delivered</strong>. Home Delivery (residential Ground) adds evening/weekend windows.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedex-smartpost--ground-economy">FedEx SmartPost / Ground Economy<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#fedex-smartpost--ground-economy" class="hash-link" aria-label="Direct link to FedEx SmartPost / Ground Economy" title="Direct link to FedEx SmartPost / Ground Economy" translate="no">​</a></h3>
<p>The tricky one. FedEx picks up bulk, linehauls it, hands it to USPS for the last mile. The 20- or 22-digit tracking number updates in FedEx's system until USPS takes custody, then updates in USPS's.</p>
<p>The add-on queries both networks so the timeline is continuous from your sheet's perspective, but expect the <code>Last Event</code> location to jump from a FedEx hub to a USPS facility partway through.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedex-freight-ltl">FedEx Freight (LTL)<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#fedex-freight-ltl" class="hash-link" aria-label="Direct link to FedEx Freight (LTL)" title="Direct link to FedEx Freight (LTL)" translate="no">​</a></h3>
<p>Freight pros (9-digit or <code>FDX</code>-prefixed) track in FedEx Freight's system — different vocabulary again: <strong>Dispatched → Picked Up → At Destination Terminal → Out for Delivery</strong>. Signature confirmation usually appears as <code>Delivered</code> with a consignee name.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="international-priority--economy">International Priority / Economy<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#international-priority--economy" class="hash-link" aria-label="Direct link to International Priority / Economy" title="Direct link to International Priority / Economy" translate="no">​</a></h3>
<p>International FedEx uses the same 12-digit Express format but surfaces customs events: <strong>Export Clearance</strong>, <strong>Arrived at Destination Country</strong>, <strong>Customs Clearance</strong>, <strong>Released by Customs</strong>, <strong>On Vehicle for Delivery</strong>. If a shipment stalls at customs, it usually says so explicitly.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="three-fedex-quirks-worth-knowing">Three FedEx quirks worth knowing<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#three-fedex-quirks-worth-knowing" class="hash-link" aria-label="Direct link to Three FedEx quirks worth knowing" title="Direct link to Three FedEx quirks worth knowing" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-smartpost-tracking-feels-slow--its-not-broken">1. SmartPost tracking feels "slow" — it's not broken<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#1-smartpost-tracking-feels-slow--its-not-broken" class="hash-link" aria-label="Direct link to 1. SmartPost tracking feels &quot;slow&quot; — it's not broken" title="Direct link to 1. SmartPost tracking feels &quot;slow&quot; — it's not broken" translate="no">​</a></h3>
<p>SmartPost (now officially <strong>FedEx Ground Economy</strong>) is optimized for cost, not speed or tracking granularity. Scans are sparser than Ground: often you'll see an origin scan, a linehaul scan 2–3 days later, and then the USPS handoff. This is normal. Don't be surprised when a SmartPost tracking number sits at <em>In Transit</em> for 5 days.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-12-digit-express-numbers-can-collide-with-old-fedex-formats">2. 12-digit Express numbers can collide with old FedEx formats<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#2-12-digit-express-numbers-can-collide-with-old-fedex-formats" class="hash-link" aria-label="Direct link to 2. 12-digit Express numbers can collide with old FedEx formats" title="Direct link to 2. 12-digit Express numbers can collide with old FedEx formats" translate="no">​</a></h3>
<p>A very old <code>12-digit</code> number can sometimes be ambiguous between Express and reused Ground. The add-on disambiguates server-side, but if you ever see <em>Tracking number not found</em> on a number you're <em>sure</em> is FedEx, the fix is to try <code>=PKG_REFRESH(C2, "FedEx")</code> once — it forces a fresh lookup and usually resolves.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-freight-pros-need-the-full-9-digits-no-prefix">3. Freight pros need the full 9 digits, no prefix<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#3-freight-pros-need-the-full-9-digits-no-prefix" class="hash-link" aria-label="Direct link to 3. Freight pros need the full 9 digits, no prefix" title="Direct link to 3. Freight pros need the full 9 digits, no prefix" translate="no">​</a></h3>
<p>If your TMS exports <code>FDX-PRO-123456789</code>, strip the <code>FDX-PRO-</code> part before passing it to the formula. Extra prefixes will fail the lookup. A quick helper:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS(REGEXEXTRACT(C2, "\d{9}"), "FedEx")</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-worked-example-a-3pl-with-mixed-fedex-services">A worked example: a 3PL with mixed FedEx services<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#a-worked-example-a-3pl-with-mixed-fedex-services" class="hash-link" aria-label="Direct link to A worked example: a 3PL with mixed FedEx services" title="Direct link to A worked example: a 3PL with mixed FedEx services" translate="no">​</a></h2>
<p>Picture a 3PL that ships on behalf of 30 Shopify merchants. Daily volume is 1,500 packages split roughly 60% Ground, 30% SmartPost, 10% Express.</p>
<p>The workflow we've seen work:</p>
<ol>
<li class="">One master sheet imports each morning from the WMS: order ID, merchant, tracking number, service (mapped to <code>FedEx</code>).</li>
<li class="">Column E: <code>=PKG_STATUS(C2, D2)</code>.</li>
<li class="">Column F: <code>=PKG_SUMMARY(C2, D2)</code> — this is what merchants see in their portal.</li>
<li class="">6 AM cron-style Bulk Track Packages over <code>C2:C2000</code>.</li>
<li class="">Pivot table by status, sliced by merchant. Their ops team sees, per merchant per morning, how many are <code>Delivered</code> / <code>In Transit</code> / <code>Exception</code>.</li>
<li class="">Filter view on <code>Exception</code> → that's the callback queue.</li>
</ol>
<p>The key unlock: the 3PL stopped needing a separate FedEx account dashboard per merchant. One sheet replaced fifteen browser tabs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Do I need a FedEx developer account or API key?</strong>
No. The add-on handles the carrier side. You never touch the FedEx developer portal.</p>
<p><strong>Does the add-on work with FedEx Custom Critical?</strong>
Custom Critical uses the same 12-digit Express format underneath. It's tracked like any other Express shipment.</p>
<p><strong>Can I see signature / proof of delivery images?</strong>
No. Proof-of-delivery images aren't exposed through FedEx's public tracking, so they can't be pulled into a cell. You'll still need fedex.com for the image itself. The <code>PKG_SUMMARY</code> formula does include the signed-by name when available.</p>
<p><strong>What about FedEx Trade Networks / FTN?</strong>
FTN uses separate systems not covered by consumer tracking. The add-on supports parcel and LTL; FTN freight forwarding is out of scope.</p>
<p><strong>How do I know when FedEx updates a status?</strong>
Each run of Bulk Track Packages pulls fresh data (cached results are used for up to a few hours to save your quota). If you need a hard refresh right now, use <code>=PKG_REFRESH(C2, D2)</code> for that specific cell.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try. Paid plans from $19/month. <a class="" href="https://yourpackagetracker.com/pricing">See full pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>FedEx's tracking surface is fragmented by design — a legacy of the Ground/Express/Freight/SmartPost history. From inside Google Sheets, that complexity disappears: one formula, every service, every status, in the tool your team already uses.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>Shipping with more than one carrier? Pair this with our <a class="" href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets">UPS</a> and <a class="" href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets">USPS</a> guides — or browse all <a class="" href="https://yourpackagetracker.com/articles">articles</a>.</em></p>]]></content:encoded>
            <category>google-sheets</category>
            <category>fedex</category>
            <category>package-tracking</category>
            <category>tutorial</category>
        </item>
        <item>
            <title><![CDATA[How to Track Package Shipments in Google Sheets (2026 Guide)]]></title>
            <link>https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets</link>
            <guid>https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Step-by-step guide to tracking packages from UPS, FedEx, USPS, DHL and 1,700+ other carriers directly inside Google Sheets — with live formulas, bulk tracking, and zero API keys.]]></description>
            <content:encoded><![CDATA[<p>If you ship even a few packages a week, you have probably lived this scene: fifteen browser tabs open to carrier websites, a spreadsheet on one screen, and you manually copy‑pasting statuses back and forth. It is slow, error‑prone, and it does not scale.</p>
<p>There is a much simpler approach. You can track every shipment — across UPS, FedEx, USPS, DHL, and 1,700+ other carriers — directly inside a single Google Sheet using a tracking formula. This guide walks through exactly how to set it up, copy it to bulk rows, and keep the data fresh.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-track-packages-inside-google-sheets">Why track packages inside Google Sheets?<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#why-track-packages-inside-google-sheets" class="hash-link" aria-label="Direct link to Why track packages inside Google Sheets?" title="Direct link to Why track packages inside Google Sheets?" translate="no">​</a></h2>
<p>A dedicated logistics dashboard is great if you are a Fortune 500. For everyone else — Etsy sellers, Shopify stores, small e‑commerce teams, office admins, procurement — the ideal tracking surface is the one you already use: <strong>Google Sheets</strong>.</p>
<ul>
<li class=""><strong>One source of truth.</strong> Your order numbers, customer info, costs, and tracking statuses all live in the same file.</li>
<li class=""><strong>No integration work.</strong> No API keys, no webhooks, no Zapier pipelines to maintain.</li>
<li class=""><strong>Anyone on the team can use it.</strong> If they can read a spreadsheet, they can read the tracking column.</li>
<li class=""><strong>Cheap.</strong> A Google Sheets add‑on costs a fraction of a logistics SaaS seat.</li>
</ul>
<p>The catch has always been that Google Sheets has no built‑in way to query a carrier. This is exactly what a package tracking add‑on solves.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-short-answer-one-formula-per-shipment">The short answer: one formula per shipment<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#the-short-answer-one-formula-per-shipment" class="hash-link" aria-label="Direct link to The short answer: one formula per shipment" title="Direct link to The short answer: one formula per shipment" translate="no">​</a></h2>
<p>Once <a class="" href="https://yourpackagetracker.com/">Your Package Tracker</a> is installed from the Google Workspace Marketplace, every cell in your sheet gains access to six new formulas. The one you will use 90% of the time is <code>PKG_STATUS</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS("1Z999AA10123456784", "UPS")</span><br></span></code></pre></div></div>
<p>That single cell returns the current status of the package — <code>In Transit</code>, <code>Out for Delivery</code>, <code>Delivered</code>, and so on — refreshed automatically. No macros, no API token, no external tools.</p>
<p>The rest of this guide shows how to set it up from scratch, how to apply it to hundreds of shipments at once, and how to avoid the mistakes that trip people up.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-install-the-google-sheets-addon">Step 1: Install the Google Sheets add‑on<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#step-1-install-the-google-sheets-addon" class="hash-link" aria-label="Direct link to Step 1: Install the Google Sheets add‑on" title="Direct link to Step 1: Install the Google Sheets add‑on" translate="no">​</a></h2>
<ol>
<li class="">Open any Google Sheet.</li>
<li class="">Go to <strong>Extensions → Add‑ons → Get add‑ons</strong>.</li>
<li class="">Search for <strong>Your Package Tracker</strong>.</li>
<li class="">Click <strong>Install</strong> and approve the permissions prompt.</li>
</ol>
<p>The permissions are narrow on purpose: the add‑on needs to read the cell you put a formula in and write the result back. It does not read the rest of your drive.</p>
<p>You get <strong>3 free tracking lookups</strong> the moment you install. That is enough to test the full flow before you decide whether to subscribe.</p>
<blockquote>
<p><strong>Tip:</strong> if you are going to track a lot of packages, install the add‑on on the workspace account that owns the master sheet, not a personal Gmail. Permissions and license keys follow the account, not the file.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-set-up-your-tracking-columns">Step 2: Set up your tracking columns<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#step-2-set-up-your-tracking-columns" class="hash-link" aria-label="Direct link to Step 2: Set up your tracking columns" title="Direct link to Step 2: Set up your tracking columns" translate="no">​</a></h2>
<p>The cleanest layout for a tracking sheet has three columns up front:</p>
<table><thead><tr><th>Column</th><th>Header</th><th>Example</th></tr></thead><tbody><tr><td>A</td><td>Tracking Number</td><td><code>1Z999AA10123456784</code></td></tr><tr><td>B</td><td>Carrier</td><td><code>UPS</code></td></tr><tr><td>C</td><td>Status</td><td><em>(formula goes here)</em></td></tr></tbody></table>
<p>Type a real tracking number into <code>A2</code>, the carrier name into <code>B2</code>, and in <code>C2</code> enter:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS(A2, B2)</span><br></span></code></pre></div></div>
<p>Within a few seconds the cell will display something like <code>Delivered</code> or <code>In Transit</code>. That is the whole core workflow.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="which-carrier-names-work">Which carrier names work?<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#which-carrier-names-work" class="hash-link" aria-label="Direct link to Which carrier names work?" title="Direct link to Which carrier names work?" translate="no">​</a></h3>
<p>You can use the carrier name (case‑insensitive) or the numeric carrier code. All of these work for UPS, for example:</p>
<ul>
<li class=""><code>UPS</code></li>
<li class=""><code>ups</code></li>
<li class=""><code>UPS Express</code></li>
<li class="">the carrier code <code>100002</code></li>
</ul>
<p>Supported carriers include the global majors (<strong>FedEx, UPS, USPS, DHL, Amazon Logistics, TNT, Aramex</strong>), regional postal services (<strong>Royal Mail, Canada Post, Australia Post, Deutsche Post, La Poste, PostNL, NZ Post, Japan Post, Korea Post</strong>), and the big Asian networks (<strong>China Post, SF Express, Yamato, JNE, J&amp;T</strong>). The complete list is in the <a class="" href="https://yourpackagetracker.com/docs">documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-3-go-beyond-a-simple-status">Step 3: Go beyond a simple status<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#step-3-go-beyond-a-simple-status" class="hash-link" aria-label="Direct link to Step 3: Go beyond a simple status" title="Direct link to Step 3: Go beyond a simple status" translate="no">​</a></h2>
<p><code>PKG_STATUS</code> is the headline formula, but the add‑on ships with five more. Each one is designed for a different spreadsheet use case.</p>
<table><thead><tr><th>Formula</th><th>What it returns</th><th>When to use it</th></tr></thead><tbody><tr><td><code>PKG_STATUS</code></td><td>Current status (one phrase)</td><td>Dashboards, conditional formatting</td></tr><tr><td><code>PKG_SUMMARY</code></td><td>Status + last location + timestamp</td><td>Customer‑facing sheets, quick context</td></tr><tr><td><code>PKG_LAST_EVENT</code></td><td>Most recent scan with location</td><td>Debugging stuck shipments</td></tr><tr><td><code>PKG_EVENTS</code></td><td>Full event history, one row per scan</td><td>Audit logs, delay analysis</td></tr><tr><td><code>PKG_REFRESH</code></td><td>Forces a fresh pull from the carrier</td><td>When you just updated a label</td></tr><tr><td><code>PKG_QUOTA</code></td><td>Shows your remaining monthly lookups</td><td>Ops visibility</td></tr></tbody></table>
<p>A practical layout we see a lot:</p>
<ul>
<li class="">Column C: <code>=PKG_STATUS(A2, B2)</code> — for at‑a‑glance filtering.</li>
<li class="">Column D: <code>=PKG_SUMMARY(A2, B2)</code> — so an operator can read one sentence without clicking.</li>
<li class="">Column E: <code>=PKG_LAST_EVENT(A2, B2)</code> — only referenced when something looks off.</li>
</ul>
<p>Because these are native Sheets formulas, you can layer conditional formatting on top (green for <code>Delivered</code>, red for <code>Exception</code>), sort and filter on them, or pipe them into pivot tables and charts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-4-track-many-packages-at-once-the-safe-way">Step 4: Track many packages at once (the safe way)<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#step-4-track-many-packages-at-once-the-safe-way" class="hash-link" aria-label="Direct link to Step 4: Track many packages at once (the safe way)" title="Direct link to Step 4: Track many packages at once (the safe way)" translate="no">​</a></h2>
<p>Here is the mistake almost everyone makes on day one: they paste the formula once, see it work, then copy‑paste it down 400 rows all at once.</p>
<p>Don't do that.</p>
<p>Every one of those formulas fires a carrier lookup in the same second. Carriers rate‑limit, the add‑on surfaces that as an error, and you end up with <code>#ERROR!</code> cells everywhere. The fix is built in — <strong>Bulk Track Packages</strong> — and it is the right tool whenever you have more than about 20 rows.</p>
<p>To use it:</p>
<ol>
<li class="">In the Sheets menu bar, open <strong>Your Package Tracker → Bulk Track Packages</strong>.</li>
<li class="">Enter the range of your tracking numbers (for example <code>A2:A200</code>).</li>
<li class="">Enter the range of your carriers (for example <code>B2:B200</code>).</li>
<li class="">Choose what to write out: <strong>Status</strong>, <strong>Summary</strong>, <strong>Last Event</strong>, or <strong>All Events</strong>.</li>
<li class="">Click <strong>Start Bulk Tracking</strong>.</li>
</ol>
<p>The add‑on paces the lookups, respects carrier rate limits, caches duplicates, and writes the results into the column immediately after your carrier column. You can close the dialog and come back later — it keeps running.</p>
<p>For carriers that require a secondary identifier (JNE Express asks for the last 4–5 digits of the recipient's phone number, for instance), expand <strong>Advanced Options</strong> and drop that value in once. It will be applied to every row in the batch.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-5-keep-the-data-fresh">Step 5: Keep the data fresh<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#step-5-keep-the-data-fresh" class="hash-link" aria-label="Direct link to Step 5: Keep the data fresh" title="Direct link to Step 5: Keep the data fresh" translate="no">​</a></h2>
<p>By default, <code>PKG_STATUS</code> and friends cache each result so you are not burning quota every time your sheet recalculates. That is what you want 99% of the time — your Delivered packages are not going to change status.</p>
<p>When you <em>do</em> want a fresh pull — say, you just handed a label to the driver and want to see it scanned — wrap the call in <code>PKG_REFRESH</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_REFRESH(A2, B2)</span><br></span></code></pre></div></div>
<p>This bypasses the cache and pulls directly from the carrier. Use it sparingly, since it counts against your monthly quota.</p>
<p>To see how much quota you have left, drop <code>=PKG_QUOTA()</code> into any cell. It is a great thing to park in row 1 of your dashboard.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="common-problems-and-how-to-fix-them">Common problems and how to fix them<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#common-problems-and-how-to-fix-them" class="hash-link" aria-label="Direct link to Common problems and how to fix them" title="Direct link to Common problems and how to fix them" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="my-tracking-number-returns-an-error">"My tracking number returns an error"<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#my-tracking-number-returns-an-error" class="hash-link" aria-label="Direct link to &quot;My tracking number returns an error&quot;" title="Direct link to &quot;My tracking number returns an error&quot;" translate="no">​</a></h3>
<p>Nine times out of ten it is a carrier mismatch. UPS numbers starting with <code>1Z</code> will not resolve if you ask FedEx for them. Double‑check the carrier column, or try the carrier code from the <a class="" href="https://yourpackagetracker.com/docs">docs list</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="i-copied-the-formula-to-500-rows-and-most-of-them-errored">"I copied the formula to 500 rows and most of them errored"<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#i-copied-the-formula-to-500-rows-and-most-of-them-errored" class="hash-link" aria-label="Direct link to &quot;I copied the formula to 500 rows and most of them errored&quot;" title="Direct link to &quot;I copied the formula to 500 rows and most of them errored&quot;" translate="no">​</a></h3>
<p>That is the rate‑limit scenario described above. Clear those cells, then rerun the range through <strong>Bulk Track Packages</strong> — it will process them politely and write clean results.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-status-is-out-of-date">"The status is out of date"<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#the-status-is-out-of-date" class="hash-link" aria-label="Direct link to &quot;The status is out of date&quot;" title="Direct link to &quot;The status is out of date&quot;" translate="no">​</a></h3>
<p>Carriers don't always scan in real time. A package can sit for 24 hours between scans without anything being wrong. If you need the freshest view, swap the formula to <code>PKG_REFRESH(A2, B2)</code> for that cell only.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="i-hit-my-monthly-quota">"I hit my monthly quota"<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#i-hit-my-monthly-quota" class="hash-link" aria-label="Direct link to &quot;I hit my monthly quota&quot;" title="Direct link to &quot;I hit my monthly quota&quot;" translate="no">​</a></h3>
<p>Every plan has a monthly lookup budget — 200 on Starter, 1,000 on Growth, 3,000 on Business. Cached reads are free, so in practice most teams use a fraction of what they paid for. If you are consistently hitting the ceiling, you can upgrade plans from inside the add‑on at any time. See the <a class="" href="https://yourpackagetracker.com/pricing">pricing page</a> for the full breakdown.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-worked-example-an-etsy-sellers-order-sheet">A worked example: an Etsy seller's order sheet<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#a-worked-example-an-etsy-sellers-order-sheet" class="hash-link" aria-label="Direct link to A worked example: an Etsy seller's order sheet" title="Direct link to A worked example: an Etsy seller's order sheet" translate="no">​</a></h2>
<p>Suppose you run an Etsy store that ships 50–100 packages a week. Your master order sheet probably has columns for Order ID, customer name, product, ship date, carrier, and tracking number. To bolt tracking onto it:</p>
<ol>
<li class="">Insert one new column called <code>Status</code>.</li>
<li class="">In the first data row, enter <code>=PKG_STATUS(&lt;tracking cell&gt;, &lt;carrier cell&gt;)</code> — for example <code>=PKG_STATUS(F2, E2)</code>.</li>
<li class="">Run <strong>Bulk Track Packages</strong> over the full range every morning.</li>
<li class="">Add conditional formatting: green background for <code>Delivered</code>, yellow for <code>Out for Delivery</code>, red for anything containing <code>Exception</code> or <code>Return</code>.</li>
<li class="">Filter the sheet by red rows at the end of each day. That is your proactive customer‑service queue.</li>
</ol>
<p>Total setup time: about 15 minutes. Ongoing time: about zero.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Do I need to know how to code?</strong>
No. Everything in this guide is a spreadsheet formula. If you can use <code>=SUM()</code>, you can use <code>=PKG_STATUS()</code>.</p>
<p><strong>Does this work on the free Google Workspace tier?</strong>
Yes. The add‑on works on personal Gmail Sheets, Workspace Essentials, Business Starter, and every tier above.</p>
<p><strong>Is my data private?</strong>
The add‑on only transmits the tracking number and carrier name to query the carrier, plus a usage counter for quota enforcement. It does not read other cells or other files. See the <a class="" href="https://yourpackagetracker.com/privacy">Privacy Policy</a> for the full breakdown.</p>
<p><strong>How many carriers are really supported?</strong>
More than 1,700 worldwide — every major postal service and courier we have been able to integrate. If you hit a gap, email us and we will usually add it within a week.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try it, then plans from $19/month. <a class="" href="https://yourpackagetracker.com/pricing">See pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/how-to-track-package-shipments-in-google-sheets#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>Tracking packages in Google Sheets used to mean writing a fragile Apps Script against a carrier's private API and praying nothing broke. It no longer does. Install the add‑on, drop <code>=PKG_STATUS(A2, B2)</code> into a cell, and the problem is solved for 1,700+ carriers at once.</p>
<p><strong>Ready to try it?</strong> <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker from the Google Workspace Marketplace</a> — the first three lookups are on us.</p>]]></content:encoded>
            <category>google-sheets</category>
            <category>package-tracking</category>
            <category>tutorial</category>
            <category>ecommerce</category>
        </item>
        <item>
            <title><![CDATA[UPS Tracking in Google Sheets: The Complete Guide]]></title>
            <link>https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets</link>
            <guid>https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Track UPS packages directly in Google Sheets using a simple formula. Works with UPS Ground, Express, SurePost, Mail Innovations, Worldwide, and Freight — no API key required.]]></description>
            <content:encoded><![CDATA[<p>UPS is still the default carrier for an enormous amount of US e‑commerce — and anyone shipping at volume eventually hits the same wall: you have 80 UPS tracking numbers in a spreadsheet and no sane way to check their status without opening 80 browser tabs.</p>
<p>This guide shows how to pull live UPS tracking data — status, last location, delivery events — directly into any Google Sheet using a single formula. No UPS developer account, no API key, no Apps Script.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-onecell-answer">The one‑cell answer<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#the-onecell-answer" class="hash-link" aria-label="Direct link to The one‑cell answer" title="Direct link to The one‑cell answer" translate="no">​</a></h2>
<p>If you already have the <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Your Package Tracker add‑on</a> installed, type this into any empty cell:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS("1Z999AA10123456784", "UPS")</span><br></span></code></pre></div></div>
<p>You'll get back something like <code>Delivered</code>, <code>In Transit</code>, <code>Out for Delivery</code>, or <code>Exception</code> — refreshed live from UPS's tracking network. That's the whole setup.</p>
<p>The rest of this guide covers the details: UPS tracking number formats, which UPS services work, how to bulk‑track a large range, and the quirks worth knowing.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-a-ups-tracking-number-actually-looks-like">What a UPS tracking number actually looks like<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#what-a-ups-tracking-number-actually-looks-like" class="hash-link" aria-label="Direct link to What a UPS tracking number actually looks like" title="Direct link to What a UPS tracking number actually looks like" translate="no">​</a></h2>
<p>UPS uses several tracking number formats depending on the service. The add‑on auto‑detects all of them, but it helps to know what you're looking at:</p>
<table><thead><tr><th>Format</th><th>Looks like</th><th>Service</th></tr></thead><tbody><tr><td><strong>1Z</strong> (18 chars)</td><td><code>1Z999AA10123456784</code></td><td>UPS Ground, Express, 2nd Day, Worldwide</td></tr><tr><td><strong>12 digits</strong></td><td><code>123456789012</code></td><td>UPS InfoNotice reference</td></tr><tr><td><strong>9 digits</strong></td><td><code>H1234567</code></td><td>UPS Freight (legacy)</td></tr><tr><td><strong>T‑prefix</strong></td><td><code>T1234567890</code></td><td>UPS Worldwide Express</td></tr><tr><td><strong>9400 1</strong> (USPS‑handoff, 22 dig.)</td><td><code>9400111899223100012345</code></td><td>UPS Mail Innovations / SurePost</td></tr></tbody></table>
<p>That last row is the one that trips people up. <strong>UPS SurePost</strong> and <strong>UPS Mail Innovations</strong> hand the final‑mile delivery to USPS, so the tracking number often looks like a USPS tracking number. You can track them by passing <code>UPS</code> <em>or</em> <code>USPS</code> as the carrier — the add‑on resolves either.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stepbystep-set-up-a-ups-tracking-sheet">Step‑by‑step: set up a UPS tracking sheet<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#stepbystep-set-up-a-ups-tracking-sheet" class="hash-link" aria-label="Direct link to Step‑by‑step: set up a UPS tracking sheet" title="Direct link to Step‑by‑step: set up a UPS tracking sheet" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-install-the-addon">1. Install the add‑on<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#1-install-the-addon" class="hash-link" aria-label="Direct link to 1. Install the add‑on" title="Direct link to 1. Install the add‑on" translate="no">​</a></h3>
<p>Open a Google Sheet, go to <strong>Extensions → Add‑ons → Get add‑ons</strong>, search for <strong>Your Package Tracker</strong>, and install. You get 3 free lookups to test.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-lay-out-your-columns">2. Lay out your columns<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#2-lay-out-your-columns" class="hash-link" aria-label="Direct link to 2. Lay out your columns" title="Direct link to 2. Lay out your columns" translate="no">​</a></h3>
<p>Here's the layout every UPS ops team converges on eventually:</p>
<table><thead><tr><th>Col</th><th>Header</th><th>Example</th></tr></thead><tbody><tr><td>A</td><td>Order ID</td><td><code>#1042</code></td></tr><tr><td>B</td><td>UPS Tracking #</td><td><code>1Z999AA10123456784</code></td></tr><tr><td>C</td><td>Carrier</td><td><code>UPS</code></td></tr><tr><td>D</td><td>Status</td><td><em>(formula)</em></td></tr><tr><td>E</td><td>Summary</td><td><em>(formula)</em></td></tr><tr><td>F</td><td>Last Event</td><td><em>(formula, optional)</em></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-drop-in-the-formulas">3. Drop in the formulas<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#3-drop-in-the-formulas" class="hash-link" aria-label="Direct link to 3. Drop in the formulas" title="Direct link to 3. Drop in the formulas" translate="no">​</a></h3>
<p>In <code>D2</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS(B2, C2)</span><br></span></code></pre></div></div>
<p>In <code>E2</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_SUMMARY(B2, C2)</span><br></span></code></pre></div></div>
<p>(Optional) in <code>F2</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_LAST_EVENT(B2, C2)</span><br></span></code></pre></div></div>
<p>You'll see <code>In Transit</code>, <code>Denver, CO — Departed UPS Facility (2d ago)</code>, and so on. Ready to be sorted, filtered, charted, or color‑coded.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-apply-to-many-rows-the-right-way">4. Apply to many rows the right way<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#4-apply-to-many-rows-the-right-way" class="hash-link" aria-label="Direct link to 4. Apply to many rows the right way" title="Direct link to 4. Apply to many rows the right way" translate="no">​</a></h3>
<p><strong>Do not</strong> select <code>D2:F2</code> and drag the fill handle to row 500 all at once. Every single formula will fire a UPS lookup in the same second, UPS will rate‑limit, and your sheet will fill with errors.</p>
<p>Instead, use <strong>Bulk Track Packages</strong>:</p>
<ol>
<li class="">Menu bar → <strong>Your Package Tracker → Bulk Track Packages</strong>.</li>
<li class="">Tracking range: <code>B2:B500</code>.</li>
<li class="">Carrier range: <code>C2:C500</code>.</li>
<li class="">Output: <strong>Summary</strong> (most useful) or <strong>Status</strong>.</li>
<li class="">Click <strong>Start Bulk Tracking</strong>.</li>
</ol>
<p>The add‑on paces the requests, caches duplicates, skips already‑delivered rows by default, and writes the results into the column immediately after your carrier column. You can close the dialog and come back — it keeps running in the background.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ups-services-the-addon-handles">UPS services the add‑on handles<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#ups-services-the-addon-handles" class="hash-link" aria-label="Direct link to UPS services the add‑on handles" title="Direct link to UPS services the add‑on handles" translate="no">​</a></h2>
<p>Because the underlying tracking engine speaks UPS's public tracking protocol, every UPS service is supported:</p>
<ul>
<li class=""><strong>UPS Ground</strong> — the everyday 1Z‑prefix domestic service</li>
<li class=""><strong>UPS Next Day Air / 2nd Day Air / 3 Day Select</strong> — same format, different SLA</li>
<li class=""><strong>UPS SurePost</strong> — last‑mile via USPS, traceable from either side</li>
<li class=""><strong>UPS Mail Innovations</strong> — bulk‑mail hybrid, USPS last mile</li>
<li class=""><strong>UPS Worldwide Express / Expedited / Saver</strong> — international, still 1Z or T‑prefix</li>
<li class=""><strong>UPS Standard to Canada / Mexico</strong></li>
<li class=""><strong>UPS Freight (TForce)</strong> — LTL freight with pro numbers</li>
<li class=""><strong>UPS Access Point</strong> returns</li>
</ul>
<p>There's no configuration switch between them. Pass the tracking number and <code>UPS</code> as the carrier; the right backend is chosen automatically.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="understanding-the-statuses-ups-returns">Understanding the statuses UPS returns<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#understanding-the-statuses-ups-returns" class="hash-link" aria-label="Direct link to Understanding the statuses UPS returns" title="Direct link to Understanding the statuses UPS returns" translate="no">​</a></h2>
<p>UPS normalizes events into a fairly predictable vocabulary. The statuses you'll most often see:</p>
<ul>
<li class=""><strong>Label Created</strong> — shipper printed the label; UPS hasn't picked it up yet</li>
<li class=""><strong>Origin Scan</strong> — UPS has possession</li>
<li class=""><strong>Departed Facility</strong> — moved between hubs</li>
<li class=""><strong>In Transit</strong> — on the road or on a plane</li>
<li class=""><strong>Arrived at Facility</strong> — regional sorting</li>
<li class=""><strong>Out for Delivery</strong> — on the truck, delivery expected today</li>
<li class=""><strong>Delivered</strong> — done, usually with a signature or photo indicator</li>
<li class=""><strong>Exception</strong> — address issue, weather delay, customs hold, damage, etc.</li>
<li class=""><strong>Return to Sender</strong> — coming back</li>
</ul>
<p>A practical tip: set conditional formatting so <code>Exception</code> and <code>Return</code> cells turn red. That column becomes your proactive customer‑service queue.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="three-ups-quirks-worth-knowing">Three UPS quirks worth knowing<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#three-ups-quirks-worth-knowing" class="hash-link" aria-label="Direct link to Three UPS quirks worth knowing" title="Direct link to Three UPS quirks worth knowing" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-label-created-can-sit-for-hours">1. "Label Created" can sit for hours<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#1-label-created-can-sit-for-hours" class="hash-link" aria-label="Direct link to 1. &quot;Label Created&quot; can sit for hours" title="Direct link to 1. &quot;Label Created&quot; can sit for hours" translate="no">​</a></h3>
<p>UPS only updates tracking once the package is physically scanned. If a warehouse prints 200 labels at 4 PM, you'll see 200 rows stuck at <em>Label Created</em> until UPS picks up. That is not a bug in the add‑on — it's UPS's reality. The first real scan usually appears within 24 hours.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-international-1z-numbers-are-the-same-format">2. International 1Z numbers are the same format<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#2-international-1z-numbers-are-the-same-format" class="hash-link" aria-label="Direct link to 2. International 1Z numbers are the same format" title="Direct link to 2. International 1Z numbers are the same format" translate="no">​</a></h3>
<p>A <code>1Z</code> number going from Atlanta to Frankfurt looks identical to a domestic one. The add‑on figures out the routing from UPS's side, including customs events (<strong>Export Scan</strong>, <strong>Import Scan</strong>, <strong>Released by Customs</strong>).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-mail-innovations--surepost-show-different-details-over-time">3. Mail Innovations / SurePost show different details over time<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#3-mail-innovations--surepost-show-different-details-over-time" class="hash-link" aria-label="Direct link to 3. Mail Innovations / SurePost show different details over time" title="Direct link to 3. Mail Innovations / SurePost show different details over time" translate="no">​</a></h3>
<p>Early in the lifecycle, tracking lives in UPS's system. Once USPS takes custody, updates shift to USPS. Because the add‑on queries both networks transparently, you'll see the whole timeline from either side — but the <code>Last Event</code> location may suddenly jump from a UPS hub to a USPS facility. That's expected.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-worked-example-a-shopify-store-with-300-ups-shipmentsday">A worked example: a Shopify store with 300 UPS shipments/day<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#a-worked-example-a-shopify-store-with-300-ups-shipmentsday" class="hash-link" aria-label="Direct link to A worked example: a Shopify store with 300 UPS shipments/day" title="Direct link to A worked example: a Shopify store with 300 UPS shipments/day" translate="no">​</a></h2>
<p>Say you run a DTC brand, ship via UPS Ground, and export a daily "open orders" CSV from Shopify. The workflow:</p>
<ol>
<li class="">Import the CSV into a Google Sheet. You should have columns for order ID, tracking number, and carrier (UPS).</li>
<li class="">Add a <strong>Status</strong> column with <code>=PKG_STATUS(B2, C2)</code>.</li>
<li class="">Run <strong>Bulk Track Packages</strong> over the full range once every morning and once at end of day.</li>
<li class="">Pivot: count rows by status. Your dashboard now shows how many are delivered, in transit, or in exception — no separate tool.</li>
<li class="">Wire a filter view for <code>Exception</code>. Hand that view to your customer service lead as their daily callback list.</li>
</ol>
<p>Setup time: under 30 minutes. Ongoing work per day: maybe 2 minutes to trigger bulk tracking.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Do I need a UPS API account?</strong>
No. The add‑on handles the carrier integration. You never see a UPS developer portal.</p>
<p><strong>Does it work with UPS CampusShip / WorldShip numbers?</strong>
Yes. Any tracking number UPS itself can trace can be traced through the formula.</p>
<p><strong>What about signature details and proof of delivery?</strong>
<code>PKG_SUMMARY</code> includes the delivery timestamp. Full PoD images are not exposed via public tracking and therefore are not available through the formula — you'll still need ups.com for that.</p>
<p><strong>How often does the status refresh?</strong>
Results are cached per tracking number to save your quota. Cached reads are free. If you need a hard refresh (e.g. you just updated a label), use <code>=PKG_REFRESH(B2, C2)</code> for that cell — it bypasses the cache.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try it. Paid plans start at $19/month. <a class="" href="https://yourpackagetracker.com/pricing">See full pricing</a>.</p>
<p><strong>Can I mix UPS and FedEx in the same sheet?</strong>
Yes. Put the carrier name in its own column and the same formulas work across every carrier row‑by‑row. That's the whole point — one sheet, every carrier.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>Pulling UPS tracking data into Google Sheets used to mean either (a) paying for a logistics SaaS seat per user, or (b) maintaining an Apps Script that breaks every time UPS tweaks their endpoints. Neither is necessary anymore.</p>
<p><strong>Install the add‑on, type <code>=PKG_STATUS("1Z...", "UPS")</code>, and you're done.</strong> Scale it with Bulk Track Packages when the list gets long, layer conditional formatting for exceptions, and you have a live UPS ops dashboard in the tool your team already knows.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>Want the same for FedEx, USPS, or DHL? Browse the rest of our <a class="" href="https://yourpackagetracker.com/articles">articles</a> — every major carrier has its own guide.</em></p>]]></content:encoded>
            <category>google-sheets</category>
            <category>ups</category>
            <category>package-tracking</category>
            <category>tutorial</category>
        </item>
        <item>
            <title><![CDATA[USPS Tracking in Google Sheets: A Practical Guide for Sellers]]></title>
            <link>https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets</link>
            <guid>https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Track USPS packages — Priority Mail, First-Class, Media Mail, Certified, Registered, and international — directly in Google Sheets with one formula. No API, no log-in.]]></description>
            <content:encoded><![CDATA[<p>USPS volume has a flavor all its own: lots of packages, small margins, long tails of "where's my thing?" customer emails. If you sell on eBay, Etsy, Poshmark, Mercari, or run a small Shopify store, USPS is probably 60–80% of your shipments — and the tracking experience at usps.com has not meaningfully improved in a decade.</p>
<p>Google Sheets + one formula fixes it. This guide is the practical version — how to set it up, which USPS products it handles (Priority, First-Class, Media, Certified, Registered, international), and the quirks that come with USPS's own tracking inconsistencies.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-short-path">The short path<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#the-short-path" class="hash-link" aria-label="Direct link to The short path" title="Direct link to The short path" translate="no">​</a></h2>
<p>If you have <a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Your Package Tracker</a> installed, drop this into any cell:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">=PKG_STATUS("9400111899223100012345", "USPS")</span><br></span></code></pre></div></div>
<p>You'll see <code>Delivered</code>, <code>In Transit</code>, <code>Out for Delivery</code>, or <code>Alert</code> (USPS's word for exceptions). The formula works for every USPS service — Priority, First-Class, Parcel Select, Certified, Registered, international, and the hybrid products FedEx and UPS hand off to USPS.</p>
<p>The rest of this guide gets into the specifics sellers actually care about.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usps-tracking-number-formats-all-of-them">USPS tracking number formats (all of them)<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#usps-tracking-number-formats-all-of-them" class="hash-link" aria-label="Direct link to USPS tracking number formats (all of them)" title="Direct link to USPS tracking number formats (all of them)" translate="no">​</a></h2>
<p>USPS uses more tracking number formats than any other carrier. The add-on detects all of them automatically — this table is just for your own sanity when reading a number:</p>
<table><thead><tr><th>Prefix / Length</th><th>Example</th><th>Service</th></tr></thead><tbody><tr><td><strong>9400 1</strong> (22 digits)</td><td><code>9400 1118 9922 3100 0123 45</code></td><td>USPS Tracking (Priority, First-Class)</td></tr><tr><td><strong>9205 5</strong> (22 digits)</td><td><code>9205 5000 0000 0000 0000 00</code></td><td>Priority Mail</td></tr><tr><td><strong>9407 3</strong> (22 digits)</td><td><code>9407 3000 0000 0000 0000 00</code></td><td>Signature Confirmation</td></tr><tr><td><strong>9303 3</strong> (22 digits)</td><td><code>9303 3000 0000 0000 0000 00</code></td><td>Certified Mail</td></tr><tr><td><strong>9208 8</strong> (22 digits)</td><td><code>9208 8000 0000 0000 0000 00</code></td><td>Registered Mail</td></tr><tr><td><strong>EA/EC</strong> (13 chars)</td><td><code>EA123456789US</code></td><td>Priority Mail Express, International</td></tr><tr><td><strong>CP / RA / RR</strong> (13)</td><td><code>CP123456789US</code></td><td>International Parcel, Registered</td></tr><tr><td><strong>LC / LK / LZ</strong></td><td><code>LC123456789US</code></td><td>International First-Class</td></tr><tr><td><strong>420 + ZIP</strong> (26–30)</td><td><code>420 90210 9400 ...</code></td><td>Embedded destination ZIP (strip it)</td></tr></tbody></table>
<p><strong>The <code>420</code> prefix:</strong> if you're pasting numbers from some shipping platforms, you'll see <code>420 90210 9400111899223100012345</code>. The <code>420</code> plus 5-digit ZIP is a routing hint, not part of the trackable number. Strip it (or let the add-on handle it — it does).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-by-step-a-usps-tracking-sheet">Step-by-step: a USPS tracking sheet<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#step-by-step-a-usps-tracking-sheet" class="hash-link" aria-label="Direct link to Step-by-step: a USPS tracking sheet" title="Direct link to Step-by-step: a USPS tracking sheet" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-install-the-add-on">1. Install the add-on<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#1-install-the-add-on" class="hash-link" aria-label="Direct link to 1. Install the add-on" title="Direct link to 1. Install the add-on" translate="no">​</a></h3>
<p>Extensions → Add-ons → Get add-ons → <strong>Your Package Tracker</strong>. 3 free lookups to test.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-lay-out-your-sheet">2. Lay out your sheet<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#2-lay-out-your-sheet" class="hash-link" aria-label="Direct link to 2. Lay out your sheet" title="Direct link to 2. Lay out your sheet" translate="no">​</a></h3>
<p>The columns a typical Etsy or eBay seller ends up with:</p>
<table><thead><tr><th>Col</th><th>Header</th><th>Example</th></tr></thead><tbody><tr><td>A</td><td>Order</td><td><code>Etsy-3104</code></td></tr><tr><td>B</td><td>Buyer</td><td><code>@pinkbunny22</code></td></tr><tr><td>C</td><td>Shipped date</td><td><code>2026-04-15</code></td></tr><tr><td>D</td><td>Tracking #</td><td><code>9400111899223100012345</code></td></tr><tr><td>E</td><td>Carrier</td><td><code>USPS</code></td></tr><tr><td>F</td><td>Status</td><td><em>(formula)</em></td></tr><tr><td>G</td><td>Summary</td><td><em>(formula)</em></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-the-formulas">3. The formulas<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#3-the-formulas" class="hash-link" aria-label="Direct link to 3. The formulas" title="Direct link to 3. The formulas" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">F2:  =PKG_STATUS(D2, E2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">G2:  =PKG_SUMMARY(D2, E2)</span><br></span></code></pre></div></div>
<p><code>PKG_SUMMARY</code> is especially useful for USPS because it combines status + last location + timestamp. You get a sentence like <code>In Transit — Jamaica, NY (arrived 4/18, 9:42 AM)</code> instead of just a status word.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-bulk-track-the-list">4. Bulk track the list<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#4-bulk-track-the-list" class="hash-link" aria-label="Direct link to 4. Bulk track the list" title="Direct link to 4. Bulk track the list" translate="no">​</a></h3>
<p>For any sheet with more than ~20 rows, use <strong>Bulk Track Packages</strong> — don't fill-down the formula. USPS rate-limits aggressively and a 200-row drag will produce 200 errors.</p>
<ol>
<li class=""><strong>Your Package Tracker → Bulk Track Packages</strong></li>
<li class="">Tracking range: <code>D2:D300</code></li>
<li class="">Carrier range: <code>E2:E300</code></li>
<li class="">Output: <strong>Summary</strong></li>
<li class=""><strong>Start Bulk Tracking</strong></li>
</ol>
<p>The add-on paces, caches, and writes into the column right after your carrier column.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-each-usps-product-looks-like-when-tracked">What each USPS product looks like when tracked<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#what-each-usps-product-looks-like-when-tracked" class="hash-link" aria-label="Direct link to What each USPS product looks like when tracked" title="Direct link to What each USPS product looks like when tracked" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="priority-mail--priority-mail-express">Priority Mail &amp; Priority Mail Express<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#priority-mail--priority-mail-express" class="hash-link" aria-label="Direct link to Priority Mail &amp; Priority Mail Express" title="Direct link to Priority Mail &amp; Priority Mail Express" translate="no">​</a></h3>
<p>Most reliable tracking. You'll see: <strong>Acceptance → In Transit → Arrived at Regional Facility → Out for Delivery → Delivered</strong>. Express adds guaranteed delivery windows.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="first-class-package-service">First-Class Package Service<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#first-class-package-service" class="hash-link" aria-label="Direct link to First-Class Package Service" title="Direct link to First-Class Package Service" translate="no">​</a></h3>
<p>Tracks similarly to Priority. Sellers sometimes see longer gaps between scans — First-Class packages don't always get regional facility scans, so the timeline jumps straight from <code>Acceptance</code> to <code>Out for Delivery</code>. That is USPS's behavior, not a bug in the lookup.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="media-mail">Media Mail<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#media-mail" class="hash-link" aria-label="Direct link to Media Mail" title="Direct link to Media Mail" translate="no">​</a></h3>
<p>Tracks, but scans are even sparser. Media Mail is processed alongside standard mail and often has only 2–3 events across a 5–10 day journey. Set customer expectations accordingly.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="certified-mail--registered-mail">Certified Mail / Registered Mail<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#certified-mail--registered-mail" class="hash-link" aria-label="Direct link to Certified Mail / Registered Mail" title="Direct link to Certified Mail / Registered Mail" translate="no">​</a></h3>
<p><code>PKG_SUMMARY</code> surfaces the key certified-mail event — the signature acceptance. For <em>hard</em> proof-of-delivery (the actual signed receipt), you still need usps.com; only the text event is exposed in the API.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="parcel-select--parcel-select-ground">Parcel Select / Parcel Select Ground<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#parcel-select--parcel-select-ground" class="hash-link" aria-label="Direct link to Parcel Select / Parcel Select Ground" title="Direct link to Parcel Select / Parcel Select Ground" translate="no">​</a></h3>
<p>This is the service FedEx SmartPost and UPS Mail Innovations hand off to. When those carriers hand a package to USPS, the 9400/9205-series USPS tracking number becomes active. You can track the final mile with either the FedEx/UPS number or the USPS number — the add-on resolves both.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="international-eaeccplc-etc">International (EA/EC/CP/LC etc.)<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#international-eaeccplc-etc" class="hash-link" aria-label="Direct link to International (EA/EC/CP/LC etc.)" title="Direct link to International (EA/EC/CP/LC etc.)" translate="no">​</a></h3>
<p>International tracking adds customs events: <strong>Departed Origin Country → Arrived at Destination Customs → Customs Clearance Processing → Released from Customs → Out for Delivery</strong>. Lots of packages stall at step 3 — that's the call-your-buyer moment.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="five-usps-quirks-that-matter-to-sellers">Five USPS quirks that matter to sellers<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#five-usps-quirks-that-matter-to-sellers" class="hash-link" aria-label="Direct link to Five USPS quirks that matter to sellers" title="Direct link to Five USPS quirks that matter to sellers" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-delivered-can-precede-the-actual-delivery-scan-by-an-hour">1. "Delivered" can precede the actual delivery scan by an hour<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#1-delivered-can-precede-the-actual-delivery-scan-by-an-hour" class="hash-link" aria-label="Direct link to 1. &quot;Delivered&quot; can precede the actual delivery scan by an hour" title="Direct link to 1. &quot;Delivered&quot; can precede the actual delivery scan by an hour" translate="no">​</a></h3>
<p>USPS carriers sometimes scan packages as delivered while they're still on the truck, at the end of their route, to save time. If a buyer says "tracking says delivered but I don't have it," wait 24 hours before panicking.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-alert-doesnt-always-mean-somethings-wrong">2. "Alert" doesn't always mean something's wrong<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#2-alert-doesnt-always-mean-somethings-wrong" class="hash-link" aria-label="Direct link to 2. &quot;Alert&quot; doesn't always mean something's wrong" title="Direct link to 2. &quot;Alert&quot; doesn't always mean something's wrong" translate="no">​</a></h3>
<p>USPS uses <code>Alert</code> for things as minor as <em>weather delay</em> or <em>missort routing correction</em>. Look at the <code>Last Event</code> text to distinguish a real problem from noise. A reasonable rule: only escalate if <code>Alert</code> persists more than 48 hours.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-first-class-to-po-boxes-can-skip-the-delivery-scan">3. First-Class to PO Boxes can skip the delivery scan<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#3-first-class-to-po-boxes-can-skip-the-delivery-scan" class="hash-link" aria-label="Direct link to 3. First-Class to PO Boxes can skip the delivery scan" title="Direct link to 3. First-Class to PO Boxes can skip the delivery scan" translate="no">​</a></h3>
<p>Deliveries into a PO Box box-section sometimes never get a final <code>Delivered</code> scan — they just stop updating after <code>Arrived at Post Office</code>. Treat <em>Arrived at Post Office, 3+ days ago</em> on a PO Box recipient as likely delivered.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-label-created-sits-forever-for-sunday-drop-offs">4. "Label Created" sits forever for Sunday drop-offs<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#4-label-created-sits-forever-for-sunday-drop-offs" class="hash-link" aria-label="Direct link to 4. &quot;Label Created&quot; sits forever for Sunday drop-offs" title="Direct link to 4. &quot;Label Created&quot; sits forever for Sunday drop-offs" translate="no">​</a></h3>
<p>If a label is printed Sunday and handed to USPS Monday, it stays at <code>Label Created</code> until the Acceptance scan on Monday. No tracking engine can show what USPS doesn't scan. Your sheet won't show it either.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-international-tracking-often-stops-once-the-package-leaves-the-us">5. International tracking often stops once the package leaves the US<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#5-international-tracking-often-stops-once-the-package-leaves-the-us" class="hash-link" aria-label="Direct link to 5. International tracking often stops once the package leaves the US" title="Direct link to 5. International tracking often stops once the package leaves the US" translate="no">​</a></h3>
<p>Many destination-country post offices don't share their scans with USPS. You might see <code>Departed Origin — ISC New York NY</code> and then silence for 10 days. The buyer's local post office in Germany / Japan / Brazil has scans you can't see. This is not fixable from the US side.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-worked-example-etsy-seller-60-sales-a-week">A worked example: Etsy seller, 60 sales a week<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#a-worked-example-etsy-seller-60-sales-a-week" class="hash-link" aria-label="Direct link to A worked example: Etsy seller, 60 sales a week" title="Direct link to A worked example: Etsy seller, 60 sales a week" translate="no">​</a></h2>
<p>A one-person Etsy store doing ~60 orders per week, shipping mostly First-Class Package and Priority Mail.</p>
<p>Setup:</p>
<ol>
<li class="">One sheet per month: <code>Orders_2026_04</code>.</li>
<li class="">Columns: Date, Order, Buyer, Tracking, Carrier (always <code>USPS</code>), Status, Summary, Notes.</li>
<li class="">Morning routine: run Bulk Track Packages over the month-to-date range, takes 1–2 minutes.</li>
<li class="">Conditional formatting:<!-- -->
<ul>
<li class="">Row turns <strong>green</strong> when Status = <code>Delivered</code></li>
<li class=""><strong>Yellow</strong> when Status contains <code>Out for Delivery</code></li>
<li class=""><strong>Red</strong> when Status contains <code>Alert</code> or <code>Exception</code></li>
</ul>
</li>
<li class="">Filter view "Red rows only" is the daily customer-service queue.</li>
</ol>
<p>Before: 60 buyers × potential message = 60 tabs open on usps.com on a bad day. After: one sheet, one filter.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<p><strong>Do I need a USPS developer account / Web Tools API key?</strong>
No. The add-on handles the carrier integration. You never deal with USPS's developer portal.</p>
<p><strong>Does it work with USPS Click-N-Ship tracking numbers?</strong>
Yes — Click-N-Ship labels are standard Priority / First-Class numbers.</p>
<p><strong>What about PS Form 3811 green card signatures?</strong>
Not available via tracking APIs. You'll still need usps.com for the image. The event <em>"Delivered, Signed for by [Name]"</em> does appear in <code>PKG_SUMMARY</code>.</p>
<p><strong>Can I track informed-delivery items / letters?</strong>
Only packages and certified/registered letters have tracking. Standard letters don't get tracking numbers.</p>
<p><strong>How fresh is the data?</strong>
Results are cached per tracking number to save quota (cached reads are free). For a hard refresh, use <code>=PKG_REFRESH(D2, E2)</code>.</p>
<p><strong>What does it cost?</strong>
3 free lookups to try. Paid plans from $19/month. <a class="" href="https://yourpackagetracker.com/pricing">See full pricing</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The takeaway<a href="https://yourpackagetracker.com/articles/usps-tracking-in-google-sheets#the-takeaway" class="hash-link" aria-label="Direct link to The takeaway" title="Direct link to The takeaway" translate="no">​</a></h2>
<p>USPS is the carrier small sellers ship with most and track the worst — because usps.com is genuinely bad and because small sellers don't justify a logistics platform subscription. Google Sheets + one formula splits the difference: all your USPS shipments in one place, one status column, filter view for exceptions, done.</p>
<p><a href="https://workspace.google.com/marketplace/app/your_package_tracker_easy_shipment_track/133562100620" target="_blank" rel="noopener noreferrer" class="">Install Your Package Tracker free from the Google Workspace Marketplace →</a></p>
<p><em>Shipping multi-carrier? See our <a class="" href="https://yourpackagetracker.com/articles/fedex-tracking-in-google-sheets">FedEx</a>, <a class="" href="https://yourpackagetracker.com/articles/ups-tracking-in-google-sheets">UPS</a>, and <a class="" href="https://yourpackagetracker.com/articles/dhl-tracking-in-google-sheets">DHL</a> guides — or browse all <a class="" href="https://yourpackagetracker.com/articles">articles</a>.</em></p>]]></content:encoded>
            <category>google-sheets</category>
            <category>usps</category>
            <category>package-tracking</category>
            <category>tutorial</category>
        </item>
    </channel>
</rss>