ION Actions Best Practices
Overview
The Ion Actions engine enables powerful automation and business logic within ION by allowing users to define rules that respond to object events such as Work Order updates, Issue creation, or Part changes. Rules are written in Python and executed dynamically based on event triggers.
This document outlines best practices for writing, testing, and managing Ion Action rules. Following these guidelines will help ensure reliable behavior, maintainability, and consistency across your automation logic.
1. Rule Execution and Behavior
Chained Execution
When multiple rules target the same object and event type (for example, Issues Update), they are chained together and executed sequentially. The execution order is determined by internal rule IDs, which are not user-controlled and may vary. Because of this, rule order should not be relied upon.
Avoid Top-Level return Statements
return StatementsIf a return statement is used at the top level of a rule, the Ion Actions engine will stop executing that rule and all subsequent rules in the chain. This can lead to unintended skipping of logic defined in other rules that share the same event target.
Example (Problematic):
if issue.status == "Closed":
return # ❌ This stops execution of all following rules for this eventUse Nested Returns Instead
To safely control flow within your rule without affecting other chained rules, scope your return statements within functions or conditionals. This allows the Ion engine to continue executing subsequent rules.
Example (Recommended):
if issue.status == "Closed":
def handle_closed_issue():
# Logic specific to closed issues
return "Handled closed issue" # ✅ Nested return affects only this function
handle_closed_issue()Additional Recommendations
Avoid relying on rule execution order. Each rule should be self-contained and independent.
Use variables for decision-making. Employ local variables or persistent storage to manage conditional logic instead of using
returnto control flow.Test extensively. Validate behavior across multiple chained rules to ensure predictable outcomes.
2. Rule Development and Deployment
Version Control and Collaboration
As larger organizations scale and have internal software teams we see success in storing Ion Action rules in a version-controlled repository (e.g., GitHub or similar).
Connect your repository to the Ion API to enable direct, auditable deployment of rules.
Use pull requests or merge reviews to facilitate peer review, ensuring code quality and alignment with operational standards.
This approach allows engineers and operations teams to collaborate within familiar development workflows.
Deployment Process
Maintain staging and production environments for rule deployment.
Test rules thoroughly in staging before promoting them to production.
Use automated or semi-automated deployment pipelines to push rules, reducing manual copying and minimizing risk.
Clearly document rule changes and maintain an internal changelog for traceability.
Governance and Documentation
Treat Ion as the execution platform for rule logic, while managing source, versioning, and review externally at scale.
Implement a code review process before merging changes to production.
Maintain a clear audit trail for compliance and troubleshooting.
Last updated
Was this helpful?