New: give your agents governed data they can query and write to, no warehouse to run.Get started
Nightshift

Nightshift for Logistics

Ask your network anything. Every partner scoped to its lanes.

Your TMS, WMS, and carrier APIs hold the data a planner or routing agent needs, and plenty it should not see. Connect them once and Nightshift gives your ops teams and their agents warehouse-grade reads across the network, with no warehouse to stand up. Agents draft re-routes and bookings back into Nightshift for a human to approve, every carrier and 3PL scoped to its own lanes, and nothing reaches your TMS or a carrier until a person signs off.

Network catalog4 sources
TMtms.shipments2.4M rows3.1kGoverned
WMwms.inventory840K rows1.5kGoverned
TEtelematics.streamlive5.2kLive
CAcarrier.apiread only280Read only
Governed catalog · scoped per carrier and lane

Cross-source root cause

Why delivery slipped, across every system.

An agent connects Nightshift over MCP and attributes a $1.9M Q3 freight overage and the on-time-delivery miss across Manhattan, Oracle OTM, Samsara telematics, and the warehouse, down to the lane and carrier. No single system holds this answer: the catalog composes all four into one governed query.

Q3 freight overagetotal$1.9M
LaneManhattanCarrierOracle OTMRoot causeSamsaraQ3 overageWarehouse
JFK → ORDACME Freightdetention at DC$0.62M
LAX → DFWNorthwindweather reroute$0.48M
ATL → MIAVantage 3PLdwell + redelivery$0.41M
SEA → DENACME Freightaccessorials$0.22M
EWR → BOSNorthwindmissed appointment$0.17M
Composed across Manhattan, Oracle OTM, Samsara, and the warehouse in one governed query · no single system holds this join

The boundary

Reads cross. Writes land in Nightshift, never in your TMS.

An agent reads the network through the catalog, and writes its work, a drafted re-route, a booking, a flagged exception, into Nightshift’s own tables, where a planner approves it before anything crosses back. Nothing an agent writes reaches your TMS or a carrier until a person signs off.

routing-agentreadsCatalogTMS / telematicsallowed
routing-agentwritesNightshift tablesheld for approval
routing-agentwritesTMS / carrierblocked

How a request moves

From request to ETA.

1

Agent asks

routing-agent requests its lane data

2

View scopes

the carrier's governed view masks PII and filters lanes

3

Grant checks

read on the view, nothing else

4

ETA back

the agent gets only its lanes, live

Partner isolation

Every partner sees only its lanes.

ACME Freight

Carrier

Its own shipments and rates, nothing from other carriers.

Vantage 3PL

3PL

The lanes it operates, with consignee contacts masked.

Northwind

Carrier

Live telematics for its trucks, no commercial fields.

What agents do

Agents that move freight, not data.

Quote a lane

Price and plan against live shipment and rate data, scoped to the carrier the agent works for.

Track to the door

Answer where-is-my-load from telematics streams, with consignee contacts masked.

Rebalance the network

Read inventory and capacity across the WMS and draft rebalancing moves into Nightshift for a planner to approve, never seeing another carrier’s margin.

Isolation, in one view

Who sees what, by partner.

One catalog, but every carrier and 3PL is granted its own governed view. The view decides each cell, so a partner reads its lanes, never another’s rates or margin.

PartnerOwn shipmentsRatesConsigneeLane marginOther carriers
ACME FreightCarriermasked
Vantage 3PL3PLmaskedmasked
NorthwindCarriermasked

Governance in plain SQL

Scope to a partner, mask a contact, drop a margin.

A governed view scopes an agent to one carrier's lanes, masks the consignee contact, and leaves commercial fields like lane margin out. Grant the agent read on the view, and it is the only data the agent can reach.

  • Scope rows and columns with a governed view
  • Mask consignee PII and contact details
  • Leave commercial fields like rates and margin out
views/lanes_acme.sqlview
-- lanes_acme: one carrier, consignee contact masked, margin dropped
create view lanes_acme as
select shipment_id, lane, status, eta,
md5(consignee_contact) as consignee_contact -- masked
from shipments
where carrier = 'ACME-FREIGHT'; -- lane_margin not selected
grantbroker-agent → lanes_acme · read

Questions the network asks

What dispatch wants to know.

Can one carrier see another’s lanes?
No. Each agent is granted read on a view scoped to its own carrier or 3PL, so a partner only ever sees the shipments it operates.
What about consignee PII?
Contact details are hashed or dropped in the view before a response leaves, so a routing agent gets the stop, not the person.
Does this replace our TMS?
No. Nightshift sits in front of your TMS, WMS, and carrier APIs and serves a governed view of them. Your systems of record stay where they are.
Can an agent book or dispatch on its own?
No, not on its own. An agent can draft a re-route, a booking, or an exception, and it lands in a governed Nightshift table where a planner approves it before anything reaches your TMS or a carrier. The agent does the work, a person signs off, and your systems of record stay untouched until then.

Put an agent on your supply chain data.

Start free, connect a TMS or telematics feed, and watch governed reads flow to your agent in minutes. Scope every partner to its own lanes from the first request.

Want to look first? Take the product tour