Automations let you define "if this, then that" rules that control how the app handles your records, with or without code. Use them to hold, cancel, update, or route records based on conditions such as order value, tags, SKUs, sales channel, or destination.
When automations are enabled for your organization, an Automation Engine key appears under Settings > API Keys. Don't delete this key. The app recreates it within 5 minutes if you do.
What automations can act on
Automations run on five entities. Each entity has its own page under Automations in the left navigation pane.
| Entity | Triggers |
|---|---|
| Orders | New orders, Updated orders, Manual trigger |
| Shipping requests | Updated, Manual trigger |
| Fulfillments | Created |
| Exceptions | Modified, Scheduled |
| Products | Updated |
Triggers
A trigger is the event that starts rule evaluation. On the Orders page, each trigger has its own tab:
- New Orders: Runs when the app ingests a new order. A default rule makes sure new orders don't stay in New status indefinitely.
- Updated Orders: Runs when an order is updated after it leaves New status. For example, after a New Orders rule moves an order to On Hold, the Updated Orders trigger runs.
- Manual Trigger: Runs when you trigger automations manually, for example, with Trigger automations on the All Orders page.
Updates made by automations don't start the Updated triggers again.
Rules
A rule defines which records to match and what to do with them. Each rule has three parts:
- General: The rule's name, description, and whether it's enabled.
- Filter Conditions: Which records the rule applies to.
- Actions: What the rule does with matching records.
Filter conditions
- Order Source: Select one or more source integrations, such as Shopify or Amazon. Leave it as Don't filter by integration to include all sources.
- Additional Filters: Select Simple or Code (JavaScript) to filter by the record's fields. The available fields depend on the entity.
Simple filters use a point-and-click builder. Choose a Field, an Operator (such as Equals, Equals Any Of, or Contains), and a Value, and combine conditions with All or Any. Use Convert filter to code to turn a simple filter into JavaScript you can extend, View summary to see the filter in plain language, and Test filter to check it against a record.
Code (JavaScript) filters handle logic that simple filters can't, such as calculations across line items or dates. The script must return true (match) or false (no match). Use Evaluation Dependencies to add related data your code needs, and click Test code to check the script against a record.
Actions
| Action | What it does | Settings |
|---|---|---|
| Hold Order | Places the order on hold for a set time, and then moves it to the next status. | Hold minutes, Hold period starts when, Next status after hold, and optional Enable hold based on business hours |
| Conditional Hold Order | Holds the order until a condition is met, with a fail-safe release so orders don't stay on hold indefinitely. The app checks the condition about every 15 minutes. | Simple or code condition, status after the condition is met, Auto release after (hours), Auto release period starts when, and Next status after auto release |
| Update Order Property | Changes specific order fields. |
Path (for example, tags), Operation (SET_VALUE, ADD_ARRAY_ITEMS, REMOVE_ARRAY_ITEMS, or RESET_VALUE), and Value
|
| Update Order by Code (JavaScript) | Builds complex updates in JavaScript and returns an object of changes. | Code editor with Test code |
| Set order to Draft | Moves the order to Draft for manual review or later processing. Deprecated: use Update Order Property with Status set to Draft instead. | None |
| Trigger Order Routing | Updated Orders and Manual Trigger rules only. Routes the order again. | Depends on the action |
| Create Exception | Updated Orders and Manual Trigger rules only. Raises an exception on the order or a related record. | Depends on the action |
| Update Exception Status | Updated Orders and Manual Trigger rules only. Changes the status of the order's exceptions. | Depends on the action |
| Force Push | Updated Orders and Manual Trigger rules only. Resends the order to the selected target. | Depends on the action |
Hold Order, Conditional Hold Order, and Set order to Draft are terminal actions. A terminal action ends the rule, so it must be the last action. When Update Order Property sets Status, it’s also a terminal action. Set order to Draft, Cancel Order, and Archive Order (still listed on New Orders) are deprecated. Use Update Order Property with Status instead.
Fulfillment and shipping request rules also offer Adjust Inventory Level. It records an inventory event, such as Ship, Release, or Receive, for matching line items, tied to the fulfillment or shipping request that triggered the rule. You can add tags and custom fields, and take the quantity from the line item or set it with code. On fulfillment rules, the action runs on every new fulfillment, so add a Fulfillment Type condition to limit it.
Actions that update line items, such as Change Inventory Level, have an Apply to all line items switch. Turn it on to apply the action to every line item instead of using a line item filter.
Product rules also offer Force Push. With Target set to Inventory of this product, the app re-sends the product's inventory to your selling channels on the next sync. Use it when a channel's inventory is out of sync with the app.
How to create a rule
- Navigate to Automations, and then select the entity, for example, Orders.
- Select the trigger tab, for example, New Orders.
- Click New rule. New rules start disabled, so they don't run before you're ready.
- Enter a clear Name and a short Description so your team understands the rule.
- Under Filter Conditions, select the Order Source, or leave Don't filter by integration selected.
- In Additional Filters, select Simple or Code (JavaScript) and set your conditions.
- Under Actions, select the action Type and its settings. Click Add action to add more actions in the order they should run.
- Click Save.
- Turn on Rule enabled when you're ready for the rule to run, and then save again.
- Drag rules by their handles to set their order.
Create a rule with Pippen
To describe a rule in plain language, click Create a new rule with Pippen, or Create using Pippen AI in the rule form. For example, enter "Hold all Shopify orders for 35 minutes." Pippen builds the rule, and you can refine it with more prompts, such as "Only if the order has a test tag," or finish editing it yourself. Pippen works best when you give clear steps or split a request into several messages.
Rule order
- Rules for the same trigger run from top to bottom.
- When a rule's filter matches, its actions run. For Updated triggers, every matching rule runs.
- For New Orders, if a rule moves the order out of New status (for example, to On Hold, Canceled, or Archived), later rules don't run.
- If a rule doesn't match, the app checks the next rule.
Default rule for new orders
Every organization has a Default New Order Automation Rule. It always runs last and holds orders for 10 minutes by default. You can change its action and settings, but not its filters, because it must catch every order that earlier rules don't handle.
Automation History
Use Automations > History to audit automation runs, check that rules behave as expected, and troubleshoot.
On the Automation History page, you can:
- Search runs, and filter them by Status and Entity Type.
- Build detailed queries with Advanced filters, and reuse them from Saved Filters. See Using Advanced Filters and Saving Filters.
- Refresh the list, change the rows per page, and move between pages.
| Column | Description |
|---|---|
| Run ID | Unique identifier for the run |
| Entity | The entity type, such as Orders or Exceptions. Links to the record's page. |
| Entity ID | The record the rule acted on |
| Status | Run status, for example, Completed |
| Trigger | The type of event that started the run |
| Automation | The trigger, for example, NEW_ORDER or ORDER_UPDATED
|
| Rules | The rules that ran. Links to the rule. |
| Error Message | Any error captured during the run |
| Job ID | The bulk job that started the run, if any |
| Created | When the run started |
| Updated | When the run last changed |
| Actions | Select View JSON to see the full run |
To troubleshoot a rule, filter the list to the entity and time period, open the run to check the matched fields and actions, and then adjust the rule's filters or position.
Best practices
- Keep new rules disabled until you've tested their filters with Test filter or Test code.
- Place specific rules above broad ones, so they run first.
- Use Convert filter to code to extend a simple filter instead of writing code from scratch.
- Check Automation History after you enable a new rule to confirm it runs as expected.
Troubleshooting
-
My rule didn't run
Check that the rule is enabled and look for its runs in Automation History. If there are none, refine the filters or move the rule higher. Errors in a code filter or code action can also stop a rule from running. -
A later rule didn't run
An earlier rule probably changed the order's status, for example, from New to On Hold. Reorder the rules or narrow the earlier rule's filters. -
An Updated trigger didn't run after an automation action
Changes made by automations don't start the Updated triggers again. Add the extra changes to the same rule's actions instead. -
The default rule catches every order
Add rules above the default rule for the orders you want to handle differently, and check that their filters are correct. -
I need the same action for every source
Leave Order Source as Don't filter by integration, or select several sources.
Need Help?
If you need additional assistance:
- Use Ask Pippen, our AI agent, located at the top of the platform page.
- Submit a support request with as much relevant detail as possible. Learn how to submit a request.
We’re here to help you succeed with your operations.
Comments
0 comments