Skip to main content

Alerts Custom Report

The alert custom report type can be used to query for low supply, service, volume, and replacement alerts for a device.

Clark McCauley avatar
Written by Clark McCauley
Updated over 4 months ago

What it is

The Alert report type lists events generated for a device (e.g., “low toner,” “device offline,” “paper jam,” or other rule-based events). Each row represents a single alert, including when it occurred, what triggered it, which device/entity it applies to, and its current status (acknowledged/resolved details). It also carries the relevant device context (make/model/serial, IP/hostname, location, etc.) so you can investigate or route work without joining other report types.

Practical applications

Use the Alert report to:

  • Triage service issues: find unacknowledged or unresolved alerts across all customers and assign tickets.

  • Supply fulfillment: filter to low-supply alerts (with color/part info and remaining level) to ship replacements proactively.

  • SLA and response tracking: measure time-to-acknowledge or time-to-resolve per customer, device group, or technician.

  • Noise reduction: identify devices/entities producing excessive alerts to improve configurations or device health.

  • Audit history: review what happened on a device (and who acknowledged it) around a given date/time.

Supported columns

Tips

  • Fields marked (nullable) may be empty when the device doesn’t provide the data or it wasn’t applicable at alert time.

  • remaining is the supply level as reported at alert time. Most devices report a percent 0–100.

Alert metadata

Column

Type

Description

id

string

Unique identifier for the alert.

timestamp

datetime

When the alert was raised.

description

string

Human-readable description of the alert.

alert_type

string

Category of alert. One of:

  • "Low supply",

  • "Low maintenance supply"

  • "Replacement"

  • "Premature replacement"

  • "Service"

  • "Volume"

resolution_status

string

Workflow status for the alert. One of:

  • "New"

  • "In Progress"

  • "Resolved"

Acknowledgement workflow

Column

Type

Description

acknowledged

bool

Whether the alert has been acknowledged.

acknowledged_user

string (nullable)

Display name of the user who acknowledged the alert.

acknowledged_user_id

string (nullable)

ID of the acknowledging user.

acknowledged_note

string (nullable)

Optional note added at acknowledgement.

acknowledged_timestamp

datetime (nullable)

When the alert was acknowledged.

Device context

All of these columns contain current up-to-date data

Column

Type

Description

entity_id

string

ID of the entity (customer/site) that owns the device.

entity_name

string (nullable)

Name of the entity.

device_id

string

Internal device ID.

device_make

string (nullable)

Manufacturer (e.g., HP, Brother).

device_model

string (nullable)

Model (e.g., OfficeJet 8600).

device_serial_number

string (nullable)

Device serial number.

device_mac_address

string (nullable)

Device MAC address.

device_ip_address

string (nullable)

Device IP address.

device_hostname

string (nullable)

DNS hostname.

device_firmware

string (nullable)

Firmware version/datecode.

device_location

string (nullable)

Location reported by the device or configured by users.

device_asset_id

string (nullable)

Your internal asset/inventory ID.

device_integration_id

string (nullable)

