Smart Device Groups let you automatically group devices based on hardware specs (CPU, memory, OS version, model) and custom Extension Attributes (like environment, app versions, or security posture).
This article describes the key capabilities introduced in the Smart Device Group rule builder in the Swif web app.
What’s new in Smart Device Groups?
With this release you can:
Build Smart Device Groups using:
Device specs (CPU architecture, memory, OS version, model, etc.)
Extension Attributes (customer-defined key/value metadata)
Existing “legacy” rules (labels, owners, compliance, etc.)
Combine all of these conditions in a single group using AND/OR logic.
Re-use the same field multiple times (e.g., multiple OS versions in one group).
See a live “Matching Devices” counter as you adjust rules.
Easily review all rules on the Device Group details page with a “View All” toggle.
This unlocks dynamic, incident-driven groups such as:
“All Apple laptops with Intel chips and 8GB RAM”
“All production servers where has_vulnerable_package_P is true”
“All Windows devices with OS version between 10.0 and 10.2 and Environment = QA”
1. Building Smart Device Groups with Device Specs
When you create or edit a Smart Device Group:
Go to Devices → Device Groups → Create Group and choose Smart Group.
In the rule builder, click + Add Condition.
Choose Device Spec as the source.
Pick a field from the dropdown (for example, OS Version, Memory (GB), CPU Architecture, Device Model).
Device spec field catalog
The list of device spec fields is fetched directly from Swif’s backend field definitions.
Only active fields are shown; inactive fields are hidden or disabled.
Each field is typed (Number, Text, Boolean, List), and the operators you see are based on that type.
Supported operators by field type
The rule builder supports a rich operator set, driven by the backend:
Number attributes (e.g., memory, OS version as numeric, CPU cores):
equalsgreater thanless thanbetweenexistsdoes not exist
Text attributes (e.g., model, OS version string, vendor):
equalsdoes not equalcontainsdoes not containexistsdoes not exist
Boolean attributes (e.g., is_laptop, has_tpm, is_server):
is Trueis False
List attributes (e.g., installed extensions, tags):
containsdoes not containcontains any ofcontains all of
Suggested vs manual values
When you select a field:
If the backend exposes suggested values (for example, for OS versions, CPU architectures, or known attribute values), the value input will show a dropdown/autocomplete list.
You can still type any value, even if it’s not in the suggested list.
This is useful when:A new OS version has just been released and is not yet in the suggestions.
You want to target a custom or less common value.
The group will save successfully whether you choose a suggested value or type your own.
2. Using Extension Attributes in Smart Device Groups
Extension Attributes are custom key/value metadata attached to devices (for example: Environment, has_vulnerable_package_P, BusinessUnit, BackupStatus).
To add an Extension Attribute rule:
In the Smart Group rule builder, click + Add Condition.
Select Extension Attribute.
Choose an attribute key from the dropdown.
Only active (non-archived) attributes are selectable.
Choose an operator supported by that attribute’s value type (Number/Text/Boolean/List).
Enter or select a value.
Example rules:
Extension Attribute: Environment equals "Prod"Extension Attribute: has_vulnerable_package_P is TrueExtension Attribute: installed_plugins contains "legacy-plugin"
This builds on the existing Extension Attributes feature set. For more background on how attributes are defined and updated, see:
How to Edit Device Extension Attributes via Webhook API | Help Center | Swif.ai
3. Combining multiple rules and logic (AND/OR)
Smart Device Groups now support flexible rule logic:
Multiple conditions in one group
Use + Add Condition to add several rules (mix of device specs, extension attributes, and legacy rules).Re-use the same field multiple times
For example:OS Version equals "13.0"OROS Version equals "14.0"CPU Architecture equals "arm64"ORCPU Architecture equals "x86_64"
Condition groups and logical expressions
To express more complex logic:
Use + Add Condition Group to create nested groups of conditions.
Each group can:
Contain multiple conditions.
Use ALL (AND) or ANY (OR) between its conditions.
Groups can be combined with other groups and standalone conditions to form powerful expressions.
Examples:
Aerospike example: “All Apple laptops with Intel chips and 8GB RAM”
You might configure rules like:
Device Spec: CPU Family equals "Intel"Device Spec: Memory (GB) equals 8Device Spec: Device Model contains "MacBook"
Multi-version macOS group for testing
Group 1 (ANY):
Device Spec: OS Version equals "13.0"Device Spec: OS Version equals "14.0"
Group 2 (ALL):
Extension Attribute: Environment equals "QA"Extension Attribute: has_vulnerable_package_P is False
Then combine Group 1 AND Group 2 to get:
QA machines on either macOS 13 or 14, without the vulnerable package.
Note: While the UI supports grouped logic, the exact supported patterns depend on the backend capabilities shipped with Smart Device Groups. The UI always prevents syntactically invalid configurations (for example, missing required values).
4. Matching Devices counter
At the bottom of the Smart Group builder you’ll see a Matching Devices section.
Whenever you change rules (add/edit/remove conditions), Swif:
Recalculates how many devices match the entire rule set.
Shows a brief loading state while the count is updated.
Once updated, the counter shows the current, accurate number of matching devices.
This helps you:
Quickly sanity-check that your rules are scoped correctly.
Avoid accidentally creating groups that are too narrow (0 devices) or too broad (thousands of devices).
If there’s an error while fetching the count (for example, a temporary backend issue), the UI will show a clear error state instead of stale data.
5. Reviewing rules from the Device Group details page
After creating or editing a Smart Device Group:
Go to Devices → Device Groups and open your Smart Group.
On the details page:
You’ll see a summary of how many rules are configured.
A “View All” action lets you expand and see the full rule set.
You can collapse the detailed view again when you’re done reviewing.
This design replaces earlier tooltips, which were not suitable for complex rule sets, and makes it easier to:
Audit which specs and attributes define the group.
Understand why a particular device is (or is not) a member of the group.
The Devices tab under the group shows all devices that currently satisfy the rules. As devices’ specs or attributes change, membership is updated automatically.
6. Validation and error handling
The Smart Device Group builder includes guardrails so you don’t create invalid configurations:
You can’t save a group if:
A rule is missing a required value for its operator (for example, “greater than” with no number).
A rule uses an attribute/field that is no longer active.
If the backend returns an error when saving:
The error is surfaced clearly in the UI.
You can adjust your rules and retry without losing your work.
7. How this works with existing Device Groups and policies
This feature is fully compatible with your existing workflows:
Legacy rules (labels, owners, compliance, etc.) still work and can be:
Used on their own, or
Combined with device spec and Extension Attribute rules in the same group.
From a group, you can continue to:
Attach policies, applications, commands, and compliance controls.
Use features like archive/unarchive, lock/unlock, and uptime monitoring.
Smart Device Groups simply give you a more powerful and flexible way to define which devices each of those controls apply to.
Related resources
Manage Extension Attributes via webhook API:
How to Edit Device Extension Attributes via Webhook API | Help Center | Swif.aiExtension Attributes changelog:
Extension Attributes


