Dispatchers

Route orders to the right bridge

Not every order goes to the same place. Some ship from your East Coast warehouse, some from the West. High-value orders need white-glove fulfillment. International orders route to a different 3PL. Dispatchers evaluate conditions on every order and automatically route it to the correct destination bridge — no manual sorting, no mistakes.

Think of them as if/then rules for your entire fulfillment network.

DISPATCHER — West Coast Groundactive
Source bridge
Shopify
when ALL match
shipping_address.stateinCA, OR, WA, NV, AZ
totals.total<$200
tagsnot containsfragile
Dispatches to
3PL — West Coast DC
P800
2,847 orders routedlast: 3 min ago
The problem

Manual order routing doesn't scale

When you have one warehouse, routing is simple — everything goes there. But the moment you add a second fulfillment center, a freight carrier for heavy orders, or a different 3PL for international shipments, someone has to decide where each order goes. That someone is usually copying and pasting between tabs.

Manual sorting

Someone on your team eyeballs each order and decides which warehouse or carrier should handle it. Slow, error-prone, and impossible to audit.

Hard-coded logic

A developer writes if/else rules in your codebase. Works until business rules change — then it's a deploy cycle every time you need to adjust.

Platform limitations

Your e-commerce platform might let you set simple shipping rules, but it can't route based on order value, customer tags, or destination ZIP codes.

How dispatchers work

Rules you write, routing that runs

Every dispatcher has a source bridge, conditions to evaluate, and a destination bridge. When an order arrives, dispatchers run in priority order and route it to the first matching destination.

01

Order arrives

An order syncs in through a source bridge — Shopify, a marketplace, or any connected platform.

02

Conditions evaluate

The dispatcher checks order fields: state, zip, total, tags, SKU, customer info — 24 fields across 6 categories.

03

Match mode applied

AND mode requires all conditions to match. OR mode matches if any condition is true. You pick per-dispatcher.

04

Order dispatched

Matching orders are assigned to the destination bridge — ShipStation, your 3PL, or any connected integration. Non-matching orders continue to the next dispatcher.

Conditions

17 operators, 24 fields, zero code

The condition builder gives you fine-grained control over which orders match. Filter by any order field — shipping address, totals, customer info, tags, or custom fields — using operators from simple equality to regex patterns.

Rich operator set

Equals, contains, starts with, regex, greater than, in list, in set, exists — 17 operators that cover every routing scenario.

Condition sets for large lists

Need to match against 70,000 ZIP codes? Condition sets store large value lists efficiently. Use "in_set" and "not_in_set" operators to check membership without bloating your rules.

Priority-based evaluation

Dispatchers run in priority order (0-1000). Higher priority evaluates first. When a dispatcher matches, the order is assigned — lower-priority dispatchers become fallbacks.

Four trigger types

Run dispatchers on order_created, order_updated, shipment_created, or manual trigger only. Control exactly when routing evaluation happens.

AVAILABLE CONDITION FIELDS24 fields
Status
statuspayment_statusfulfillment_status
Customer
customer.emailcustomer.first_namecustomer.last_name
Shipping
shipping_address.cityshipping_address.stateshipping_address.zipshipping_address.country
Totals
totals.subtotaltotals.shippingtotals.total
Other
tagscurrencynoteorder_number
+ 10 more fieldsdot notation supported
CONDITION SET
active
West Coast ZIP Codes
Residential delivery zones for CA, OR, WA
Values68,412 entries
90001
90002
90003
90004
90005
90006
90007
90008
... 68,404 more values
Used in dispatchers
West Coast GroundCA Same-DayPacific Freight
last updated: 2 days agoO(1) lookup
Condition Sets

Match against thousands of values instantly

Dispatcher conditions work great for simple rules — but what happens when you need to match against 70,000 ZIP codes, 500 SKUs, or a list of VIP customer emails? Condition sets solve this by storing large value lists as reusable, named collections with O(1) hash-based lookup.

Named, reusable collections

Create a condition set once and reference it from any dispatcher. Update the ZIP code list in one place and every dispatcher that uses it picks up the change instantly.

O(1) membership testing

Values are stored as hash sets. Whether your list has 10 entries or 100,000, lookup time is constant. No linear scans, no performance degradation.

in_set & not_in_set operators

Two dedicated operators for condition sets. Use "in_set" to match orders where a field value exists in the set, or "not_in_set" to exclude them. Combine with other conditions using AND/OR logic.

Bulk import & API management

