Tracking & visibility

Search shipments and companies

Conterminal has two search surfaces: the box in the header, which is tuned for finding one container fast, and the full search page, which reaches back into older and completed history. They share the same query language and the same authorization, but they do not cover the same records.

7 minute read · Updated July 27, 2026

Both surfaces only ever return records your workspace is already authorized to see. Search does not widen your access. If a container is not yours, no query will surface it, and no error will tell you it exists.

The header lookup vs. the full search page

The header box is the one you will use ninety percent of the time. In the standard header its placeholder reads Container, M/B/L, company, terminal…; in the compact ribbon and console layouts it reads Search everything. In the console layout only, ⌘K (or Ctrl K on Windows) puts your cursor in it, and the shortcut is printed in the box itself so you can tell which variant you are looking at.

Typing opens a dropdown with three tabs, each showing its own result count, and up to three result groups: Container & M/B/L for identifier matches, Shipment matches for everything found by text and filters, and a compact rail of entity matches between them. At the bottom are a Current + recent coverage note and a Search all history link.

The two lanes behave differently on purpose. The identifier lane needs four characters before it runs at all. A complete, valid eleven-character container number is treated as an exact lookup and fires immediately; so does anything you paste. A partial identifier you are still typing waits about a third of a second after your last keystroke. The identifier lane returns at most seven rows.

Use the header when
You have an identifier or a short phrase and you want the shipment page. Rows carry a Watchlist button that appears on hover or keyboard focus, and a document still in review opens Document Review rather than the shipment page — its row reads “Needs review” with “Document received — confirm details.”
Use the full page when
The container is old, returned, or otherwise not in the quick lane; you want more than a handful of results; or you want a query you can bookmark and send to a colleague. The full page has no Watchlist button — save from the header dropdown or the shipment page instead.

Press Enter in the header box to jump to the full page carrying your query and the tab you are on. Escape closes the dropdown and resets the tab to All. The full page is titled Search all history under a Federated search label, with the placeholder Container, MBL, contents, customer, terminal, status… and its own Search button.

The full page needs three characters, not four. Below that it shows only: “Search at least three characters. Current results stay fast in the header; this page includes older and inactive authorized history.” Both boxes stop accepting input at 128 characters.

The search page is gated on workspace type and permissions. You need a tenant workspace with operations, tracking, or managed-tracking access; anyone else is redirected straight to the unauthorized page with no explanation on the way. If that happens to you, read why a page shows Access Denied rather than retrying the search.

Scopes: All, Shipments, Entities

Both surfaces use the same three scopes. In the header they are tabs; on the full page they are links that change the scope parameter in the URL, so a scope is part of what you copy when you share a search.

All
Shipments and related entities together. This is the only scope where the entity rail appears in the header dropdown, and the only scope on the full page where entities are fetched after the shipments load.
Shipments
Shipment rows only. This is the scope that pages: it is the only one with a Load more shipments button, twenty rows at a time.
Entities
Companies, terminals, steamship lines, and vessels only. No shipment rows are rendered at all, and there is no Load more.

What “entities” means here

An entity result is a company, a terminal, a steamship line, or a vessel — not a shipment. Each card shows the display name, the code and match reason on a second line, and, where it applies, In N matching shipments plus an N total count on the right. Results are split into Entity matches for direct hits and Broader matches for looser ones. Every entity card links to a signed-in Conterminal page; see the company directories for what those pages contain.

On the All tab, entities are resolved from the shipments your query already matched — the first twenty of them — rather than from the text alone. That is why the entity list can change when your shipment results change, and why an entity you know exists may not appear next to a query that matched nothing.

What is searchable

Search is not limited to identifiers. Every term you type has to match somewhere on the same shipment — terms are combined with AND, never OR — and the fields below are what it can match.

Identifiers
Container number, M/B/L, tracking number, booking number, PO reference, broker reference, house bill, pickup / release number, and voyage.
Parties
Customer, importer, broker, owner, forwarder, trucker, consignee, warehouse, pickup driver, and return driver.
Places and equipment
Pickup terminal and return terminal — including the terminal's code, city, and state — delivery location, steamship line name, code, and SCAC, vessel, and chassis number.
Cargo and status text
Cargo contents and commodity description, plus the status text LongShorty last read from the terminal, rail, or steamship-line site.

Each result row carries a match-evidence line naming the field that matched and highlighting the matched fragment. Fields already printed on the card — container number, M/B/L, status, terminal, organization — are deliberately not repeated as evidence, and a match that cannot be attributed to a named field is labeled Other shipment fields.

Status words, flags, and dates

Some words are read as filters instead of text, and you can mix them with a name or an identifier in one query.

  1. Status phrases. pending, on water, at terminal or at pier, available, scheduled, gate out, delivered or awaiting return, gate in or returned, on rail, and rail ramp.
  2. Operational flags. hold or holds restricts to shipments with an active customs, terminal, freight, or provider hold. hot load (or hotload) restricts to hot loads that are not yet delivered or returned.
  3. Date fields. date or document date, eta, lfd, and lmtfd. Used alone, the field name means “this date exists.” Follow it with a date to match that day, with before 2026-07-01, or with between 2026-07-01 and 2026-07-15. The inline form eta:2026-07-01 works too.
  4. Relative dates. yesterday, today, and tomorrow can follow a field name. On their own they are read as a document date.

A query is capped at eight terms and filters combined. Cross it and the shipment lane stops and reports “Search supports up to 8 terms and filters.” A malformed date stops it the same way, with a message naming the field — “Use a valid date after eta.” or “Use lfd between YYYY-MM-DD and YYYY-MM-DD.” Neither is a partial result: nothing is returned until you fix the query.

How far back search reaches, and why it differs by persona

