CargoWise
The CargoWise node sends messages to CargoWise via its eAdaptor integration interface. CargoWise (by WiseTech Global) is a logistics execution platform widely used by freight forwarders, customs brokers, and 3PLs; eAdaptor is its standard endpoint for inbound XML (Universal and native messages). Use this node to push documents and transactions — shipments, events, documents, and other Universal/native XML — into CargoWise from a workflow, or to stage the message as a file for alternate delivery.
Overview
The CargoWise node is essential when you need to:
- Push messages into CargoWise - Deliver Universal/native XML to an eAdaptor endpoint over SOAP/HTTP
- Integrate forwarding and customs flows - Send shipment, event, or document messages produced upstream
- Stage messages as files - Write the XML to workflow storage instead of sending it, for archival or downstream transfer (e.g. FTP/AS2)
- Transmit content from any source - Send XML produced inline by a prior node or read from a file in workflow storage
Configuration
Transport
How the message is delivered:
| Option | Value | Behavior |
|---|---|---|
| HTTP (eAdaptor) (default) | http | Wrap the XML in a SOAP envelope and POST it to a CargoWise eAdaptor endpoint |
| File | file | Write the XML to workflow storage and return its path instead of sending it |
Action
The operation to perform.
- Send Message (
sendMessage, default) - Send an XML message to CargoWise via eAdaptor.
Message Source
Where the XML message comes from:
| Option | Value | Behavior |
|---|---|---|
| Text | text | Provide the XML content directly |
| File (default) | file | Read the XML from a file in workflow storage |
Source File Path (Message Source = File)
Path to the XML file in workflow storage. Supports expressions.
Message Content (Message Source = Text)
The XML message content, supplied directly. Supports expressions — typically the output of an upstream node (e.g. a Code, Transform, or Universal XML builder).
Message Type
The kind of CargoWise message being sent. Defaults to UniversalShipment.
| Option | Value |
|---|---|
| Universal Shipment (default) | UniversalShipment |
| Native | Native |
| Universal Event | UniversalEvent |
| Universal Document | UniversalDocument |
eAdaptor URL (Transport = HTTP)
The CargoWise eAdaptor endpoint URL. Supports expressions. When set, it overrides the URL from the credential — useful for routing to different CargoWise environments per run. When left empty, the URL from the credential is used.
Credential
For HTTP transport the node uses an optional CargoWise credential (cargowiseAuth). It is not required — you can supply the endpoint inline via eAdaptor URL and send unauthenticated — but it is the recommended place to store the endpoint and Basic-auth secrets:
| Field | Required | Description |
|---|---|---|
| eAdaptor URL | No | The eAdaptor endpoint. Used when eAdaptor URL is not set on the node. |
| Username | No | Username for HTTP Basic authentication. |
| Password | No | Password for HTTP Basic authentication. |
When both a username and password are present, the node adds an Authorization: Basic <…> header. The request is sent as Content-Type: application/soap+xml; charset=utf-8 with a 30-second timeout. The credential is only consulted for HTTP transport; File transport needs no credential.
Output
HTTP transport
Returns the eAdaptor response:
{
"status": 200,
"statusText": "OK",
"data": "<UniversalInterchange>…</UniversalInterchange>"
}
status/statusText- The HTTP status of the eAdaptor call.data- The response body returned by eAdaptor (typically a Universal interchange/response XML).
File transport
Returns the storage path of the written XML file, for downstream nodes to pick up:
{
"filePath": "<task>/cargowise-message.xml"
}
Example Usage & Common Use Cases
Send a Universal Shipment Message
[Build Universal XML] → [CargoWise]
CargoWise:
Transport: HTTP (eAdaptor)
Action: Send Message
Message Source: Text
Message Type: Universal Shipment
Message Content: {{ steps.buildXml.output }}
Credential: Acme → CargoWise eAdaptor
Output: { status: 200, data: "<UniversalInterchange>…" }
Send an XML File from Storage
[FTP: download message.xml] → [CargoWise]
CargoWise:
Transport: HTTP (eAdaptor)
Message Source: File
Source File Path: {{ steps.download.output }}
eAdaptor URL: https://acme.cargowise.com/eAdaptor
Output: eAdaptor response
Stage a Message as a File
[Build XML] → [CargoWise (file transport)] → [AS2: send to partner]
CargoWise:
Transport: File
Message Source: Text
Message Content: {{ steps.build.output }}
Output: { filePath: "<task>/cargowise-message.xml" }
How It Works
- Resolve the message - For Text source, the message content is used directly; for File source, the XML is read from workflow storage.
- Branch on transport - File transport writes the XML to storage as
cargowise-message.xmland returns its path; HTTP transport continues to eAdaptor delivery. - Resolve the endpoint (HTTP) - The node uses the eAdaptor URL if set, otherwise the credential's URL. If neither is available, the call fails.
- Wrap in SOAP (HTTP) - The XML payload is wrapped in a SOAP envelope for eAdaptor.
- Authenticate (HTTP) - When the credential provides a username and password, a Basic
Authorizationheader is added. - POST (HTTP) - The envelope is posted as
application/soap+xml; charset=utf-8with a 30-second timeout; the status, status text, and response body are returned.
Best Practices
- Store the endpoint and secrets in a credential - Keep the eAdaptor URL, username, and password in a CargoWise credential rather than hardcoding them; override only the URL inline when you need a different environment.
- Send well-formed XML - eAdaptor expects valid CargoWise Universal or native XML; validate or build it in an upstream node and pick the matching Message Type.
- Inspect the eAdaptor response - eAdaptor returns an interchange/response XML; branch on
statusand parsedatato confirm acceptance rather than assuming success. - Use File transport for archival or alternate delivery - When the message must go out over AS2/FTP or be retained, stage it with File transport and hand the path to the next node.
Troubleshooting
Common Issues
- "eAdaptor URL is required for HTTP transport" - No URL was set on the node and none is present on the credential. Provide one or both.
- "Message content is required when message source is text" - Text source selected but Message Content is empty.
- "Source file path is required when message source is file" - File source selected but Source File Path is empty.
- 401 / 403 from eAdaptor - Basic-auth credentials are missing or incorrect, or the endpoint requires authentication you haven't supplied.
- Timeout - eAdaptor did not respond within 30 seconds; check endpoint reachability and CargoWise-side processing.
Debugging Tips
- Verify the endpoint with the raw XML - Confirm the message posts successfully before wiring it into the workflow.
- Check the resolved file path - For File source, confirm the Source File Path points at an existing file in workflow storage.
Related
- HTTP Request - For CargoWise interactions beyond eAdaptor message posting
- FTP - Deliver a file-staged message to a remote server
- AS2 - Send a file-staged message to a trading partner over AS2