> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.chrt.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.chrt.com/_mcp/server.

# Creating Shipments

> Step-by-step reference for the draft order builder — order setup, cargo, segments, stops, and submit.

Shipments in chrt are built as **drafts** that you submit once everything is in
place. This page walks through the draft builder tab by tab so you can confidently
place an order with a forwarder, a directly-assigned courier, or an off-platform
provider you record yourself.

## Before you start

* You need a connected forwarder or courier — or an
  [off-platform provider](/shippers/off-platform) you've recorded — to assign
  the work to.
* Cargo is required before you can submit. If you don't know what's moving yet,
  choose **Other** or **Unspecified** and you can fill in details later.

> **Tip**
>
> If you have an email or quote describing the shipment, paste it into the
> [AI order builder](/shippers/ai-order-builder) on the Order setup tab and
> chrt will populate cargo, stops, and segments for you to review.

## 1. Open the draft builder

Go to [chrt.com/orders/drafts/new](https://chrt.com/orders/drafts/new), or open
the **Drafts** list at
[chrt.com/orders/drafts](https://chrt.com/orders/drafts) and click
**New draft**. chrt creates the draft as soon as you land and updates the URL
to `/orders/drafts/<short-id>` so you can save and come back to it.

The builder uses a four-tab layout: **Order setup**, **Segments**, **Stops**,
and **Cargo**, with a **Preview** step at the end. Each tab shows a status dot
(green when complete, yellow when there are unsaved changes, gray when empty).

## 2. Assign the order on the Order setup tab

The Order setup tab decides who is responsible for executing the shipment.

* **Assign a forwarder** if you want a freight forwarder to coordinate the legs
  and dispatch the couriers. Forwarders can build multi-segment, multi-modal
  orders (ground + flight + ground).
* **Assign a courier directly** if you've already chosen the carrier and the
  shipment is a single ground leg. Direct courier assignment locks the order
  to ground-only.

You cannot assign both a forwarder and a courier on the same order. If you
need to switch from one to the other, clear the current assignment first.

If you have an external reference number (a PO, a customer's order ID), enter
it in **External reference ID** so it appears on the order page and in
exports.

## 3. Add cargo on the Cargo tab

Each cargo line represents item(s) that share the **same pickup and delivery**
pattern. If three identical totes go from A to B, enter one cargo line with
**quantity 3** and the shared dimensions. If three items go to three different
addresses, create three separate cargo lines.

1. Click **Add cargo**.
2. Choose a [cargo type](/docs/concepts/cargo-types).
3. Fill in **description**, **quantity**, **weight** in pounds, and **L × W × H**
   in inches. Auto-save fires on blur.
4. Use **Duplicate** in the top-right of a saved cargo card to copy it, then
   edit only the fields that differ.

> **Note**
>
> Cargo type drives qualification (which couriers can run the shipment) and
> pricing. See [Cargo types](/docs/concepts/cargo-types) for the full list.

## 4. Add segments on the Segments tab

Segments are the legs of the shipment. Each segment is a task group that can be
tracked and (if you have a forwarder) assigned to a different courier.

* **Ground only** — one segment, one courier.
* **Ground → Flight → Ground** — three segments. The middle flight segment is
  system-managed (no courier selector); use the **Flights** tab inside the
  draft to attach flight info.
* **OBC (on-board courier)** — for hand-carry shipments where one person
  accompanies the cargo door-to-door. Forwarders typically build these.

Flight mode is unavailable if you assigned a courier directly on the Order
setup tab — flights require a forwarder.

## 5. Add stops on the Stops tab

Each segment gets a sequence of stops (pickup, deliver, hold, transfer to
airline, recover from airline, etc.). chrt creates default stops when you add
a segment — pickup + deliver for ground, and pickup + tender + recover +
deliver for a flight chain — and you can add, reorder, or remove stops from
there.

1. Open a stop to set the **address**. If a contact on a connection has a saved
   address, click the **map pin** on the contact card to fill it; otherwise
   type and choose from autocomplete. Always include unit, suite, floor, or
   building number in the **second line** when applicable.
2. Add a **point of contact** so the driver app shows the right person to call
   on arrival. Use the **bell icon** on a contact card to send that person
   ad-hoc email notifications for this order's pickup and delivery events.
3. Select **which cargo** applies to this stop. For a pickup, select the lines
   being picked up; for a delivery, select the lines being dropped. Forgetting
   this is the most common mistake on a draft.
4. Set a **time window**. Add multiple windows for flexible appointments
   (9:00–11:00 or 12:00–14:00), a single window, or an exact instant for a
   precise appointment.
5. Add **special instructions** the driver should see at this stop, and add
   **task artifacts** to require proof at this stop — photos, signatures,
   barcode scans, or other capture.

> **Warning**
>
> Forgetting to select cargo at a stop is the most common draft mistake. The
> preview validation catches it, but it's faster to set it as you go.

## 6. Preview and submit

The **Preview** step summarizes the entire order: assigned org, segments,
stops, cargo, and the **quoted earnings** (revenue and cost from any rate
sheets on file).

1. Click **Validate** to run all checks for the most common configuration
   issues (missing addresses, unassigned cargo, missing stops on a segment).
2. Fix anything that's flagged.
3. Click **Submit** to convert the draft to a **staged** order.

The order page opens at `/orders/<order-ref>`. The order stays **staged** until
the assigned courier accepts and a driver marks themselves as **started
driving** in the driver app, at which point it moves to **in progress** and
live tracking kicks in. See [Tracking](/shippers/tracking) for what to expect
from there.

## How to know it worked

* The URL changes from `/orders/drafts/<short-id>` to
  `/orders/<order-ref>`.
* The order appears in [Orders](https://chrt.com/orders) with status
  **Staged**.
* Notifications fire to subscribed members and ad-hoc recipients (if any) for
  the order-staged event.

## If something looks different

* **You don't see the forwarder or courier you expected** — you may not be
  connected yet. Open [Connections](https://chrt.com/connections) and connect
  to them first.
* **You can't open Flight mode** — you've assigned a courier directly. Clear
  the courier assignment and choose a forwarder instead.
* **Validation fails on a stop with no error message** — make sure you've
  selected at least one cargo line at that stop.
* **Submit succeeds but the courier doesn't see the order** — confirm the
  Order setup tab shows the right assigned org and that the connection is
  active.
* Contact [hi@chrt.com](mailto:hi@chrt.com) if you have issues.

## Related guides

* [AI order builder](/shippers/ai-order-builder) — paste an email/quote and
  have chrt populate the draft.
* [Order schedules](/shippers/order-schedules) — turn a draft into a recurring
  shipment.
* [Cargo types](/docs/concepts/cargo-types) — full enum and what each type
  drives.
* [Tracking](/shippers/tracking) — what happens after you submit.
* [Off-platform providers](/shippers/off-platform) — record providers that
  aren't on chrt.