Skip to content

Fleet Overview

The Fleet page (/fleet) is where you spend most of your time. One page, one URL, five tabs, scoped by a drill-down ladder that runs from “everything across every tenant” down to “just this group of endpoints at this site.”

The scope ladder

Across the top of the page, breadcrumbs show your current scope. You can be at one of four levels:

ScopeURLShows
Global/fleetAll clients across every location. Default landing.
Client/fleet?client=<id>One client; all their locations and resources.
Location/fleet?client=<id>&location=<id>One site within one client.
Group/fleet?client=<id>&location=<id>&group=<id>A named group of endpoints within a location.

Drill down by clicking the client card, then the location card, then the group filter. Step back up via the breadcrumbs.

The scope filters cascade through every tab. If you’re at location scope, the Endpoints tab shows only that location’s endpoints, and the Printers tab shows only printers at that location (with one exception; see Printers tab below).

The five tabs

Endpoints

Every machine that’s reporting in via the bootstrap script. Statuses:

  • Active (green): registered and reporting normally
  • Pending (yellow): checked in, awaiting your approval. A pending endpoint won’t reconcile any queues until you approve it; ZenPrint never auto-activates one.
  • Inactive (gray): deactivated, no longer pulling reconcile

What you can do here, depending on role and scope:

  • Approve / Deactivate an endpoint
  • Force Reapply: flags the endpoint to treat every queue as drifted on the next reconcile run. Use it for tamper recovery, when someone manually edited printer settings on the machine.
  • Delete: hard-removes the endpoint record and its installations. Cascades to remove related rows.
  • Assign to group: drop the endpoint into a named group at its current location.

The endpoint detail drawer opens when you click an endpoint row. It shows the queues installed on this endpoint, where each one came from (Direct, Group: <name>, or Location: <name>), and any unmanaged queues the endpoint is reporting (queues that exist on the machine but aren’t in ZenPrint’s desired state).

Printers

Every printer device known to ZenPrint. The status badge reflects its lifecycle:

  • Active (green): has installed queues, in active use
  • Discovered (blue): found by scan, no queues yet
  • Missing (red): endpoints that used to see it have scanned since without finding it (see Health below)
  • Dismissed (gray): you explicitly hid it. The MAC stays on a blocklist so it won’t re-create on the next scan.

Health

A Health strip above the table summarizes the current scope: how many printers are confirmed, missing, and stale. It follows the scope ladder, so scope to a client or a location and you see that scope’s numbers, and it ignores the table filters, so filtering the list below doesn’t change the summary.

On each printer row, the freshness shows in the colour of the “last seen” line under the status badge: gray when confirmed, amber when stale, red when missing. Hover the warning icon on a stale or missing row to see which endpoint last confirmed it.

  • Confirmed: an endpoint saw this printer on a recent scan (recent means within the last 7 days by default).
  • Stale: no scan has confirmed it lately, either because it went quiet or because no endpoint has scanned it yet. A freshly set-up fleet reads as mostly stale and turns confirmed as endpoints run their scans.
  • Missing: a printer that was being seen has gone. ZenPrint only marks it missing once every endpoint that previously saw it has scanned again without finding it, so a slow or paused scan schedule reads as stale, not missing.

Use the Health filter next to the Status filter to show only confirmed, stale, or missing printers. The filter narrows the list; the strip above keeps counting the whole scope.

Because scans run on demand from your RMM, all of this only moves when scans actually run. A printer goes missing on the scan that first fails to find it, not on a timer. That flip is also what fires the printer.offline webhook, once. It won’t re-fire on later scans while the printer stays missing, and re-arms if the printer comes back.

Supply levels

Printers that respond to SNMP show their toner and ink levels under the model: one coloured dot per cartridge, in its actual colour (black, cyan, magenta, yellow, read from the printer’s colorant table, not its language) followed by the percentage. A cartridge that’s low turns red. A cartridge whose level the printer reports as unknown shows with no percentage. Hover a dot for its full name. That’s all the column shows, so a glance down the fleet tells you which printers need toner.

Everything else the printer reports lives one click away. Under the dots is a Supply details link that expands a table of every supply: toner and ink again, plus drums, fuser and transfer kits, the waste box, and maintenance counters. Each row shows the supply name, its type and class, the level (current over maximum, as the printer reports it), the percentage, the state, and a colour swatch where the printer gives one. Rows are sorted by importance: toner and ink first, then drums, then the rest. Use it to answer “why does ZenPrint show this for that printer?” without leaving the page. Click again to collapse it. When a supply that isn’t a toner runs low (a waste box filling up, a kit near end of life), a red warning icon appears next to the Supply details link so you don’t have to expand every printer to find it, and the low row is flagged with the same icon. The poll time is shown at the bottom of the table.

Below the supply table, the same drawer shows a Device section: facts the same poll reads off the printer, such as firmware version, the print languages it supports (PCL, PostScript, and so on), whether it prints in colour, its lifetime page count, and its contact and uptime. Only the facts a given printer actually reports appear, so the list varies by model. These are shown for information only. ZenPrint does not track or flag firmware versions or page counts, it just displays what the printer reports.

Levels come from the supply poll, a separate script your RMM runs on its own schedule. You choose which endpoints run it (the same way you choose which run scan). Each endpoint polls every printer at its location, so a single endpoint at a site covers that site’s printers, and it doesn’t have to be the one that discovered them. ZenPrint dedups when several endpoints report the same printer, so overlapping coverage is fine. (A printer just has to have been discovered by some scan first.)