This is the single most common source of confusion, so it is worth being precise. The header is a current and recent surface. Hover the Current + recent note in the dropdown footer and it says exactly what it covers: “Active shipment records stay searchable after return tracking completes. Broker and forwarder completions stay in quick search for 12 months.”

Still active
Always in the header lane, regardless of age. A shipment that has been sitting for a year is still found instantly.
Completed, returned
For managed tracking, a completed item stays in the quick lane for 12 months after its return. After that it is history — the full page still finds it.
Paused for an identity conflict
An item with a pending identity-conflict review stays in the quick lane even though it is not active, so a conflict does not make a container disappear from search while you are trying to resolve it.

Where a workspace is served by the fast server history index, the header lane also reaches back through recently completed work by document date, and that window is where the persona difference shows up: 365 days for broker and forwarder workspaces and 120 days for everyone else. Carriers, importers, and warehouses get the shorter window because their working set turns over faster; a forwarder routinely needs to answer a question about a file closed nine months ago. Nothing is hidden by this — it only decides what the header can answer without a trip to the full page.

Your workspace type also decides which rows you can see at all. Carrier, importer, broker/forwarder, and warehouse workspaces each resolve a different authorized set, which is why the same query run by two people at two companies on the same container returns different rows. See partner access and shipment visibility for how that set is built.

The two coverage lines under the search box

The full page prints its own coverage, and reading it saves you guessing. The first line describes the server index — for example 12,481 indexed · as of Jul 27, 2026, EDT, prefixed with Fast server history · when the fast index is serving your workspace.

The second line, when it appears, describes a catalog cached in your own browser — for example 12,481 cached locally · Jul 28, 2025–Jul 27, 2026 · as of Jul 27, 2026. That catalog covers active shipments plus anything updated in the last 365 days, loads in the background after the page paints, and only runs when the fast server index is not already serving you. It can also report Local history catalog queued after paint, Local history catalog updating in background, Local history catalog unavailable · server search active, or · using cached copy.

The local catalog is an accelerator, not an authority. Every row it proposes is re-checked against the server before it can be shown to you, and anything the server does not confirm is dropped. A stale or missing local catalog can make results slower or thinner; it can never show you a shipment you are not entitled to.

The index-preparing state

If the line under the search box reads History index preparing · current results shown, the workspace history index has not finished its first build. That happens in a brand-new workspace and after a large import, and it means exactly what it says: current shipments are searchable now, older and completed ones are not there yet.

In that state an empty shipment lane reads “History is still being prepared. No current shipments matched.” rather than the usual “No matching shipments in authorized history.” The wording is the useful part — the first sentence means come back later, the second means this query genuinely found nothing.

History index status unavailable is a different message and a different problem. It means Conterminal could not read the index state at all, not that the index is empty. Results shown alongside it may be incomplete without saying so. If it persists past a few minutes, report it rather than concluding a shipment is missing.

While the index is preparing, the header lookup is unaffected — it reads live records, not the index. Search by full container number and you will still land on the shipment. From there, everything on the shipment page works normally.

Troubleshooting

Your results differ from a colleague's for the same query

First check that you are both in the same workspace and on the same scope tab — a scope is carried in the URL, so a link you were sent may not be on the tab you assume. After that, the difference is almost always authorization: carrier, importer, broker/forwarder, and warehouse workspaces resolve different authorized rows, and two people at two companies will legitimately see different results for the same container. Ordering can also differ briefly while each browser's local catalog and the per-row enrichment finish loading; the set converges, the first paint does not.

One lane errors while the other keeps working

This is by design — the shipment lane and the entity lane fail independently rather than blanking the page. “Shipment history is temporarily unavailable. Current shipments will load separately.” comes with a Retry shipments button. “Related entities are temporarily unavailable.” comes with Retry entities. “Current shipment updates are temporarily unavailable. Historical results remain available.” has no button because it clears on the next search; historical rows on screen are still valid. Retry the failed lane once, and treat the results as incomplete until it succeeds.

“Load more shipments” stopped working

The button only exists on scopes that page, and only while there is another page — it disappears at the end of the results, which is not an error. If it fails with “Could not load more results.”, the button beside it reads Try again and retries the same page. If it fails with “Search results changed. Restart from the first page.”, the button reads Start again instead: the index was rebuilt underneath your paging position, and continuing from a stale position would silently skip or repeat rows. Start again reloads from the first page.

“No matching shipments in authorized history.” but you know the container exists

Search the full container number on its own first — that runs the exact identifier path and bypasses text matching entirely. If that finds nothing, the shipment is either outside your workspace's authorized set or not in Conterminal at all. If it does find it, your earlier query had a term that did not match this shipment; remember every term must match the same shipment, so one wrong customer name is enough to return nothing.

“No container or M/B/L identity found.”

The identifier lane ran and came back empty. This is different from “Could not search container or M/B/L identities right now.”, which means the lookup itself failed and should be retried. An empty identifier lane does not mean the query found nothing overall — check the Shipment matches group underneath before concluding anything.

“Multiple delivery orders found for this container. Choose one.”

Your exact container number matches more than one delivery order. Conterminal deliberately makes no selection for you and pre-highlights nothing, so pressing Enter will not pick one at random. Read the customer and status on each row and choose.

A long pasted reference finds nothing

The identifier lane stops considering anything longer than 32 characters after punctuation is stripped, and it does so silently — no message is shown. If you pasted a long booking or reference string and got no identifier results, trim it to the meaningful segment and search that.

“A search lane is temporarily unavailable.”

This is the count line above the results telling you the page loaded zero results because a lane failed, not because nothing matched. Look for the amber banner naming the failed lane and use its retry button. Do not treat a zero here as a real zero.