External integration - International parcel tracking (17TRACK, DHL)

cover-colis

Hi everyone!

The La Poste integration (Intégration externe - La Poste (suivi de colis)) tracks La Poste, Colissimo, and Chronopost packages… but our packages also go through UPS, DPD, GLS, Mondial Relay, or arrive from China after three weeks of travel. Here is its complement for everything else, including international. @ruegerth, you asked for DHL and the Austrian and Swiss postal services: this is for you ^^

What it does

  • One device per package, with a status common to all carriers: registered, in transit, being delivered, to be picked up, problem, delivered. And also the last step with the carrier’s text, the location, the date, the carrier, and the scheduled delivery date.
  • Three triggers: « In delivery », « Delivered », and « The package requires your attention » (to be picked up at a relay point, or problem), each filterable on a specific package.
  • Three scene actions: track a package (even from the object of an email), stop tracking it, and read the status of my packages.
  • A « My Packages » widget, which first shows those waiting for you; a tap opens the history and the tracking link.
  • A delivered package is automatically archived after 7 days (adjustable).
  • In French, English, German, and Spanish.

Who goes through what: DHL and Deutsche Post numbers go through the official DHL API. Everything else goes through 17TRACK, which recognizes the carrier from the number: UPS, FedEx, USPS, GLS, DPD, Royal Mail, shipments from China… and national postal services, including the Austrian and Swiss postal services. UPS, FedEx, and USPS do have their own APIs, but they require a business account: 17TRACK is much simpler. For La Poste, Colissimo, and Chronopost, keep the La Poste integration, which reads the official API.

The nice thing

Package in delivery and no one at home → « The Amazon package is arriving today »
Package to be picked up at a relay point → reminder the next morning with the address of the last step
Every morning at 8 a.m. → voice announcement « You have 2 packages on the way, one of which is delivered today »

Installation

:warning: Gladys 5.1 minimum.

It will arrive in the store at the next indexer pass. In the meantime: Integrations → Install from GitHub, with GitHub - guim31/gladys-colis: International parcel tracking (17TRACK, DHL and more) for Gladys Assistant · GitHub

  1. Create a free 17TRACK key on https://api.17track.net, a free DHL key on https://developer.dhl.com (API « Shipment Tracking - Unified »), or both. With only the DHL key, only DHL packages are tracked.
  2. Paste the key(s) in the configuration.
  3. Use the « Track a package » action with the number, then add the package device in the Discovery tab.

Honest small reservations

  • Free offers are limited, and the integration respects that: no more than 240 DHL requests per day, and only one 17TRACK registration per package. On the 17TRACK side, the free offer gives a limited number of number registrations (200 initially according to their help, it’s a bit unclear); « Read packages now » displays what remains.
  • Up to 40 packages tracked, and the device of an archived package remains in Gladys: to be deleted manually.
  • DHL does not say « being delivered » or « to be picked up »: the integration guesses from the step text, in English and German. An unusual formulation may remain in « In transit ».
  • The steps keep the carrier’s text, without translation.
  • Developed without a 17TRACK or DHL account. I verified from home that the real 17TRACK and DHL APIs respond and properly reject a false key, but no real package has been tracked yet. The Austrian and Swiss postal services go through 17TRACK and have not been verified one by one: @ruegerth, your feedback will be precious.

Like the previous ones, developed with Claude Code. Independent project, not affiliated with 17TRACK, DHL, or the carriers mentioned.

Repository: GitHub - guim31/gladys-colis: International parcel tracking (17TRACK, DHL and more) for Gladys Assistant · GitHub