How Mambo Determines a Device's State
Every managed device in Mambo is assigned one of five states. The system decides which state a device is in by checking a series of conditions in order. The first condition that matches determines the state.
What the System Looks At
The system uses two signals that every managed device periodically sends back to the server:
| Signal | What It Means |
|---|---|
| Heartbeat | A periodic "I'm alive" ping from the device |
| Status Report | A periodic update from Google's management service containing detailed device information |
It also uses the enrollment time — the moment the device was first registered with Mambo.
The Five Device States
| State | What It Means |
|---|---|
| Pending Delete | The device has been marked for removal and is waiting to be fully deleted |
| Enrolled | The device was recently set up and hasn't had enough time to establish a regular reporting pattern |
| Inactive | The device has gone completely silent — no communication in a long time |
| Active / Offline | The device has communicated recently, but not in the last day |
| Active / Online | The device is actively communicating right now (or very recently) |
How the State Is Determined
Checked in order — first match wins:
| Step | Question | If Yes | If No |
|---|---|---|---|
| 1 | Has the device been marked for deletion? | Pending Delete | Go to step 2 |
| 2 | Is the device still within its first 48 hours since enrollment? (Both the heartbeat and status report haven't moved beyond 48 hours past enrollment) | Enrolled | Go to step 3 |
| 3 | Has the device been silent for over 30 days? (Both the heartbeat and status report are either missing or older than 30 days) | Inactive | Go to step 4 |
| 4 | Has it been more than 24 hours since the device last communicated? (Both the heartbeat and status report are older than 24 hours) | Active / Offline | Go to step 5 |
| 5 | (None of the above matched) | Active / Online | — |
Deciding "Inactive" in Detail
Step 3 is the most nuanced check. The device is only considered Inactive when both signals — the heartbeat and the status report — are unavailable. If even one of them has been received in the last 30 days, the device is not Inactive.
Here is every possible combination:
| Last Heartbeat | Last Status Report | Result |
|---|---|---|
| Never received | Never received | Inactive |
| Never received | More than 30 days ago | Inactive |
| Never received | Within the last 30 days | Not inactive — continue to step 4 |
| More than 30 days ago | Never received | Inactive |
| More than 30 days ago | More than 30 days ago | Inactive |
| More than 30 days ago | Within the last 30 days | Not inactive — continue to step 4 |
| Within the last 30 days | Never received | Not inactive — continue to step 4 |
| Within the last 30 days | More than 30 days ago | Not inactive — continue to step 4 |
| Within the last 30 days | Within the last 30 days | Not inactive — continue to step 4 |
In plain terms: A device is Inactive only when neither signal has been heard from in over 30 days. If the server has received even one signal within the last 30 days, the device is still considered Active and moves on to the online/offline check.