Property Changed
The propertyChanged condition tests whether a property on a node changed its value in a prescribed way. You can use this condition to test if a node property changed at all, from a specific value or to a specific value (or both).
JSON Schema
{
"title": "Property Changed",
"properties": {
"property": {
"type": "string",
"title": "Property Name",
"required": true
},
"oldValue": {
"type": "string",
"title": "Old Value"
},
"newValue": {
"type": "string",
"title": "New Value"
}
}
}
This condition offers several different behaviors:
- if
oldValueandnewValueare empty, the condition will trigger whenever a property changes on a node. The property may change from any value to any other value. - if
oldValueis provided butnewValueis empty, the condition will trigger whenever the property changes AND theoldValuematches. The property may change to any new value. - if
oldValueis empty butnewValueis provided, the condition will trigger whenever the property changes AND thenewValuematches. The property may change from any new value. - if both
oldValueandnewValueare provided, then an exact match between the old property value and the new property value will be checked and the condition will only trigger on that exact match.
Example #1
Suppose you wanted to test for cases where a state property changes. You could set up the condition like this:
{
"type": "propertyChanged",
"config": {
"property": "state"
}
}
You might use something like this to fire off a web hook whenever the state of a node changes.
Example #2
Suppose you wanted to test for cases where a state property changes from published to anything else. You could set up the condition like this:
{
"type": "propertyChanged",
"config": {
"property": "state",
"oldValue": "published"
}
}
You might use something like this to fire off a web hook to invalidate presentation tier cache whenever a node moves from published to any other state, such as archived, WIP, or draft.
Example #3
Suppose you wanted to test for cases where a state property changes to published from anything else. You could set up the condition like this:
{
"type": "propertyChanged",
"config": {
"property": "state",
"newValue": "published"
}
}
You might use something like this to fire off a web hook to notify the presentation tier that a new article is being made available.
Example #4
Suppose you wanted to test for cases where a state property changes from published to archived. You could set up the condition like this:
{
"type": "propertyChanged",
"config": {
"property": "state",
"oldValue": "published",
"newValue": "archived"
}
}
You might use something like this to fire off a web hook to copy an article down to a third-party DB when a node transitions from published to archived specifically.