Upload a CSV of ZIP codes, paste a list of SKUs, or manage sets programmatically via the API. Changes take effect immediately — no redeploy, no restart.

Example: condition using a set
shipping_address.zipin_set"West Coast ZIP Codes"
totals.weightless_than150
match mode: ALL → dispatches to 3PL West
Use cases

Routing rules teams actually use

Regional warehouse routing

Route orders to the nearest fulfillment center based on ZIP code using condition sets. Load 70,000 ZIP codes into a set and match instantly — no performance penalty.

shipping_address.zip in_set "West Coast ZIPs" → 3PL West

High-value order handling

Route orders above a dollar threshold to your white-glove fulfillment partner. Signature required, insurance included, tracking notifications.

totals.total > 500 → Premium Fulfillment

International shipping

Automatically route international orders to a carrier or 3PL that handles customs, duties, and cross-border logistics.

shipping_address.country not_equals US → GlobalShip

Hazmat / fragile items

Match orders containing fragile or hazardous materials by tag or SKU pattern and route them to carriers certified for special handling.

tags contains "fragile" → Careful Carrier

Subscription fulfillment

Route recurring subscription orders to a separate fulfillment flow with different packing slips, inserts, and shipping preferences.

tags contains "subscription" → Sub Fulfillment

SKU-based routing

Load your cold-chain SKUs into a condition set. Any order containing a temperature-sensitive product routes to your cold-storage fulfillment partner automatically.

line_items.sku in_set "Cold Chain SKUs" → Cold Storage DC
Order Splitting

One order in, multiple orders out

Not every line item in an order ships from the same place. Some SKUs live in your East Coast warehouse, others in the West. Some items need cold storage, others don't. Order splitting automatically breaks a parent order into child orders based on rules you define — so each child routes to the right fulfillment destination.

Split rules evaluate on every incoming order. The first matching rule wins, creating child orders that inherit the parent's customer and shipping info while carrying only their assigned line items.

Condition-based splitting

Define condition groups that match line items by SKU, quantity, price, weight, or any product field. Each group becomes a labeled child order. Items that don't match any group stay with the parent.

Field grouping

Group line items by a field value — SKU prefix, warehouse code, variant title, or any custom property. Each unique value becomes its own child order. The largest group stays with the parent.

Bridge-specific rules

Scope split rules to a specific source bridge, or apply them to all bridges. A Shopify-only rule won't interfere with your marketplace orders.

Priority-based evaluation

Split rules run in priority order (0–1000). The first rule that matches wins — lower-priority rules become fallbacks. No stacking, no conflicts.

SPLIT RULE
active · P800
Warehouse Routing Split
Split by warehouse assignment for multi-DC fulfillment
Methodcondition
Condition Groups
Cold Storagematch ALL
skustarts_withCOLD-
requiresShippingequalstrue
Oversizedmatch ANY
weightgreater_than50
properties.oversizedequalstrue
Result
ORD-4821parent · 2 items kept
ORD-4821-S1Cold Storage · 3 items
ORD-4821-S2Oversized · 1 item
1,204 orders splitlast: 12 min ago
FIELD GROUP SPLIT
active
Split by Warehouse Code
group byproperties.warehouse
Items with warehouse="WH-EAST" → child A · warehouse="WH-WEST" → child B · largest group stays with parent
Better together

Split first, then dispatch

Order splitting and dispatching work together in the order processing pipeline. Split rules break multi-warehouse orders into focused child orders, then dispatchers route each child to the correct fulfillment bridge. The result: every line item ends up at the right destination without manual intervention.

01

Order arrives

A multi-item order syncs in through a source bridge with line items destined for different warehouses.

02

Split rules evaluate

The first matching split rule breaks the order into child orders — by condition groups or field values.

03

Dispatchers route

Each child order is evaluated by dispatchers independently. Cold-storage items route to one bridge, standard items to another.

04

Fulfilled separately

Each child is fulfilled by its destination bridge. Tracking numbers consolidate back to the parent order automatically.

Why it matters

The routing layer your ops team is missing

Dispatchers sit between order ingestion and fulfillment — the critical decision point that determines where an order actually goes. Without them, that decision is manual, inconsistent, and invisible.

0
Manual routing decisions
per day
< 1s
Routing evaluation time
per order
100%
Audit trail coverage
every assignment logged
24
Filterable order fields
across 6 categories

Stop sorting orders by hand

Set up your first dispatcher in minutes. Define conditions, pick a destination, and let every order find its way automatically.