History Widget
A table of recent uplinks from a single device. Each row is a single uplink with the timestamp and the chosen fields' values at that moment. Use it when users need to scan recent events row-by-row.
What it shows
A scrolling table. First column is always the timestamp. Subsequent columns are partner-chosen field values from the bound device's profile.
If your tier has multi-site, a Site column appears automatically when the rows in view span more than one site, which happens when the device has moved between locations during the window. See Sites.
Field types supported
Any field type (number, string, boolean). You can mix types across columns.
Configuring a History widget
Basics tab
| Field | What it does |
|---|---|
| Title | Header text (required, max 120 chars). |
| Device | The device whose uplinks are listed. Single device only. Implicit on device dashboards. |
Columns tab
Add up to 8 columns. Each column shows a field value for each uplink row.
For each column:
| Field | What it does |
|---|---|
| Field | Pick from the device profile's fields (data / mapping / formula). |
| Label | Column header text. Defaults to the field's display name. |
| Decimals | Number of decimal places for numeric fields (0-6). |
| Unit suffix | Optional text appended to each cell (e.g., °C, %). |
| Threshold color rules | Optional. Same threshold model as Value, applied per cell. Matching cells render in the rule's color. |
Order matters: columns render left-to-right in the order you add them. Drag rows in the editor to reorder.
Time range tab
| Field | What it does |
|---|---|
| Time range mode | inherit (use the dashboard's time picker) or custom. |
| Custom range | If custom: 15m, 1h, 6h, 24h, 7d, 30d, or explicit from/to. |
| Max rows | How many rows to show, up to 500 (default 100). |
If the time range contains more uplinks than Max rows, only the most recent are shown.
Appearance tab
| Field | What it does |
|---|---|
| Time format | datetime (date + time), date only, time only, or relative (e.g., "2m ago", "3h ago"). |
| Font size | small, medium, large. |
| Row striping | Alternate row backgrounds for legibility. |
| Compact density | Tighter row spacing for fitting more rows in a small widget. |
CSV export (device dashboards only)
For History widgets on device dashboards, you can enable end-user CSV download:
- Open the widget config drawer.
- Allow export toggle (visible only on device-scope dashboards).
When enabled, end users see a Download CSV button on the rendered widget. The export contains the visible rows and configured columns. The filename includes the device's DevEUI so multiple exports stay distinct.
This toggle isn't visible on partner-scope dashboards because partner-scope CSV export already exists without per-widget opt-in.
What History doesn't do (yet)
- No in-table search. To narrow rows, change the time range.
- No per-column filters. Same: narrow via time range.
- No pagination beyond the row cap. If a device sends thousands of uplinks in your time range, you'll see the most recent
Max rows. Reduce the time range to walk through earlier rows. - No row drill-down. Click on a row in the table doesn't open the underlying uplink event. Use the device's Events tab for that.
These are all on the roadmap. The History widget today is intentionally lightweight; if you need search and pagination, the Events tab on the device detail page is the heavier tool.
Tips
- For "what's the device been doing lately?", use 6-8 columns covering the most important fields, time format
relative, max 50 rows. Reads as a clear activity feed. - For "show me when a specific value spiked", use threshold color rules on the relevant column. Out-of-bound rows leap out visually.
- Pair a History widget with a Chart widget showing the same fields. Chart shows the trend; History shows the exact values.
- Use
compact densitywhen fitting in a narrow widget slot.
When to use a different widget
- For a list across multiple devices (e.g., "all devices' latest readings") -> Use a Chart with one series per device. History is single-device only.
- For a single current value -> Value widget.
- For trends -> Chart widget.
- For audit-level event detail (decode errors, downlinks, system events) -> the device's Events tab rather than a History widget.