A Condition for Install is an optional script that runs on a device before a Smart Software installation is attempted. Based on the result of that check, Addigy will either proceed with the installation or skip it. Conditions are one of the most powerful tools in Smart Software — they give you precise control over when and where software gets installed across your fleet.
While Conditions for Install are technically optional, Addigy strongly recommends configuring one for every Smart Software item. Without a condition, an installation is attempted only once and will not be retried if it fails or if the software is later removed from a device. A well-configured condition ensures your software stays installed, recovers gracefully from failures, and doesn't run unnecessarily on devices that already have the correct version. In short: conditions are what make Smart Software deployments reliable at scale.
Addigy offers two types of conditions: Prebuilt Conditions for common use cases, and Custom Conditional Commands for more advanced scenarios.
Note: If no Condition for Install is configured, the installation will only be attempted once after the item is added to a policy. Adding a condition enables the installation to be reattempted on future policy runs whenever the condition is met. For context on how this fits into Smart Software as a whole, see Smart Software Overview.
Prebuilt Conditions
Prebuilt Conditions are ready-made checks built by Addigy. They cover the most common installation scenarios and require no scripting — just check the relevant box and fill in the required values.
The available prebuilt conditions are:
- If app — Checks whether a specific application is present on the device, with an optional version comparison. The Install if app not present checkbox controls whether to install when the app is missing or when it's found.
- If OS version — Restricts installation to devices running a specific macOS version.
- If device architecture — Targets devices by architecture: Intel or Apple Silicon.
- If file exists — Checks for the presence of a file at a specified path.
- If file does not exist — Checks for the absence of a file at a specified path.
- If profile exists — Checks whether a specific profile (Device Setting) is installed on the device. You can enter a profile identifier directly or search for a profile from your Device Settings Catalog.
- If process not running — Only proceeds with installation when a specified process is not currently active.
Tip: You can enable multiple prebuilt conditions at once, and combine them with a Custom Conditional Command. All enabled conditions must be satisfied for the installation to proceed.
Tip: Directory paths do not need to be wrapped in quotes — Addigy handles this automatically. To preview the script that a condition will generate, enable the condition, fill in the required values, and click Preview command at the bottom right of the Condition for Install section.
Custom Conditional Commands
The Advanced: Custom Conditional Commands section lets you write your own shell script or command for scenarios that fall outside of the prebuilt options. Custom commands run after any enabled prebuilt conditions.
When using a custom command, Addigy determines whether to proceed with installation based on the script's exit code:
- Exit code 0 — Success
- Any non-zero exit code — Error
Install if Return Value is 0
The Install if return value is 0 checkbox controls how Addigy interprets the exit code of your custom script:
-
Enabled (default): The software installs when the script exits with code
0. This is the standard behavior and is recommended for most use cases. - Disabled: The software installs when the script exits with any non-zero code. This is useful when you're relying on a command's natural exit behavior to indicate that installation is needed.
Note: If your script does not include an explicit exit code, it will exit with
0by default. The Install if return value is 0 option requires a Custom Conditional Command to be present — it has no effect when only prebuilt conditions are used.
Frequently Asked Questions
What happens if a device doesn't meet the condition?
If a device does not meet the configured conditions, the installation is skipped and the Deployment Status for that device will report the item as Successful. This is by design — a skipped installation is not treated as a failure.
Can I use prebuilt conditions and a custom command at the same time?
Yes. You can enable any combination of prebuilt conditions alongside a Custom Conditional Command. Prebuilt conditions run first, followed by the custom command. All conditions must be satisfied for the installation to proceed.
Do I need to wrap file paths in quotes?
No. When using prebuilt conditions, Addigy automatically wraps directory paths in quotes. If you're writing a Custom Conditional Command, handle quoting manually as you would in any shell script.
How do I know what script a prebuilt condition is generating?
Enable the condition, fill in the required values, and click Preview command at the bottom right of the Condition for Install section. This shows the exact shell command that will run on the device.
Why is configuring a condition so important?
Without a Condition for Install, Addigy will only attempt the installation once. If it fails, or if the software is later uninstalled or removed from the device, it will not be reinstalled automatically. A condition gives Addigy the ability to continuously verify that the software is present and correctly installed — making your deployments self-healing and far more reliable across a large fleet.