External/integrated system device ID (e.g., ERP's identifier). Only applicable when the Print Tracker data processor is being used.

device_managed

bool

Whether the device is managed in your account.

device_note

string (nullable)

Free-form notes attached to the device.

dynamic_device_group

string (nullable)

Name of the dynamic group the device currently belongs to.

Meter/supply linkage

Column

Type

Description

meter_id

string

The meter read associated with the alert.

supply_id

string (nullable)

Identifier of the specific supply item related to the alert.

Supply details

Column

Type

Description

supply

string (nullable)

Supply name (e.g., Black Toner, Waste Toner).

supply_type

string (nullable)

Type/classification as reported by the device (e.g., toner, drum).

supply_color

string (nullable)

Color channel (e.g., black, cyan, magenta, yellow).

supply_description

string (nullable)

OEM description string.

supply_part_number

string (nullable)

Part number/FRU for the supply.

supply_serial_number

string (nullable)

Supply serial/lot if provided.

remaining

number (nullable)

Supply level at alert time (commonly percent remaining 0–100).

Alert's meter read

Alerts are fired in response to a meter read being uploaded that triggers a configured threshold. The meter associated with an alert in this report type is available in the meters table and can be joined using the meter_id column.

Tips

  • Find work to do: WHERE acknowledged = 0 AND resolution_status = 'open' to surface actionable alerts.

  • Prioritize by customer: group by entity_name to see which customers need attention first.

  • Supply planning: filter by alert_type for supply alerts and sort by remaining ascending to ship replacements proactively.

  • Ownership & audit: include acknowledged_user, acknowledged_timestamp, and acknowledged_note in queues and exports.

Examples

Low-supply alerts in the last 24 hours (with meter counts)

SELECT
DATETIME(a.timestamp) AS "Timestamp (UTC)",
a.entity_name AS "Entity",
a.device_make || ' ' || a.device_model AS "Device",
a.device_serial_number AS "Device Serial Number",
a.device_asset_id AS "Asset ID",
a.alert_type AS "Alert Type",
a.description AS "Description",
a.supply AS "Supply",
a.remaining AS "Remaining (%)",
m.pageCounts_default_total AS "Total Pages",
m.pageCounts_default_totalBlack AS "Total Black",
m.pageCounts_default_totalColor AS "Total Color",
a.acknowledged AS "Acknowledged",
a.acknowledged_user AS "Acknowledged By",
DATETIME(a.acknowledged_timestamp) AS "Acknowledged Timestamp"
FROM alerts a
LEFT JOIN meters m ON m.meter_id = a.meter_id
WHERE DATETIME(a.timestamp) >= DATETIME('now', '-24 hours')
AND a.alert_type = 'Low supply'
ORDER BY a.timestamp DESC;

Service alerts with acknowledgement details

SELECT
DATETIME(a.timestamp) AS "Timestamp (UTC)",
a.entity_name AS "Entity",
a.device_make || ' ' || a.device_model AS "Device",
a.device_serial_number AS "Device Serial Number",
a.alert_type AS "Alert Type",
a.description AS "Description",
m.pageCounts_default_total AS "Total Pages",
m.pageCounts_default_totalBlack AS "Total Black",
m.pageCounts_default_totalColor AS "Total Color",
a.acknowledged AS "Acknowledged",
a.acknowledged_user AS "Acknowledged By",
DATETIME(a.acknowledged_timestamp) AS "Acknowledged Timestamp"
FROM alerts a
LEFT JOIN meters m ON m.meter_id = a.meter_id
WHERE a.alert_type = 'Service'
ORDER BY a.timestamp DESC;

Any alerts with supply below 25% in the last 30 days

SELECT
DATETIME(a.timestamp) AS "Timestamp (UTC)",
a.entity_name AS "Entity",
a.device_make || ' ' || a.device_model AS "Device",
a.device_serial_number AS "Device Serial Number",
a.device_asset_id AS "Asset ID",
a.alert_type AS "Alert Type",
a.description AS "Description",
a.supply AS "Supply",
a.remaining AS "Remaining (%)",
m.pageCounts_default_total AS "Total Pages",
m.pageCounts_default_totalBlack AS "Total Black",
m.pageCounts_default_totalColor AS "Total Color",
a.acknowledged AS "Acknowledged",
a.acknowledged_user AS "Acknowledged By",
DATETIME(a.acknowledged_timestamp) AS "Acknowledged Timestamp"
FROM alerts a
LEFT JOIN meters m ON m.meter_id = a.meter_id
WHERE DATETIME(a.timestamp) >= DATETIME('now', '-30 days')
AND a.remaining IS NOT NULL
AND a.remaining < 25
ORDER BY a.remaining ASC, a.timestamp DESC;

Did this answer your question?