Over-the-air (OTA) updates
Learn how to configure OTA updates in Spotflow, understand how to create and manage firmware versions, and roll out updates to your devices.
Over-the-air (OTA) updates allow you to remotely update firmware without physical access to the device.

Device OTA Integration
Spotflow allows you to manage OTA updates for your embedded devices.
Guide: Over-the-air updates with Zephyr or Nordic nRF Connect SDK
The Spotflow device module can automatically handle and install OTA updates for your firmware. Optionally, it also allows you to handle the firmware update process yourself by calling your own function.
Firmwares & Firmware Versions
Firmwares are tracked in Spotflow, and each firmware can have multiple versions. A firmware version represents a specific build that can be deployed to devices.

Firmware Image
Each firmware version is associated with a firmware image file, such as a .bin file, that contains the binary flashed to devices.

Deployment Cohort
Deployment cohorts allow you to organize your devices into logical groups for targeted OTA updates. You can assign devices to deployment cohorts by selecting them manually or by choosing devices based on their tags. This enables you to roll out firmware updates to specific subsets of your device fleet.

Device Tags
Device tags are key-value pairs that can be assigned to devices to categorize and filter them and to move them efficiently between deployment cohorts. For example, you could tag devices with their location, model, or hardware version. This allows you to create deployment cohorts based on these tags and target specific devices for OTA updates.

Deployments
A deployment represents the process of rolling out a specific firmware version to a deployment cohort. When you create a deployment, you select the firmware version to be deployed and the target deployment cohort.
A deployment can include multiple firmware packages, with one firmware marked as main in the UI. If the selected firmware is marked as main, the update is handled directly by the Spotflow device SDK. Updates of other firmware packages are handled by callbacks in your device code.

You can monitor deployment progress, see which devices updated successfully, and identify any devices that encountered issues during the update process. If a deployment is active for a cohort, it is propagated to devices that are already in the cohort and also to devices added to the cohort later.
Each device in a deployment goes through the following states:
- Pending — The device is queued and waiting to receive the update.
- In Progress — The update manifest was sent to the device and it is installing the update.
- Succeeded — The device successfully completed the update.
- Failed — The device encountered an error during the update.
- Cancelled — The update was cancelled before the device completed it.

Learn more
How is this guide?