Automations in the app let you define “if this, then that” rules to control order flow and operations with or without code. Use automations to hold, cancel, route, or enrich records based on conditions such as order value, tags, SKUs, marketplace, or destination.
When automations are enabled for your organization, you will see the Automation Engine key under Settings → API Keys. It is recommended not to delete the key as it will be recreated within 5 minutes.
What automations can act on
Automations can apply to five entities:
Orders — New and Updated
Shipping requests — Updated
Fulfillments — Created (can technically be modified and a new run of the automation will be triggered)
Exceptions — Modified, Scheduled
Products — Updated
Learn more about automations in this course.
How Automations Work
Triggers
A trigger is the event that starts rule evaluation.
New order — Runs when the app ingests a new order.
This is the only trigger automatically enforced by the system. A default rule ensures that new orders don’t remain in the New status indefinitely.Updated order — Runs when an order is updated.
This trigger only runs when the order status is no longer New. When an order is first created, it starts as New. After the New order rule updates its status (for example, to onHold), the Updated order trigger runs. This occurs because the order is no longer New, not because it was manually modified.Updated shipment — Runs when a shipping request is created or updated.
Rules
A rule defines the conditions and the actions to take when those conditions are met. Each rule has three parts:
General — Name, description, and status (enabled/disabled).
-
Filter Conditions — Which items should match. You can:
Run this rule only once per entity (except for new orders) to make sure that, when enabled, a rule will run only once for a given entity that matches the other filters.
Filter by source integration (for example, Shopify, Amazon, Walmart, Mirakl). Leave as Don’t filter by integration to include all sources.
-
Filter by entity fields using Additional filters → Simple. Available fields vary by entity.
Use a point-and-click builder to create conditions without code to handle most common use cases.Visual query builder
Field selection across the entity (order properties, line items, and more)
Common operators such as equals, contains, greater than
-
Combine multiple conditions with AND/OR
-
Filter by entity fields using Additional filters → Code (JavaScript). Available fields vary by entity.
Write JavaScript for scenarios the Simple filter cannot express.Full JavaScript support with access to the full entity via entity
Perform aggregate calculations across line items, dates
Handle data from dependencies
Implement complex business logic
-
Must return true (match) or false (no match)
-
Actions — What to do with matched items (for example, hold, cancel, set tags, send for fulfillment). The types include:
-
Hold order
Places an order in On hold for a specified duration to delay processing.
Duration (minutes) — for example, 60
Next status — typically readyForFulfillment or reviewRequired
Created-at field — choose the timestamp used to compute the hold window
Hold windows — optional business-hours or batch release logic
-
Timezone — for consistent time-based calculations
-
Conditional hold order
Holds a new order until a condition is met; releases automatically when true, or via a fail-safe time if not.Filter type — Simple (point-and-click) or Code (JavaScript)
Condition — build one or more rules; choose All/Any to evaluate them
Order status after hold conditions are met — next status when the condition is true (for example, Ready for Fulfillment)
-
Fail-safe release — ensures orders don’t remain on hold indefinitely
Auto release after (hours) — maximum hold duration
Auto release period starts when — anchor event (for example, order was synced into Pipe17)
Next status after auto release — fallback status when the fail-safe triggers (for example, Review Required)
-
Notes
Evaluates every ~15 minutes while on hold
Reads the current rule each evaluation (edits to filter/code or next statuses apply to orders already on hold)
Captures only the fail-safe timestamp and fallback status in the automation run
-
Terminal action: no subsequent actions run after this step
-
Update order property
Modify specific fields using predefined operations.Path — property to update (for example, shippingCarrier, tags, status)
Operation — SET_VALUE, ADD_ARRAY_ITEMS, REMOVE_ARRAY_ITEMS, RESET_VALUE
-
Value/Values — the new value(s)
-
Update order by code (JavaScript)
Use JavaScript to compose complex updates and return an object of changes. -
Set order to draft
Moves the order to Draft for manual review or later reprocessing. No extra configuration.
-
When you add a terminal action, it must be the last action in the rule. No additional actions can be added after it.
Filter and Action Testing
Test filter
Paste raw entity JSON (order, shipment, etc.) to see whether your filter matches (true/false). Use this to validate logic before enabling a rule. Most of the time, the system loads a filter by its internal ID, but can paste or even modify the loaded entity.Convert filter to code
Turn a Simple filter into JavaScript, then customize as needed for more complex scenarios. This allows expanding an existing filter without having to recreate the code from scratch.Test code (for JavaScript actions)
Paste order JSON, run your action code, and review the computed updates the action would make. Most of the time, the system loads an action by its internal ID, but can paste or even modify the loaded entity.
Key difference: Filter testing determines if the rule will run; action testing shows what will happen when it runs.
Execution Sequence
Rules within the same trigger are evaluated from top to bottom.
-
When a rule’s filter matches, its actions run. In fact, all matching rules run besides new orders as they are exceptions.
If those actions for new orders change the entity’s status so it no longer matches the trigger (for example, a New order moves to Hold, Canceled, or Archived), evaluation stops and later rules do not run.
If a rule does not match, evaluation continues to the next rule.
Reorder rules to control priority.
Default Rule for New Orders
Every organization has a default Hold rule for New order:
Action: Hold for 10 minutes
Scope: All order sources
Position: Always last in the sequence
Editable: You can change the action and its configuration. You cannot change the filters (it must catch any order not handled by earlier rules).
Setting Up New Rules
Select a Trigger (for example, New order), then select New rule. New rules are Disabled by default to prevent accidental activation.
-
General
Enter a clear Name.
Add a concise Description so teammates understand intent.
Keep Enabled off until you are ready to go live.
-
Filter
Choose Source integration(s) or keep Don’t filter by integration.
Open Additional filters > Simple and add conditions (for example, channel, tags, order total, SKU).
-
Actions
Add one or more actions in the order they should run (for example, Hold for 30 minutes, then Send for fulfillment).
Save the rule, then Enable it when ready.
Reorder rules to reflect business priorities.
Create and Update Rules with Pippen (Experimental)
Using Pippen is a great way of learning how the rules work and for creating code filters and code actions.
If you see New rule using Pippen AI, describe the rule you want in plain language, for example:
“Hold all Shopify orders for 35 minutes.”
Pippen builds the rule for you. Continue refining it with prompts (for example, “Only if the order has a test tag”), or dismiss Pippen and finish editing manually.
Pippen works better with clear steps or when breaking requests into multiple messages, as AI can easily digest them.
Automation History
Use Automations → History to audit runs, validate rule behavior, and troubleshoot.
Here you can:
Search runs.
Filter by Status, open Advanced filters, and reuse Saved filters.
Use Explain filters with Pippen to understand why results match your filters.
Refresh the list, change rows per page, and navigate pages.
The table displays the following information:
Run ID — Unique identifier for the run.
Entity — Orders, Shipping requests, Fulfillments, Exceptions, or Products. Links to corresponding page.
Entity ID — The specific record the rule acted on.
Status — For example, Completed.
Trigger — Event type that executed the rule.
Automation — Trigger name (for example, NEW_ORDER). Links to the automation page.
Created — When the run started.
Updated — When the run last changed.
Error message — Any error captured during execution.
Actions — View JSON to inspect full details and payloads.
Typical Workflow
Filter to the entity and timeframe you need.
Open View JSON on a row to verify filters, matched fields, and actions taken.
Adjust rule filters or rule order based on what you learn.
Troubleshooting
-
My rule didn’t run.
Confirm the rule is Enabled.
Check Automation History for matching runs. If none, refine filters or move the rule higher in the sequence.
Verify the item still matched the trigger status when the rule evaluated.
When using a code filter or code action with errors, this may also prevent a rule from running.
-
A later rule didn’t run.
An earlier rule likely changed the status (for example, moved a New order to Hold). Reorder rules or tighten the earlier rule’s filters.
-
Updated-based triggers didn’t fire after an action.
Updates made by automations do not re-trigger “Updated …” triggers. Make additional changes within the same rule’s actions or design a separate process.
-
The default rule is catching everything.
Add less specific or broader rules above the default rule. You can change the default rule’s action, but not its filters. Also, check if the filter is correct.
-
I need the same action across sources.
Leave Source integration as Don’t filter by integration or select multiple sources.
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