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 oldValue and newValue are empty, the condition will trigger whenever a property changes on a node. The property may change from any value to any other value.
  • if oldValue is provided but newValue is empty, the condition will trigger whenever the property changes AND the oldValue matches. The property may change to any new value.
  • if oldValue is empty but newValue is provided, the condition will trigger whenever the property changes AND the newValue matches. The property may change from any new value.
  • if both oldValue and newValue are 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.