The manager sees where the parcel is in the same place as the order, the product and the conversation with the buyer. Connecting means an app on the UPS portal — no contract, no approval.
The limits are stated as plainly as the capability: an integration that promises more than it does costs more than one that is missing.
Every hour the cron asks UPS about each waybill on your orders that is still in flight, and moves the shipment to pending, in transit or delivered.
When UPS reschedules, the CRM stores the new date — the stale promise disappears instead of lingering in the card.
Printing labels is UPS's Shipping API: a different product that needs a UPS account number and a rate contract. We do not promise it.
UPS marks both a customs hold and an address correction as an exception — things that usually still arrive. The CRM leaves the status alone rather than declaring the parcel failed and giving up on it.
UPS has six status types. Four of them are a state of the parcel, two are not, and we treat them differently.
| UPS | CRM |
|---|---|
| Manifest — label created, UPS has not collected it | Pending |
| On the Way — in transit | In transit |
| Delivery — delivered | Delivered |
| Manifest Void — the shipper voided the label | Cancelled |
| Updated Delivery Date — only the estimate moved | status unchanged, date refreshed |
| Package Exception — customs, address, and the like | status unchanged |
developer.ups.com → Apps → create an app and add the Tracking product. Tracking needs no contract.
UPS's test environment only answers about its own invented numbers, so your real waybills do not exist there.
Settings → Integrations → Platform adapters → UPS. The pair is stored encrypted and never reaches the browser.
The CRM exchanges the pair for a token and asks about a deliberately impossible waybill: “no such shipment” proves access works without spending a real one.
Connect UPS and see international shipments where the domestic ones already are.
Start free