Skip to main content
Where to find it: Settings → Advanced → Shipping Automation — Open in OTO ↗
Shipping automation is the rules engine that picks the carrier. Order routing decides where an order is fulfilled from; this decides who carries it — and on a few hundred shipments a day it is the difference between a shipping bill that reflects deliberate choices and one that reflects whoever happened to be selected.

How it works

The engine runs in two passes, and the page has a tab for each. Keeping these separate is what makes the system tractable. Eligibility is a statement about capability and policy — this carrier does not handle temperature-controlled goods, that one is not to be used for orders over a certain value. Selection is a statement about preference — among those that can, use the cheapest, or the one that meets its SLA most reliably. Mixing the two into a single list of rules is how automation setups become unmaintainable.

Pass 2 — automation rules

Taking selection first, because it is where most people start. Each rule matches a set of orders and says how to choose among the carriers that survived pass 1.
The Automation Rules tab

Fig. 1 — A real rule set, organized by market and carrier. The Orders column counts what each rule has actually handled — the fastest way to spot a rule that never fires, or one swallowing more than it should.

Building a rule

Add OTOmation Rule takes a Rule Name, a Status, a Partner Type, the Conditions that decide which orders it applies to, a Method, and a Switch to next carrier on failure toggle. Partner Type is OTO Rates or Own Rates — which commercial model this rule selects within. A rule works inside one of the two, not across both.

Rule conditions

Nearly fifty condition types are available, which is what lets a rule be specific enough to be safe. They fall into groups:
Order Tags as a conditionTags applied during pre-fulfillment are available here as a condition. That is the clean way to get a business rule that has nothing to do with geography or weight — a fragile-goods policy, a VIP customer policy — into carrier selection: tag it upstream, select on the tag here.
City GroupOrigin City Group and Destination City Group refer to named sets of cities defined at Settings → Advanced → Areas → City Group. Define the group once and a dozen rules can reference it, instead of each carrying its own list of cities to be kept in step.

Selection methods

Eight methods, in three families.
The eight selection methods

Fig. 2 — The Method list open on a rule. Switch to next carrier on failure sits alongside it.

Choosing Manual Selection or Distribute by Percentage reveals an Actions table where the carriers and their ranks or shares are set.
Distribute by Percentage

Fig. 3 — A 60/40 split between two carriers. This is where a volume commitment negotiated in a contract becomes something the system actually honours, order by order.

Why a percentage split matters commerciallyCarrier contracts frequently come with volume tiers. A split that drifts is a discount lost at the next renegotiation — and drift is exactly what happens when the choice is made by hand, shipment by shipment.

Data Period

Choose any of the four performance methods and a Data Period field appears, measured in months. It is the window of history the score is computed over, and it is a real decision rather than a formality: a short window reacts quickly to a carrier that has started failing, a long one is harder to skew with a bad fortnight. It shows as a column on the rule list, so you can see at a glance which rules are judging on what.

Different methods for different orders

One method per rule — which is exactly why you write several rules. Least cost for standard domestic orders, best SLA for anything with a delivery slot, a fixed percentage split for the carrier you have a volume commitment with. Sort Rules sets the order they are evaluated in, and the first rule whose conditions match is the one that decides.
Order mattersBecause the first match wins, a broad rule sitting above a narrow one will swallow the narrow one’s orders and it will never fire. Put the specific rules first and the catch-all last — and use the Orders column to check: a rule stuck at zero is usually one that has been shadowed.

Failure handling

Switch to next carrier on failure, on each rule, keeps an order moving when a booking fails: instead of stopping, the engine moves to the next candidate. Without it a carrier’s API outage becomes a queue of unshipped orders that someone has to notice.

Pass 1 — feasibility rules

On the Delivery Company Feasibilities tab, each rule names one connected carrier and says what to do with it under given conditions. The list is typically longer than the rule list, because it has one or more entries per carrier.
The Delivery Company Feasibilities tab

Fig. 4 — One rule per carrier connection, each with its Action and Status. Note there is no Sort Rules here — ordering applies to selection, not eligibility.

Add Feasibility Rule

Fig. 5 — Add Condition Group is the capability worth noticing — it is available here and not on automation rules, so genuinely nested eligibility logic belongs on this tab.

Two ways to say the same thingAssign Only and Do not Assign can often express the same policy from opposite directions. Prefer whichever produces fewer rules: a carrier that should handle one narrow case is an Assign Only; a carrier that should handle everything except one case is a Do not Assign.

Testing before you trust it

Two mechanisms, and they answer different questions. Test Mode is a rule status. The rule is evaluated and its result recorded, but it does not act — so a new rule can run alongside the live ones for a week and be judged on what it would have done. Automation Test takes a real Order Number and shows every rule’s verdict on it, numbered in evaluation order. Each result gives the Rule Name, the Assignment Priority Method, the rule’s Status and a Test Result, and expands for the detail. A Reverse Shipment toggle runs the same test for the return leg, since returns are routed by these rules too.
Automation Test

Fig. 6 — Two rules rejected the order, the third took it. Both rejections read “No eligible carriers matched the rule conditions”.

Read that error carefully — it is the two passes talking“No eligible carriers matched the rule conditions” does not mean the rule ignored the order. It means the rule claimed it and then found nothing left to give it to — every candidate had been ruled out in pass 1, by a feasibility rule, by coverage, or by a daily capacity already spent.So when a rule mysteriously does nothing, the fix is usually on the Feasibilities tab or in City Coverage, not in the rule you are looking at.
Test the order you are arguing aboutWhen a shipment went to the wrong carrier, Automation Test on that order number is the fastest answer — it shows which rule claimed it, which is usually a broad rule sitting too high in the list.
  • Carrier integration — contract prices, SLAs, coverage and capacity. Everything this engine weighs is configured there.
  • Order routing — the sibling engine that chooses the fulfilling location. Same shape, earlier in the order’s life.
  • OTO FLEX — your own drivers, competing with carriers in these same rules.
  • Return automation — reverse shipments are selected by this engine too.
  • Invoice reconciliation — checks afterwards whether the cheapest carrier actually billed as the cheapest.