When a supply drops to or below 15%, ZenPrint fires a per-consumable supply.low.* webhook (for example supply.low.toner) once. Only the primary consumables alert; the collapsed maintenance counters never do. It stays quiet until the supply is refilled and runs down again. Coverage depends on the printer: ZenPrint reads SNMP v2c and v1 with the public community, so printers with SNMP disabled, locked to v3, or using a non-default community won’t report supplies.

At group scope, the Printers tab works differently from the other scopes. Instead of showing every printer physically at the parent location, it shows printers the group actually uses: printers with queues installed on group-member endpoints, or printers assigned to the group directly. So cross-location printers (a shared satellite-office printer the group reaches over VPN) show up where they belong, and site-local printers the group has nothing to do with don’t.

Placement

Each printer has a free-text Placement field for where it physically sits within the site, e.g. “Reception, 2nd floor”, separate from its location (the site/office itself). Set it from the printer’s Edit dialog. At a location or group scope it appears as its own column; at the global and client scopes it shows as a 📍 line under the location. Handy for telling a tech which physical machine to walk to.

If the printer reports an SNMP sysLocation, scan seeds Placement from it the first time the printer is discovered, so a printer whose location is set in its own web console arrives already labelled. The seed only fills an empty field. Once you (or an earlier scan) have set a placement, later scans leave it alone, so your edit always wins. To re-seed from the device, clear the field and let the next scan run.

Per-printer actions:

  • Edit: manufacturer, model, hostname, serial, placement
  • Capture: flag for driver capture (see Capturing Drivers)
  • Dismiss / Restore: toggle blocklist status (only available on Discovered or Missing printers; you can’t dismiss a printer that has queues)
  • Accept IP / Dismiss IP: when scan detects an IP change, the printer’s pending_ip is set, and the operator decides whether to accept the move
  • Delete: cascades to remove queues, assignments, and installations

Bulk actions: Decommission and Activate. Decommissioning a printer flips its status and marks its queues for removal, and the next reconcile run cleans them off endpoints.

Queues

Every print queue declared in ZenPrint. Each row is one queue, one printer, one driver. Filtering shows queues at the current scope (location-scope queues, group-scope, endpoint-direct).

Per-queue actions:

  • Edit: rename, change driver, change settings
  • Delete: removes the queue and all its assignments and installations
  • Assign: open the assignment modal and target this queue at a location, group, or endpoint

Bulk actions:

  • Change driver: swap driver on N selected queues (for example, you captured a newer driver and want to roll it out)
  • Delete: wipe N queues
  • Bulk assign / unassign: target N queues at a location, group, or endpoint in one operation

Unmanaged

Every print queue found on an endpoint that ZenPrint doesn’t manage. These are queues a user or an old deployment left on the machine, the kind the endpoint reports but that aren’t in ZenPrint’s desired state. The tab is scoped by the same ladder as the others, so you can narrow to a client, a location, or a group.

Each queue is sorted into one of four states based on what ZenPrint knows about the printer behind it:

  • Redundant: a ZenPrint queue already covers this printer on this endpoint. The unmanaged one is a duplicate, so it’s safe to clean up.
  • Deployable: ZenPrint has a queue for this printer, it just isn’t deployed to this endpoint yet. Deploy it here and the unmanaged queue becomes redundant.
  • Needs queue: ZenPrint knows the printer but has no queue for it. Create a queue first.
  • Unknown: ZenPrint can’t tell what printer this queue points at. USB queues, and any WSD queue whose device ZenPrint can’t resolve, land here. These are left untouched, so a remote worker’s home printer is never a target.

The State filter lets you show one bucket at a time. Deployable rows have a Deploy action that lets you pick which of the printer’s ZenPrint queues to install on that endpoint; Needs queue rows have a Create queue action that opens the queue builder for the printer. Both move the row up toward Redundant.

Redundant rows can be cleaned up: use the row’s own Mark for removal action, or tick several rows and use the bulk Mark for removal button. Either way you confirm first. On the endpoint’s next reconcile, the duplicate is removed from Windows, but only after ZenPrint confirms its own managed queue for that printer is actually installed first, so the endpoint is never left without a working queue. A marked row shows Marked for removal until then; if reconcile can’t confirm the replacement, it leaves the queue in place and the row shows Removal deferred. Only Redundant queues can be marked, and only with the queue delete permission. Unknown queues (a remote worker’s home printer, a queue ZenPrint can’t identify) are never selectable, so they can’t be removed by accident.

Drivers

Every driver available to the tenant. Three sources:

  • Custom: uploaded via Drivers → Upload
  • Captured: pulled from an endpoint via the capture flow
  • ZenPrint Library: curated cross-tenant drivers, shared and non-deletable

Filter by the Source dropdown. The toolbar also lets you upload a new driver.

Per-driver actions:

  • Download: pull the ZIP locally (for inspection or re-upload elsewhere)
  • Delete: only when not in use. If queues reference the driver, clicking Delete opens the safe-delete modal, which lists affected queues and lets you pick a replacement driver to rebind them to before deletion proceeds.

The ZenPrint Library driver is read-only.

How filtering composes

The scope ladder (URL params) and the per-tab filters (status, search, source, group) compose. At any level you can layer:

  • Status filter, e.g. “show only Active printers”
  • Search: substring match against manufacturer, model, hostname, IP, or MAC
  • Sort: column header click

Filters reset when you change scope (clicking a different client or location card). Selection state for bulk actions resets too, and the checkbox bar clears.