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.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
tracking_number The shipment's tracking number; DHL also matches piece ids and references. | string | Yes | — | — | 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. | string | No | — | — | express |
requester_country_code Two-letter country code of whoever is asking, which tailors the wording. | string | No | — | matches ^[A-Za-z]{2}$ | DE |
origin_country_code Two-letter country code the shipment was sent from, to narrow the search. | string | No | — | matches ^[A-Za-z]{2}$ | DE |
recipient_postal_code The recipient's postal code, which unlocks the detailed parcel events. | string | No | — | — | 53113 |
language Preferred language for the status text, such as EN, DE or ZH-HANS. | string | No | — | — | 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
| Field | Type | Example |
|---|---|---|
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.