Table of Contents |
---|
Introduction
Automation workflows Automations allow administrators to make the Digizuite™ DAM Center do things automatically - triggered as other things happen in the system.
Automation workflows replace the existing ItemWatcher workflows (And anything else that depends on digimonitor).
...
Note | ||
---|---|---|
| ||
Please note that automation workflows are in beta in 5.2.0. Hence, it is recommended that you start migrating any existing workflows to the automation engine, as R&D is expecting to sunset digimonitor around the 5.4.0 release (tbd). If you cannot recreate your existing workflows in automation workflows, please open a feature request in the DAM project on Jira, for R&D to have a look at it. |
Workflow construction
Automation workflows are built with "steps". A step can be either an "action", a "trigger", a "filter", or a "foreach loop".
Triggers
A workflow is always started by a trigger. A trigger is a special kind of step that listens for events in the overall system, such as an asset being uploaded, or metadata changing.
Actions
To actually do something your workflow needs actions. Actions all do one single thing, such as: updating a metadata field, or, triggering an asset publish event.
Filters
To prevent the workflow from firing all actions without any logic, a filter must be used.
...
If the condition is not met, the subsequent filters and action below it will not be executed.
Foreach loops
Lastly, there are loops, which is a special construct that allows for repeating a certain set of steps, over a set of data, executing the steps for each data point in the set. (This is very similar to how foreach loops are in other programming languages)
Creating a new workflow
First of all, you need the proper roles to be able to access the workflow menu point
...
What each trigger does is documented at the bottom of this document.
Using the visual editor
Once a workflow has been opened in the editor, a flowchart-like view is shown.
...
If you selected "Add existing", the workflow you inserted will, of course, be shown instead.
Adding a new step
To add a new step to the workflow, drag from the colored circle on the bottom of an existing step.
...
In this dialog fill out the parameters, and select "apply" when done.
Workflow text syntax
Behind the flowchart-like UI, code is being generated by the actions you perform with the steps.
...
Lastly, we have "needs", which is used on actions and filters. It refers to steps that should be executed before the step with the "needs"; thus creating a chain of dependencies (This must run before that).
Foreach loops
Foreach loops are a bit special since they allow for the repeated execution of a set (chain) of steps within a workflow. To implement a foreach loop, you have to specify 5 parameters (The can, of course, be done from the visual, flowchart-like, UI):
- "type", which should be set to "ForEach".
- "resolves", which should be the last step in the chain of steps to execute.
- "needs", which specifies all steps that must have run before entering the foreach loop.
- "variable", which specifies which variable to iterate over. This accepts both one ("test 1") and many values (["test 1", "test 2", "test 3"])
- "as", specifies what "variable" should be available as, in each iteration of the foreach loop. I.e. the current variable in the list to interact with.
Variables
Workflows use variables in order to pass data between different steps. Variables are identified by starting with an at-sign (@), for example, "@sourceAssetItemId".
...
Some actions have "exported" variables. This means that rather than reading a variable before it executes, it sets the variable after it has executed.
Tips and tricks
Required metadata fields (logic gate operators)
AND operator
"filter" steps below each other.
If two or more metadata fields are required before a given step should execute, you should position the filters below each other (i.e. make the workflow linear rather than branching).
OR operator
"filter" steps beside each other.
If you have multiple fields, but only one of them is required, you should position the filters beside each other.
Available steps
This documentation is auto-generated from the source, hence it's very unlikely to contain mistakes.
Some additional manual documentation might be provided below.
Available triggers
Type | Description | Exported Variables | Parameters |
---|---|---|---|
Asset Created Trigger | Triggers whenever an asset is created |
|
|
Asset Folder Updated Trigger | Triggers whenever an asset moved between folders |
|
|
Location State Changed | Triggered whenever a new asset is uploaded |
|
|
metadata | Triggers only if the metadata update was for the specified field. |
|
|
CronScheduleTrigger |
| ||
Member Created | Whenever a new member is created |
| |
Member Deleted | Whenever an existing member is deleted. Covers both soft and permanent deletes |
|
|
Member Metadata Changed | Whenever the Metadata on a member changes |
|
|
Performance Test Trigger |
|
|
Available actions
Type | Description | Parameters |
---|---|---|
delay | Delays the execution with the Duration milliseconds |
|
Download Asset Format | Downloads the given asset format to disk for processing |
|
Get metadata from damapi |
| |
Delete Asset Permanently | !DANGER! Permanently deletes an asset (there is NO WAY to recover after this) |
|
Invoke Endpoint |
| |
Log | Logs a message to the logger |
|
Query JSON |
| |
scale image | Scales an image to the specified height/width and format |
|
Search | Y'know, for search... |
|
Delete Asset | Soft deletes an asset (that is, keeps the actual file, but sets deleted bit) |
|
Variable set | Exports a value as a sample |
|
Variable read | An export read sample |
|
Create Folder Reference | Creates a folder reference for use in other steps that requires a folder value reference |
|
Move Asset To Folder | Moves an asset into a specific folder |
|
Remove Asset From All Channels |
| |
Remove Asset From Folder | Removes the given asset from a given folder |
|
Remove Asset From Layout Folder Recursive |
| |
RePublish Asset | Triggers a republish of the specified asset |
|
Split Folder Reference | Splits a folder reference into individual parts, so they can be used by themselves |
|
Split Tree value | Splits a tree value into its components |
|
Set Bit Metafield | Updates a bit value |
|
Set ComboValue Metafield | Updates a ComboValue metafield |
|
Set Date Metafield | Updates a date field |
|
Set EditComboValue Metafield | Updates the value of an edit combo value meta field |
|
Set EditMultiComboValue Metafield | Updates the value of the edit multi combo value meta field |
|
Set Float Metafield | Updates a float metafield |
|
Set Int Metafield | Sets the value of the given int metafield |
|
Set Link Metafield | Updates the value of a link meta field |
|
Set MultiComboValue Metafield | Updates the value of a MultiComboValue field |
|
Set Note Metafield | Updates the value of a note meta field |
|
Set String Metafield | Sets the value of the given string metafield |
|
Set Tree Metafield | Updates the value of a tree meta field |
|
Add Member to Group | Adds a member to the given group |
|
Move Member To Folder | Moves the member to a specific folder |
|
Remove Access Rights | Removes the access rights for a given target from a given accessor |
|
Remove Member From Group | Removes a given member from a given group |
|
Set Access Rights | Sets the access rights on a specific asset for a specific member |
|
Convert Asset Id To Asset Item Id | Converts the given asset id to an asset item id |
|
Convert Asset Item Id To Asset Id | Converts the given asset item id to an asset id |
|
Convert Member Id To Member Item Id | Converts a member id into a member item id |
|
Convert Member Item Id To Member Id | Converts the given member item id to a member id |
|
Add Items To Collection | A list of assets will be added to the given collection. |
|
Create New Collection | Create a new collection with the given collection name. The action will export a 'CollectionId' after it has been executed. |
|
Share Collection | Sharing a collection with a list of members, member groups or per email. |
|
Delete Collection(s) | A list of collections will be deleted. |
|
Available filters
Type | Description | Parameters |
---|---|---|
Asset type filter | Limits execution to certain asset types |
|
Forced Result | Forces a certain outcome from the filter |
|
Metadata bit filter | Limits the execution if the expected Bit value does not equal the requested Metafield value |
|
Metadata combo filter | Limits the execution if the expected Combo value does not equal the requested Metafield value |
|
Metadata datetime filter | Limits the execution if the expected DateTime value does not equal the requested Metafield value |
|
Metadata editcombo filter | Limits the execution if the expected Edit Combo value does not equal the requested Metafield value |
|
Metadata editmulticombo filter | Limits the execution if the expected Edit Multi Combo value does not equal the requested Metafield value |
|
Metadata float filter | Limits the execution if the expected Float value does not equal the requested Metafield value |
|
metadata int filter | Limits the execution if the expected Int value does not equal the requested Metafield value |
|
Metadata link filter | Limits the execution if the expected Link value does not equal the requested Metafield value |
|
Metadata multicombo filter | Limits the execution if the expected Multi Combo value does not equal the requested Metafield value |
|
Metadata note filter | Limits the execution if the expected Note value does not equal the requested Metafield value |
|
Metafield string filter | Limits the execution if the expected String value does not equal the requested Metafield value |
|
Metadata tree filter | Limits the execution if the expected Tree value does not equal the requested Metafield value |
|
Bool Comparison filter | Compares 2 arbitrary booleans |
|
...