Activation Condition Expression Reference - Jamf Pro Blueprints Configuration Guide

Jamf Pro Blueprints Configuration Guide

Solution
Application
Content Type
Technical Documentation
Utilities & Services
ft:locale
en-US

A condition expression is the syntax used to define when to activate a blueprint's configurations. Each condition expression evaluates device attributes or Jamf-defined properties to determine whether a configuration activates on the device. When the condition expression is true, the configuration activates. When it is false, the configuration remains inactive for that device. You can join multiple expressions using logical operators to build more complex conditions.

Status Item Condition Structure

Every condition expression consists of three parts: a status item, an operator, and a value.
Note:Status items are specific Apple declarative device management items. For information on using the Jamf-defined property, @property(jamf.device.groups), see the Jamf Properties table.
ElementSyntaxNotes
Status item@status(item.name)A fact the device reports about itself. Always wrapped in @status(item.name).
String value'iPhone'Must be wrapped in single quotes.
Boolean valuetrue / falseNo quotes. Lowercase only.
No condition(leave blank)Blueprint activates on all devices in scope.
Example:
@status(device.model.family) == 'iPhone'

Commonly Used Status Items

Status items are the device facts available for use in condition expressions. For the full list, see the apple/device-management/declarative/status repository on GitHub.

Status ItemTypeExample Values
device.model.familyStringiPhone, iPad, Mac, AppleTV
device.model.identifierStringiPhone15,2
device.operating-system.versionString17.4.1
device.identifierStringDevice UDID
passcode.is-compliantBooleantrue, false
device.is-supervisedBooleantrue, false

Supported Operators

OperatorMeaningExample
==Equals@status(device.model.family) == 'iPhone'
!=Does not equal@status(device.model.family) != 'Mac'
IN {…}Matches any value in list@status(device.model.family) IN {'iPhone', 'iPad'}
< > <= >=Numeric / version comparison@status(device.operating-system.version) >= '17.0'

Logical Operators for Joining Conditions

KeywordMeaningExample
ANDBoth conditions must be true@status(device.model.family) == 'iPhone' AND @status(passcode.is-compliant) == true
OREither condition can be true@status(device.model.family) == 'iPhone' OR @status(device.model.family) == 'iPad'
NOTCondition must be falseNOT @status(device.model.family) == 'Mac'

Status Item Condition Examples

ScenarioCondition Expression
iPhone devices only@status(device.model.family) == 'iPhone'
iPhone or iPad devices@status(device.model.family) IN {'iPhone', 'iPad'}
Supervised iPhone devices with compliant passcode@status(device.model.family) == 'iPhone' AND @status(device.is-supervised) == true AND @status(passcode.is-compliant) == true
iOS 17 or later@status(device.operating-system.version) >= '17.0'
Everything except Mac computers@status(device.model.family) != 'Mac'

Common Authoring Mistakes

MistakeIncorrectCorrect
Single equals instead of double equals@status(device.model.family) = 'iPhone'@status(device.model.family) == 'iPhone'
Missing single quotes around string values@status(device.model.family) == iPhone@status(device.model.family) == 'iPhone'
Incorrect capitalization of string values@status(device.model.family) == 'iphone'@status(device.model.family) == 'iPhone'
OR chain instead of IN for multiple values... == 'iPhone' OR ... == 'iPad'... IN {'iPhone', 'iPad'}
Quotes around boolean values@status(passcode.is-compliant) == 'true'@status(passcode.is-compliant) == true

Jamf Properties

Use @property(jamf.device.groups) to target devices based on their device group membership. Device groups are defined in Jamf and are not Apple declarative device management status items. You cannot use @property(jamf.device.groups) with @status(jamf.device.groups).

OperatorMeaningExample
ANY … IN {…}Device belongs to at least one of the listed groupsANY @property(jamf.device.groups) IN {'groupA', 'groupB'}
NONE … IN {…}Device does not belong to any of the listed groupsNONE @property(jamf.device.groups) IN {'groupA', 'groupB'}