Everything that happens to a device, in one place.

From the moment a handset is unboxed to the moment it is wiped and returned. Mobidachi covers the whole lifecycle, and writes down every step of it.

The Mobidachi console on the dark theme: the icon rail, the device sub-navigation and filters, and the inventory listing each handheld with its model, management state and compliance status.
The lifecycle

Six stages, one system of record.

Most fleets lose track between the stages, not inside them. Every handover below happens in the same console, against the same audit trail.

  1. BindConnect Android Enterprise once, per business.
  2. EnrollA provisioning code, scanned at device setup.
  3. GovernPolicies assigned to groups, not to lists.
  4. DeployApps approved once, pushed by rule.
  5. WatchCompliance, incidents and diagnostics, continuously.
  6. RetireWipe or deprovision, recorded either way.

Devices

Every device you have enrolled, with its hardware, its owner, its policy and whether it is following the rules. Enrollment starts from a setup code. The record only appears once the device really finishes setup, not when somebody types it in.

  • Filter by region, location, department or employee
  • Assign and reassign to employees, with a reason recorded
  • Last-seen time and management state, phrased honestly
  • Enrollment codes that expire, and can be revoked before use

Replaces: A spreadsheet of serial numbers that was last accurate in March.

The device inventory narrowed by two filters, with the rail showing management state and model selected and a count of two applied filters, and every remaining row a Honeywell EDA52.

Policies

Draft it, check it, publish it. A policy points at a group: a device category, a model, a region, a department or a job role. So a device you enroll next month gets the right policy without anyone having to remember.

  • Validate against the device platform before anything is pushed
  • Per-device rollout results, with retry limited to the ones that failed
  • Roll back to the previously published version
  • Version history, so you can see what changed and when

Replaces: A configuration one administrator understands and nobody has written down.

A warehouse policy in draft, showing its published version and the validate and publish controls above the draft's password, lock and restriction settings.

Applications and deployments

Approve apps in Managed Google Play through the console, then deploy by rule. Force-install the ones the job depends on, make the optional ones available, block the rest.

  • Public, private and web apps in one catalogue
  • Force-installed, available, blocked or kiosk per deployment
  • Pause, resume, cancel or retry a rollout mid-flight
  • Rollout status per device, not just a batch percentage

Replaces: Sideloading an APK onto each handset as it comes back to the depot.

Per-device results for an application rollout: 85 applied, 52 pending and 23 failed, with each device listed by status and one failure explaining that the install was blocked by an overlapping assignment.

Commands

Lock, wipe, reboot, reset a passcode, mark a device lost. Destructive commands require the operator to re-enter their own password, and each is issued exactly once even when the request is retried over a bad connection.

  • Lock, wipe and deprovision are re-authenticated at the point of use
  • Retrying a failed request replays the result instead of firing twice
  • Full command history per device, with status and outcome
  • Deprovision is presented as its own decision, not a louder wipe

Replaces: A phone call to the branch, and hoping.

The commands view for one handheld: buttons to lock, wipe, deprovision, reboot and request information, the device's agent credential and last heartbeat, and a history of completed commands with the times they were queued and finished.

Compliance and incidents

The device platform tells us when something is wrong. An incident opens when a device drifts out of policy, and closes itself once the device recovers. The record shows whether the system closed it or a person did.

  • Violations per device and across the fleet
  • Incidents opened automatically, or by hand for anything else
  • Acknowledge and resolve, with who did it and when
  • Diagnostics and power events on the device record

Replaces: Finding out at the audit.

Compliance violations across the fleet — encryption disabled, password policy not met, kiosk mode exited — each naming the device, its severity and whether it is open or acknowledged.

Audit, users and roles

Eight roles from full tenant administrator to read-only viewer, enforced on the server for every request. Everything that changes state is written down, whether it succeeded or failed.

  • The console hides what a role cannot do rather than failing on click
  • Auditors get a role that reads everything and changes nothing
  • Every action carries a reference support can trace
  • Several businesses can be operated from one console, kept separate

Replaces: A shared administrator login.

The audit log: each entry pairs an action such as incident.open or policy.draft.update with the exact record it touched, given as a type and identifier, and whether the request succeeded.
Underneath

The parts nobody demos, that decide the procurement review.

Architecture questions come up late and stop deals. They are answered here instead.

Built on Android Enterprise
Management runs through Google's own device management surface, not a proprietary agent asking for trust it has not earned.
Tenants are isolated
Each business has its own devices, policies and users. Ask for something in the wrong tenant and you do not get a permission error. You get nothing at all, so nobody learns what exists.
Permissions enforced server-side
The console derives what it shows from the same grants the API enforces, so a hidden button and a refused request never disagree.
Everything mutating is recorded
Successes and failures both. Operators see across every tenant. A business sees only its own.
Every response is traceable
Each request carries an id that appears in the response, in the error shown to the user, and in the server logs. A support ticket starts with a reference rather than a guess.
Sessions survive real use
Token rotation is single-flight, so eight parallel requests renewing at once cannot sign a user out mid-session. Refresh reuse is treated as theft and ends the session.

There is an API, and it is the same one the console uses.

Every response carries the same envelope and a request id. Errors are identified by a stable code rather than a message you have to string-match. Nothing the console can do is hidden behind a private endpoint.

Ask us for the API docs
GET /api/v1/devices?page=1&page_size=25
Authorization: Bearer <access_token>

{
  "success": true,
  "data": {
    "items": [ /* … */ ],
    "page": 1,
    "page_size": 25,
    "total": 137,
    "total_pages": 6
  },
  "error": null,
  "request_id": "req_a1b2c3d4e5f6a7b8c9d0"
}

See it against your own fleet.

Enrollment, a policy rollout and the audit trail, in under half an hour.