Skip to main content

DHL Tracking in Google Sheets: Express, eCommerce, and International

· 7 min read
The team behind Your Package Tracker

"DHL" is really four different carriers sharing a logo. DHL Express is the air-freight giant that competes with FedEx Priority. DHL eCommerce (now "DHL eCommerce Solutions") is the lower-cost parcel service that hands off to local posts. Deutsche Post is the German postal service DHL is part of. DHL Parcel 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.

This guide shows how to track every DHL brand from a single Google Sheet column. One formula, every format, every country.

The formula

Install Your Package Tracker, then in any cell:

=PKG_STATUS("1234567890", "DHL")

The add-on figures out which DHL service the number belongs to and routes accordingly. You'll get In Transit, With Delivery Courier, Delivered, Held by Customs, or Returned to Shipper back in the cell.

The DHL tracking number cheat sheet

This is the table you actually want when a DHL number doesn't resolve — the format tells you which service handles it.

FormatExampleService
10 digits1234567890DHL Express (Air Waybill)
11 digits12345678901DHL Express (some national variants)
JJD + 18 digitsJJD000120230000001234DHL eCommerce / Parcel Deutschland
GM + 16 digitsGM60511234567890DHL Global Mail / eCommerce (US handoff)
3S + 10 digits3SABCD1234567890DHL Parcel (Netherlands, Benelux)
LX + 9 digits + 2LX123456789DEDeutsche Post / DHL Parcel Europe
CN + 9 + 2 countryCN123456789DEDHL Registered International
JVGL / JD...JD014600006888888888DHL eCommerce Asia-Pacific

Rule: pass any of them with DHL 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.

Step-by-step: a DHL tracking sheet

1. Install the add-on

Extensions → Add-ons → Get add-ons → Your Package Tracker → Install. 3 free lookups.

2. Columns

International ops teams (which is most DHL use cases) tend toward a richer column set:

ColHeaderExample
AOrderPO-11284
BOriginShenzhen
CDestinationBerlin
DTracking #1234567890
ECarrierDHL
FStatus(formula)
GSummary(formula)
HLast event(formula, for customs)

3. Formulas

F2:  =PKG_STATUS(D2, E2)
G2: =PKG_SUMMARY(D2, E2)
H2: =PKG_LAST_EVENT(D2, E2)

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 where.

4. Bulk track

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.

  1. Your Package Tracker → Bulk Track Packages
  2. Tracking range: D2:D500
  3. Carrier range: E2:E500
  4. Output: Summary (captures location for customs events)
  5. Start Bulk Tracking

What each DHL service looks like when tracked

DHL Express

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:

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

DHL eCommerce

Lower cost, slower, fewer scans. Often hands off to the destination country's post office for the final mile. Common lifecycle:

Shipment information received → Arrived at sort facility → Processed through export facility → Arrived in destination country → Transferred to local postal carrier → Out for delivery → Delivered

Once the package hits "Transferred to local postal carrier," DHL's visibility drops. Local post scans may or may not show up.

Deutsche Post / DHL Parcel Europe

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.

DHL Global Mail (US → International)

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 Arrived in destination country and the first local-post scan.

Three DHL quirks worth knowing

1. "Held by Customs" often resolves by itself

About half the time, Held by Customs 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.

2. The waybill format is 10 digits — not 11, not 12

DHL Express waybills are exactly 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.

3. Scan events for international come in the local language

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 (Delivered, In Transit, etc.) but the Last Event text may include local-language detail. That's usually useful for ops; set expectations for customer-facing columns.

A worked example: cross-border e-commerce from China to Europe

Picture a brand manufacturing in Shenzhen, shipping to EU customers via DHL Express for premium orders and DHL eCommerce for standard.

Workflow:

  1. One sheet for active shipments. Columns as above.
  2. Column F (Status) filtered to hide Delivered.
  3. Column H (Last Event) scanned for Customs or Held.
  4. Column I manually, for any row stuck in customs more than 72 hours — the support agent adds a ticket link.
  5. End-of-week pivot: average transit time by service, split by destination country. Finance uses this to price shipping.

What this replaces: DHL's MyDHL+ dashboard (one account per shipper ID), manual CSV exports, a shared Notion page that was always stale.

Frequently asked questions

Do I need a DHL developer account? No. The add-on handles every DHL system. You don't need MyDHL+, DHL API keys, or anything else.

Is my tracking info shared with DHL? 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 Privacy Policy for the full breakdown.

Will it handle the Deutsche Post consumer tracking site's numbers? Yes — Deutsche Post parcel numbers route through the same endpoints. Letters (non-package mail) aren't trackable; that's a DHL limitation, not ours.

What happens with DHL's "proof of delivery" image? Not available via the tracking API. You'll still need to log into MyDHL+ for the image. The event Delivered, Received by [Name] does appear in PKG_SUMMARY when DHL exposes it.

How do I handle a package that shows "Delivered" but the customer hasn't received it? Check PKG_LAST_EVENT 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.

What does it cost? 3 free lookups to try. Paid plans from $19/month. See full pricing.

The takeaway

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.

Install Your Package Tracker free from the Google Workspace Marketplace →

Multi-carrier ops? See our guides for FedEx, UPS, and USPS — or browse all articles.