Use automations in the app to apply consistent, fast decisions to orders and shipments—without manual work. This article outlines the most common actions, how to configure them, and practical patterns you can adapt.
When this helps
Reduce fraud and costly reships with time-boxed holds and reviews
Keep routing accurate with up-to-date inventory, payment, and address checks
Standardize shipping methods, tags, and priorities at scale
Surface issues early so teams work exceptions, not queues
Automation Actions
Action |
What it does |
Typical scenarios |
|---|---|---|
HOLD_ORDER |
Puts an order on hold for a set time or until conditions are met |
Fraud review; business-hours delays; inventory sync; payment verification |
UPDATE_ORDER_PROP |
Updates order fields (shipping method, tags, custom fields, priority, location) |
Assign carriers; add tags; set priority; select fulfillment location |
TRIGGER_ORDER_ROUTING |
Starts routing to determine the best fulfillment option |
Route after holds; after inventory confirmation; geo/capacity routing |
CREATE_EXCEPTION |
Creates an exception record for manual attention |
High-value approvals; stockouts; invalid addresses; payment issues |
HOLD_SHIPMENT |
Holds shipping requests before sending to providers |
QC checks; custom packaging; batch releases; carrier pickup windows |
UPDATE_SHIPMENT_PROP |
Updates shipment request properties |
Carrier overrides; special handling; insurance; delivery preferences |
CANCEL_ORDER / ARCHIVE_ORDER |
Changes order status to canceled or archived |
Confirmed fraud; permanent stockout; customer cancellations; duplicates |
CODE_UPDATE_ENTITY |
Runs custom JavaScript for complex logic or integrations |
Pricing/discount logic; external API calls; multi-factor routing; data transforms |
Holding Orders
If you want a window for customers to cancel or edit before fulfillment, configure a hold with automations.
Adding Hold Rules
Go to Automations and open the New order trigger.
Select New rule and add a Name and Description.
Choose Source integration(s) (for example, Shopify, Walmart, Mirakl) or leave Don’t filter by integration.
-
In Additional filters → Simple, add your conditions.
Example: Tags → Equals any of one or more tags.
-
In Actions, add Hold order and configure:
Hold minutes: for example, 60. Default is 10 minutes.
Hold period starts when: Synced into the app or Customer placed order in channel.
Next status after hold: Ready for fulfillment (auto-route) or Review required (manual release).
Save, then Enable the rule.
-
Reorder rules as needed.
Important: Once a rule holds an order, later rules will not execute for that order.
Business Hours
-
Enable Hold based on business hours to layer business-hour logic on top of time-based holds:
Orders outside business hours hold until the next business hour.
Orders inside business hours hold for N minutes.
Default Hold Rule
New organizations start with a 10-minute default hold for all new orders.
If your organization migrated from Order Hold Engine, the previous default hold is carried over; if none existed, it defaults to 10 minutes.
The default hold rule cannot be disabled. You can change its action/configuration, not its filters.
Override the Default
Create a New order rule that applies to all sources with Hold minutes = 0.
Recommendation: keep at least a 10-minute hold in production. Many channels update orders in the first 10 minutes. Without a hold, orders may route to the 3PL and require manual cancellation.
Order Changes During Hold
You can edit orders while they are on hold.
Edits and cancellations from the selling channel are reflected in the app before routing, reducing outdated or incorrect fulfillment.
Examples
Cancel Shopify test orders
Trigger: New order
Filter: Source integration = Shopify; Tags contains
testORexampleAction: Cancel order
Fraud-review hold for Shopify
Trigger: New order
Filter: Source integration = Shopify
Action 1: Hold order for 30 minutes using the Synced into the app timestamp
Action 2: Trigger order routing (send for fulfillment)
Late-update hold for Amazon
Trigger: New order
Filter: Source integration = Amazon
Action 1: Hold order for 60 minutes using the Customer placed order in channel timestamp
Action 2: Trigger order routing (send for fulfillment)
Troubleshooting
-
My rule didn’t run
Verify the order met all filters.
Check rule order. A prior rule may have held or changed the order state, stopping later rules.
Confirm the trigger matches the event you expected.
-
Orders skipped routing after a hold
Ensure Next status after hold is Ready for fulfillment (auto-route), or add TRIGGER_ORDER_ROUTING as the next action.
-
Business-hours logic didn’t apply
Enable Hold based on business hours and confirm your business hours are set correctly in the app.
-
Carrier or method didn’t stick
Place UPDATE_ORDER_PROP before routing so routing evaluates the final properties.
-
Unexpected cancellations
Tighten filters and add a confirmation step with CREATE_EXCEPTION for high-risk conditions.
-
Custom code not running as expected
Review the CODE_UPDATE_ENTITY function for idempotency, timeouts, and required secrets or credentials.
Need Help?
If you need additional assistance:
Use Ask Pippen, our AI agent, located at the top of the app page.
Submit a support request with as much relevant detail as possible. Learn how to submit a request.
For urgent issues, email us directly at support@pipe17.com.
We're here to help you succeed with your operations.
Comments
0 comments