Rule types reference
Complete parameter reference for all rule types in Blecon Track.
Common properties
Every rule has these properties:
| Property | Type | Required | Description |
|---|---|---|---|
rule_name |
string | Yes | Human-readable name for the rule |
rule_type |
string | Yes | One of the types listed below |
parameters |
object | Yes | Rule-specific configuration |
severity |
string | No | notification (default), low, medium, high, or critical |
apply_to_all_devices |
boolean | No | Apply to all tags (default: true) |
device_ids |
array | No | Specific tag IDs to monitor (when apply_to_all_devices is false) |
enabled |
boolean | No | Whether the rule is active (default: true) |
Severity levels
| Level | Description |
|---|---|
notification |
Notify-only (the default): sends a notification, not an alert — nothing to acknowledge or resolve |
low |
Informational alert: routine events, logging |
medium |
Warning alert: needs attention but not urgent |
high |
Important alert: needs prompt action |
critical |
Emergency alert: needs immediate response |
Any severity other than notification raises an alert that stays open until resolved.
Geofence entry (geofence_entry)
Triggers when a tag enters a location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Yes | — | Zone ID |
min_duration_seconds |
integer | No | 0 | Minimum time inside before triggering |
Geofence exit (geofence_exit)
Triggers when a tag leaves a location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Yes | — | Zone ID |
min_duration_seconds |
integer | No | 0 | Minimum time outside before triggering |
Geofence containment (geofence_containment)
Triggers when a tag is outside all allowed locations during specified hours.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_ids |
array | Yes | — | List of allowed location IDs |
check_hours |
string | No | All hours | Time window (e.g., "09:00-17:00") |
check_days |
array | No | All days | Days of week |
timezone |
string | No | UTC | Timezone for time window |
Return to base (return_to_base)
Triggers when a tag hasn't returned to base within a time limit.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
base_location_id |
string | Conditional | — | Base location ID. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
max_away_duration_seconds |
integer | No | 3600 | Maximum away time (1 hour) |
Scheduled return (scheduled_return)
Triggers when a tag hasn't returned to base by a daily deadline.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
base_location_id |
string | Conditional | — | Base location ID. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
return_by_time |
string | Yes | — | Deadline (e.g., "18:00") |
return_by_days |
array | No | All days | Days to check |
timezone |
string | No | UTC | Timezone for deadline |
grace_period_minutes |
integer | No | 0 | Grace period after deadline |
One alert per tag per day. Resets at midnight in the configured timezone.
Inactivity (inactivity)
Triggers when a tag hasn't reported a position.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
max_inactive_duration_seconds |
integer | No | 3600 | Maximum time without update (1 hour) |
Dwell time (dwell_time)
Triggers when a tag stays in a location too long.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to monitor. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
max_dwell_duration_seconds |
integer | No | 3600 | Maximum dwell time (1 hour) |
Movement detection (movement_detection)
Triggers when a tag moves from where it should stay.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
expected_location_id |
string | Conditional | — | Expected location. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
check_hours |
string | No | All hours | Time window to monitor |
timezone |
string | No | UTC | Timezone for time window |
min_movement_distance_meters |
integer | No | 0 | Minimum movement distance |
Minimum visit frequency (minimum_visit_frequency)
Triggers when a tag hasn't visited a location recently enough.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to visit. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
min_visit_interval_seconds |
integer | No | 86400 | Maximum time between visits (24 hours) |
Unknown location (unknown_location)
Triggers when a tag is at an unregistered location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
alert_after_seconds |
integer | No | 3600 | Time at unknown location before triggering (1 hour) |
exclude_location_ids |
array | No | — | Locations to exclude from "known" check |
Zone asset count (zone_asset_count)
Triggers when asset count in a location crosses a threshold. This is a location-level rule; one alert per location, not per tag.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to monitor. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags (evaluated independently) |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
condition |
string | Yes | — | "below", "above", or "outside_range" |
threshold |
int/object | Yes | — | Number for below/above, {"min": X, "max": Y} for outside_range |
asset_filter |
object | No | All assets | Filter which assets to count |
check_interval_seconds |
integer | No | 300 | Cooldown between alerts (5 minutes) |
Proximity association (proximity_association)
Triggers when two tag types come near each other or move apart. Used to auto-create asset associations based on physical proximity.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
child_device_type |
string | Yes | — | Tag type of the child asset |
parent_device_type |
string | Yes | — | Tag type of the parent asset (must differ from child) |
radius_meters |
number | Yes | — | Proximity radius (0–10,000 meters) |
trigger |
string | No | — | "dwell" or "co_movement" |
dwell_seconds |
integer | Conditional | — | Required when trigger is "dwell". Time in proximity before triggering (1–86,400 seconds). |
co_movement_meters |
number | Conditional | — | Required when trigger is "co_movement". Distance threshold for co-movement detection (1–100,000 meters). |
alert_on_separation |
boolean | No | false | Create an alert when an auto-association is removed because the child moved out of range. Only applies to associations created by this rule. For monitoring all associations (including manual ones), use a separation rule instead. |
Separation (separation)
Monitors existing asset associations and alerts when a child asset is too far from its parent. Works with any association source (manual, scan, or auto). Supports an optional grace period: the alert starts as pending and promotes to active after the grace period elapses; if the child returns within the grace period, the pending alert is cleared without sending a notification.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
radius_meters |
number | Yes | — | Maximum allowed distance between child and parent (1–10,000 meters) |
grace_period_seconds |
number | No | 0 | Seconds the child must be out of range before the alert becomes active (up to 24 hours) |
child_device_type |
string | No | — | Only monitor children of this asset type |
parent_device_type |
string | No | — | Only monitor children of parents of this asset type |
Trip matching (trip_matching)
Records when two tag types travel from the same origin to the same destination. Creates historical trip records rather than alerts.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
device_type_a |
string | Yes | — | First tag type to match |
device_type_b |
string | Yes | — | Second tag type (must differ from type A) |
origin_radius_meters |
number | Yes | 500 | Maximum distance between origin dwells (1–10,000 meters) |
destination_radius_meters |
number | Yes | 500 | Maximum distance between destination positions (1–10,000 meters) |
time_window_minutes |
number | Yes | 60 | How recently both tags must have been seen at the destination (1–1,440 minutes) |