In an Action type, rules define the ways objects should change when the Action is applied. Many Action types can be defined using simple rules which allow you to create, modify, and delete objects, or create and delete links between objects.
In some cases, however, simple rules aren't sufficient to describe the changes that you want to make. For example, you may want to:
Modify multiple objects that are currently linked together. For example, you may want to set the status field of an Incident object to Closed, and also set the status of all linked Alert objects to Resolved.
Modify an object's properties based on some more complex logic. For example, you may want to compute a value based on some business logic that reads data from several objects, then write that value into an object property.
Create several different types of objects and set up links between them.
To support use cases like these, Action types can be configured to call a Function that defines the logic of how objects should be modified. These Action types are often referred to as Function-backed Actions. By using a Function, you can create Action types of any level of complexity, reading any number of objects and modifying objects as you see fit.