Workflow blocks
AfterShip
Look up live shipment tracking status across 1,100+ carriers — answer 'where is my order' with the current carrier status and ETA
aftership/manage — Look up live shipment tracking status across 1,100+ carriers — answer 'where is my order' with the current carrier status and ETA.
Where it appears
The AfterShip block lives in the Integrations group of the Workflow Builder. Connect the Aftership integration before adding it.
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
resource | select | Yes | tracking | Which AfterShip resource to work with. Options: tracking, courier. |
operation | select | Yes | — | Which action to perform on the selected resource. |
trackingNumber | text (supports references) | No | — | The carrier tracking number (e.g. from the Shopify order). |
courierSlug | text (supports references) | No | — | AfterShip courier slug. Leave blank to let AfterShip auto-detect from the number. |
keyword | text | No | — | Free-text search across tracking number, title, order ID, and customer fields. |
statusFilter | select | No | any | Only return trackings with this delivery status. Options: any, Pending, InfoReceived, InTransit, OutForDelivery, AttemptFail, AvailableForPickup, Delivered, Exception, Expired. |
trackingTitle | text | No | — | Optional human-readable title for the tracking. |
trackingOrderId | text (supports references) | No | — | Optionally associate the tracking with an order ID. |
returnAll | toggle | No | false | Fetch every matching record by paginating automatically. When on, Limit is ignored. |
limit | number | No | 100 | Maximum number of records to return. AfterShip caps this at 200. Ignored when Return All is on. |
Inputs and outputs
Inputs are the configurable fields above. The block produces these outputs:
Outputs
Reference an output downstream with <AfterShip.field>.
| Name | Type | Description |
|---|---|---|
success | boolean | Operation success status |
tracking | json | Single tracking (Get Tracking / Create Tracking) (object — fields: id, tracking_number, slug, tag, subtag, title, order_id, transit_time, origin_country_region, destination_country_region, estimated_delivery_date, shipment_delivery_date, checkpoints, updated_at) |
trackings | array | Matching trackings (List Trackings) |
couriers | array | Detected couriers (Detect Courier) |
error | string | Error message if failed |
Example
A minimal configuration for this block:
{
"type": "aftership/manage",
"config": {
"resource": "tracking",
"operation": "...",
"statusFilter": "any",
"returnAll": false,
"limit": 100
}
}Limits and failure modes
- Requires a connected Aftership integration. Calls fail if that integration is disconnected or its authorization has expired.
- Required fields (
resource,operation) must be set, or the block fails validation before it runs. - On failure the
erroroutput is populated; downstream blocks that reference other outputs may not receive values.