Parcels
Paste a tracking number and Cobblr works out the carrier, follows the parcel, puts it on your dashboard, and tells you the two things that change your day.
- Fill in Tracking # on an order, or + Tracking # on a receipt in the scan inbox. The carrier is recognised from the number itself.
- Watch the On its way box on your dashboard.
- When it lands, File it or Confirm from that box.
Naming the carrier and linking to their page needs no setup. Following the parcel needs an account somewhere, and there are three ways to get one.
Paste a number, get a carrier
Fill in an order's Tracking # and a Shipment panel appears on the order, naming the carrier and linking to that carrier's own tracking page.
- You do not pick the carrier. Every carrier's numbers have their own shape and a check digit, so the number identifies itself.
- Recognised: FedEx, UPS, USPS, DHL, Amazon and OnTrac, plus the S10 format used by national postal services worldwide.
- "No carrier recognised this number": check it against your confirmation email first. The number stays on the order either way.
Typos, unrecognised carriers, and S10 numbers
Because the check digit is verified rather than the shape alone, a mistyped number is reported as unrecognised instead of being sent to the wrong carrier. Some carriers, and most international postal services, are not recognised yet. A number Cobblr cannot name links to a universal lookup rather than leaving you nowhere to click.
An S10 international number is identified but gets no carrier link, because that format is shared by dozens of national postal services and the number alone does not say which country to send you to.
Adding one to a receipt you have not filed
A receipt in your scan inbox is where you first see a purchase, so it is where you can record the number: in the receipt's header row, next to PO#, use + Tracking #.
- With a tracking number, the order is filed as in transit with the arrival date left empty, because nobody issues a tracking number for something you already have.
- Without one, the order is recorded as arrived, because most receipts are for something already in your hands.
- You do not have to file the receipt first. Once it carries a number the parcel is followed from the inbox, and the receipt's row shows where it has got to. Filing hands the parcel over to the order, which carries the same number and keeps being followed there.
Why the distinction matters
Cobblr only watches orders that have not arrived, so a receipt filed as arrived would carry the number and never check it.
Seeing where they are
Once a receipt or an order carries a tracking number, the parcel appears in an On its way box at the top of your dashboard.
- One row each: what it is, where it has got to, and the place to act. A single-item parcel is named by what is in it, not by the order it came from.
- Delivered parcels sort to the top and are the only ones with something to do next. A receipt still in the scan inbox says File it. One already filed into an order says Confirm, which is you saying you have taken it in and put it away. Either one opens the exact receipt or order, not the page that record lives on.
- The box is only there when something is actually in flight.
- On the scan inbox, the receipt's + Tracking # button becomes the status once there is one, green whenever a parcel is being followed. Tap it for the carrier's own wording, the last place it was scanned, the number itself, and a way to correct it.
- The states: Label created, In transit, Out for delivery, Delivered, Needs attention (stuck waiting on you, such as held for collection), No information yet.
When Cobblr asks you about it
You are told once per state, not once an hour, so a parcel sitting delivered over a weekend does not keep nagging.
- Still in transit on the day it was due? No question. The estimate was wrong, and asking about a parcel that is demonstrably still moving is noise.
- Out for delivery? One question that evening.
- Delivered? One question, quoting what the carrier said, so you know where to look before you answer.
- No tracking number? One question on the day it was due.
- A carrier never marks an order arrived. Delivered means it reached your doorstep, not that you have it and put it where you meant to, and only you know the second one. Confirming stays yours.
- It asks the parcel's owner, not the whole workspace: whoever added the tracking number, or failing that whoever captured the receipt. If that person has left the workspace, everyone is told instead, so a waiting parcel is never dropped.
- On Discord it is one card with the answer as a button. A delivered parcel offers It is in hand, a due-today question offers Yes, it turned up, and pressing it confirms the arrival in the card and ends the watch without opening the app. One parcel says one thing, once.
How often it checks, and which arrival date you see
Cobblr checks a travelling parcel about once a day, and three times on the day it is due, timed to when parcels actually move: after the overnight run, mid morning when out-for-delivery scans land, and in the evening when deliveries do. Once out for delivery it checks that evening. Once delivered it stops checking entirely.
A receipt that named a delivery date tells the tracker about it, so a parcel due today is checked through the day rather than once at dawn. A parcel out for delivery is re-checked overnight as well, so a late delivered scan is seen by morning instead of a day later.
Orders collect estimates from different places, and Cobblr keeps the best one: the seller's estimate from a receipt, then the carrier's own date once it has the parcel, then out for delivery, then delivered. A weaker source never overwrites a stronger one, and a tracking number that returns nothing never erases an estimate you already had. A number typed in before the seller has handed the parcel over reports nothing for a day or two, and that silence leaves your receipt's date exactly where it was.
Orders with no tracking number
Give an order an Expected arrival date and Cobblr takes it from there.
- On the day it was due, if nothing has marked the order arrived, you get one notification naming the vendor and asking whether it turned up.
- Opening it takes you to the order, where Mark arrived is a single button.
- Marking it arrived stamps the arrival date and releases the stock receipt on every line linked to an inventory part, so what you bought lands in your counts without you typing it in twice.
- It asks once. No answer means one follow-up three days later, then it goes quiet.
- Seller pushed the date back? Change Expected arrival and the question resets.
- Marking the order arrived, or cancelling it, stops the asking immediately. Orders with no expected arrival date are never asked about.
Following the parcel, not just linking to it
Three shapes an account can take. Tracking APIs are free or near-free to call, so this costs little or nothing per parcel. A carrier's own API wins wherever you have one configured: it is first-hand, where a tracking service is a third party reading the same data.
A carrier's own API
-
FedEx: create a project at
developer.fedex.comand choose Basic Integrated Visibility, their tracking product. Register as yourself, tracking your own shipments. -
Put the project's keys in your instance's environment:
COBBLR_FEDEX_API_KEY=...COBBLR_FEDEX_SECRET_KEY=...COBBLR_FEDEX_ENV=production -
Use
COBBLR_FEDEX_ENV=sandboxwhile trying it out and switch toproductiononce the project is live. Test keys answer only for FedEx's own sample numbers and return the same fixture for every number.
Once connected, the Shipment panel shows the current state, the carrier's own wording for it, where it last was, the expected delivery day, and the full scan history behind a toggle.
A general tracking service
Set one key and every carrier Cobblr recognises becomes followable, not just the ones with a built-in driver:
COBBLR_TRACKING_API=easypost # the wire format
COBBLR_TRACKING_API_URL=https://api.easypost.com/v2 # where it lives
COBBLR_TRACKING_API_KEY=... # the key
- EasyPost's format is the default because it prices per parcel with no monthly minimum, so a handful of packages costs cents.
- The URL is a separate setting on purpose. Anything answering the same shape works, including something you run yourself. Cobblr cannot tell the difference and takes no position on what is behind that address.
Why a general service exists
Carrier APIs each need their own signup and several need a payment method, which puts live tracking out of reach for most carriers. So Cobblr also speaks a general tracking API, separating which wire format from which endpoint, the same way its AI providers work.
Your own account, on someone else's instance
The settings above belong to whoever runs the server, which is right when that is you. On an instance you do not run, you would be asking an operator to put your key on their box. So a tracking service can also be a personal connection:
- Under Profile then Connections, add a Parcel tracking connection with your own key.
- Choose which workspaces it applies to. Your parcels are then followed with your credentials and billed to your account, in every workspace you routed it to.
- Your own connection wins wherever you have one. Where you do not, whatever the instance is configured with still applies, so a self-hosted box keeps working exactly as before with nothing to change.
- Just me means your own parcels use it. Share offers it to the whole workspace, and its owner has to accept before anyone else's parcels use it.
- Runs on your own network? Set transit to
bridgeand it rides your edge bridge, whichever workspace the parcel is in. One bridge serves all of them.
The last two follow from a connection belonging to a person rather than a workspace.
If your tracking service runs at home
A hosted Cobblr cannot reach an address on your home network, and no setting changes that: private addresses are blocked and your router would stop it anyway. So tell Cobblr to go the long way round, through the edge bridge you already run:
COBBLR_TRACKING_API_TRANSIT=bridge
- Your bridge makes the call on its own network and passes the answer back.
bridge:<id>picks a specific bridge if you run more than one.- Leave it unset for a public tracking service, which is reached directly.
Updates pushed the moment a parcel moves
A tracking bridge can push "this parcel moved" through an inbound webhook, so an update lands minutes after the carrier scans rather than at the next scheduled check.
- On the Integrations page, add a Parcel tracking push inbound connection. It mints a per-workspace webhook URL, with an optional HMAC secret.
- Point the bridge at that URL.
- The push is a doorbell, not a data channel. It names a tracking number and nothing else is trusted from it. Cobblr re-reads the status itself, so a forged push can cost at most one extra read.