Track Shipment

dhl.track_shipment
ActionBusiness appsconnection required

Calls the DHL API with the connection's credentials.

Look up a shipment by its tracking number across every DHL business unit and return its current status, estimated delivery and full event history.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
DHL
Secret shape
the DHL API key (consumer key), or {"api_key": "…"}
Config it needs
base_url
Resolved by
config.connection_id, else node.connection_id

Configuration

6 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
tracking_number
The shipment's tracking number; DHL also matches piece ids and references.
stringYes——00340434292135100186
service
Restrict the search to one DHL business unit, such as express, freight, ecommerce, parcel-de, parcel-nl, parcel-uk or sameday. Leave blank to let DHL detect it from the tracking number.
stringNo——express
requester_country_code
Two-letter country code of whoever is asking, which tailors the wording.
stringNo—matches ^[A-Za-z]{2}$DE
origin_country_code
Two-letter country code the shipment was sent from, to narrow the search.
stringNo—matches ^[A-Za-z]{2}$DE
recipient_postal_code
The recipient's postal code, which unlocks the detailed parcel events.
stringNo——53113
language
Preferred language for the status text, such as EN, DE or ZH-HANS.
stringNo——EN

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "language": "EN",
  "origin_country_code": "DE",
  "recipient_postal_code": "53113",
  "requester_country_code": "DE",
  "service": "express",
  "tracking_number": "00340434292135100186"
}

Output

One shape.

result

FieldTypeExample
shipments
One entry per shipment DHL matched.
array—
count
How many shipments the response carried.
number—
shipments[].id
The tracking id DHL matched.
string—
shipments[].service
The DHL business unit carrying it.
string—
shipments[].status.statusCode
Coarse status: pre-transit, transit, delivered, failure or unknown.
string—
shipments[].status.status
The status DHL's own tracking page shows.
string—
shipments[].status.description
A sentence describing that status.
string—
shipments[].status.timestamp
ISO-8601 time the status was recorded.
string—
shipments[].estimatedTimeOfDelivery
ISO-8601 estimated delivery time, when DHL has one.
string—
shipments[].estimatedTimeOfDeliveryRemark
DHL's caveat about that estimate.
string—
shipments[].origin.address.addressLocality
Where the shipment started.
string—
shipments[].destination.address.addressLocality
Where the shipment is going.
string—
shipments[].events
The full scan history, newest first.
array—
shipments[].details
Product, weight, dimensions, references and proof of delivery.
object—
possibleAdditionalShipmentsUrl
Links to further shipments matching the same id.
array—
{
  "count": 0,
  "possibleAdditionalShipmentsUrl": [],
  "shipments": [
    {
      "destination": {
        "address": {
          "addressLocality": ""
        }
      },
      "details": {},
      "estimatedTimeOfDelivery": "",
      "estimatedTimeOfDeliveryRemark": "",
      "events": [],
      "id": "",
      "origin": {
        "address": {
          "addressLocality": ""
        }
      },
      "service": "",
      "status": {
        "description": "",
        "status": "",
        "statusCode": "",
        "timestamp": ""
      }
    }
  ]
}

See Track Shipment run in a workflow.

In a technical demo we add the DHL connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.