Shopify UniUni Tracking Update Workflow
Managing logistics with carriers that aren't natively integrated into Shopify can be a challenge. If you are using UniUni for your deliveries, you likely noticed that while the tracking number appears in Shopify, the Tracking URL remains empty.
This guide explains how we use Shopify Flow and the Shopify Admin API to automate the generation of UniUni tracking links, ensuring your customers always have a direct way to track their packages.
Why is this Automation Necessary?
Typically, when an order is fulfilled in ShipStation, the carrier sends a carrierCode that Shopify uses to generate a tracking link. Because UniUni is not yet recognized by Shopify or ShipStation, no tracking URL is generated automatically.
Without this workflow, customers receive a tracking number but no clickable link to see where their package is.
-
Infoplus sends the tracking number to ShipStation.
-
ShipStation pushes that data to Shopify.
-
Shopify recognizes the number but doesn't know where to "point" the customer to see their tracking status.
How the Workflow is Triggered
The automation begins once the physical shipping process starts. Here is the data chain:

Condition Logic: Identifying UniUni Shipments
While this workflow is specifically optimized to fix missing UniUni links, it is also designed to handle standard carriers (like UPS, FedEx, or USPS) without disruption. Shopify natively recognizes these established carriers and automatically generates their tracking URLs.

Once the workflow is triggered, it checks the following:
-
Action: Count Tracking Info. The workflow first counts the records in fulfillment.trackingInfo (URL, carrier, and tracking number) to confirm whether any tracking data already exists.
-
Condition: Count is Equal to 0. The workflow checks whether tracking information is present.
- Condition: Tracking Number Starts with "UU". The workflow identifies UniUni shipments by checking if the tracking number begins with the "UU" prefix.
- If True: The shipment is confirmed as UniUni, and the flow proceeds to the first API update.
- If False: This means that the tracking URL already exists for that fulfillment, and the workflow proceeds to the second API update.
Using Liquid to Dynamically Update Data
The Admin API requires specific data that changes for every order. We use Liquid templating to pull this information in real-time:
-
Fulfillment ID: Extracted directly from the order data at runtime.
-
Tracking Number: Captured from the fulfillment trigger.
-
URL Construction: The workflow builds the UniUni tracking URL by appending the tracking number to the UniUni tracking base link.
Once all required data points are validated, the workflow applies the following updates.
- Final Action for UniUni: Send Admin API Request. Since Shopify Flow does not have a "native" button to update tracking info, we use the Send Admin API request action. Specifically, we target the
fulfillmentTrackingInfoUpdateendpoint.
-
Dynamic Linking: Using Liquid templating, the workflow inserts the fulfillment ID and constructs a clickable UniUni tracking URL.
-
Data Update: This action explicitly sets the carrier to UniUni and attaches the valid tracking link so it is visible to the customer on their order status page.
Payload sent to Shopify Admin API:{
"fulfillmentId": "",
"trackingInfoInput": {
"company": "UniUni",
"number": "",
"url": "https://www.uniuni.com/tracking#tracking-detail?no="
}
}
-
- Final Action for Other Carriers: Send Admin API Request.
- Tracking Validation: The workflow still proceeds to a Send Admin API Request, but it does so using the existing
trackingInfoprovided by Shopify. Because Shopify already "knows" these carriers, the API request simply confirms the existing data rather than generating a new link from scratch.
Payload sent to Shopify Admin API:
{
"fulfillmentId": "",
"trackingInfoInput": {
"company": "",
"number": "",
"url": ""
}
}
- Tracking Validation: The workflow still proceeds to a Send Admin API Request, but it does so using the existing
The Result
Once the workflow is active, the manual gap is closed.
-
Carrier Set: The fulfillment carrier is explicitly set to "UniUni."
-
Tracking Preserved: The original "UU" tracking number remains.
-
Link Generated: A valid, clickable UniUni tracking URL is assigned.
Once the workflow successfully identifies a UniUni shipment and updates the tracking URL via the API, it automatically triggers the standard Shipping Update email in your Shopify store—just as it does for all other recognized carriers.