mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 01:26:11 -08:00
185 lines
4.7 KiB
Markdown
Executable File
185 lines
4.7 KiB
Markdown
Executable File
# Workflow examples
|
||
|
||
Workflows in NetAlertX automate actions based on real-time events and conditions. Below are practical examples that demonstrate how to build automation using triggers, conditions, and actions.
|
||
|
||
## Example 1: Un-archive devices if detected online
|
||
|
||
This workflow automatically unarchives a device if it was previously archived but has now been detected as online.
|
||
|
||
### 📋 Use Case
|
||
|
||
Sometimes devices are manually archived (e.g., no longer expected on the network), but they reappear unexpectedly. This workflow reverses the archive status when such devices are detected during a scan.
|
||
|
||
### ⚙️ Workflow Configuration
|
||
|
||
```json
|
||
{
|
||
"name": "Un-archive devices if detected online",
|
||
"trigger": {
|
||
"object_type": "Devices",
|
||
"event_type": "update"
|
||
},
|
||
"conditions": [
|
||
{
|
||
"logic": "AND",
|
||
"conditions": [
|
||
{
|
||
"field": "devIsArchived",
|
||
"operator": "equals",
|
||
"value": "1"
|
||
},
|
||
{
|
||
"field": "devPresentLastScan",
|
||
"operator": "equals",
|
||
"value": "1"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"actions": [
|
||
{
|
||
"type": "update_field",
|
||
"field": "devIsArchived",
|
||
"value": "0"
|
||
}
|
||
],
|
||
"enabled": "Yes"
|
||
}
|
||
```
|
||
|
||
### 🔍 Explanation
|
||
|
||
- Trigger: Listens for updates to device records.
|
||
- Conditions:
|
||
- `devIsArchived` is `1` (archived).
|
||
- `devPresentLastScan` is `1` (device was detected in the latest scan).
|
||
- Action: Updates the device to set `devIsArchived` to `0` (unarchived).
|
||
|
||
### ✅ Result
|
||
|
||
Whenever a previously archived device shows up during a network scan, it will be automatically unarchived — allowing it to reappear in your device lists and dashboards.
|
||
|
||
|
||
Here is your updated version of **Example 2** and **Example 3**, fully aligned with the format and structure of **Example 1** for consistency and professionalism:
|
||
|
||
---
|
||
|
||
## Example 2: Assign Device to Network Node Based on IP
|
||
|
||
This workflow assigns newly added devices with IP addresses in the `192.168.1.*` range to a specific network node with MAC address `6c:6d:6d:6c:6c:6c`.
|
||
|
||
### 📋 Use Case
|
||
|
||
When new devices join your network, assigning them to the correct network node is important for accurate topology and grouping. This workflow ensures devices in a specific subnet are automatically linked to the intended node.
|
||
|
||
### ⚙️ Workflow Configuration
|
||
|
||
```json
|
||
{
|
||
"name": "Assign Device to Network Node Based on IP",
|
||
"trigger": {
|
||
"object_type": "Devices",
|
||
"event_type": "insert"
|
||
},
|
||
"conditions": [
|
||
{
|
||
"logic": "AND",
|
||
"conditions": [
|
||
{
|
||
"field": "devLastIP",
|
||
"operator": "contains",
|
||
"value": "192.168.1."
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"actions": [
|
||
{
|
||
"type": "update_field",
|
||
"field": "devNetworkNode",
|
||
"value": "6c:6d:6d:6c:6c:6c"
|
||
}
|
||
],
|
||
"enabled": "Yes"
|
||
}
|
||
```
|
||
|
||
### 🔍 Explanation
|
||
|
||
* **Trigger**: Activates when a new device is added.
|
||
* **Condition**:
|
||
|
||
* `devLastIP` contains `192.168.1.` (matches subnet).
|
||
* **Action**:
|
||
|
||
* Sets `devNetworkNode` to the specified MAC address.
|
||
|
||
### ✅ Result
|
||
|
||
New devices with IPs in the `192.168.1.*` subnet are automatically assigned to the correct network node, streamlining device organization and reducing manual work.
|
||
|
||
---
|
||
|
||
## Example 3: Mark Device as Not New and Delete If from Google Vendor
|
||
|
||
This workflow automatically marks newly detected Google devices as not new and deletes them immediately.
|
||
|
||
### 📋 Use Case
|
||
|
||
You may want to automatically clear out newly detected Google devices (such as Chromecast or Google Home) if they’re not needed in your device database. This workflow handles that clean-up automatically.
|
||
|
||
### ⚙️ Workflow Configuration
|
||
|
||
```json
|
||
{
|
||
"name": "Mark Device as Not New and Delete If from Google Vendor",
|
||
"trigger": {
|
||
"object_type": "Devices",
|
||
"event_type": "update"
|
||
},
|
||
"conditions": [
|
||
{
|
||
"logic": "AND",
|
||
"conditions": [
|
||
{
|
||
"field": "devVendor",
|
||
"operator": "contains",
|
||
"value": "Google"
|
||
},
|
||
{
|
||
"field": "devIsNew",
|
||
"operator": "equals",
|
||
"value": "1"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"actions": [
|
||
{
|
||
"type": "update_field",
|
||
"field": "devIsNew",
|
||
"value": "0"
|
||
},
|
||
{
|
||
"type": "delete_device"
|
||
}
|
||
],
|
||
"enabled": "Yes"
|
||
}
|
||
```
|
||
|
||
### 🔍 Explanation
|
||
|
||
* **Trigger**: Runs on device updates.
|
||
* **Conditions**:
|
||
|
||
* Vendor contains `Google`.
|
||
* Device is marked as new (`devIsNew` is `1`).
|
||
* **Actions**:
|
||
|
||
1. Set `devIsNew` to `0` (mark as not new).
|
||
2. Delete the device.
|
||
|
||
### ✅ Result
|
||
|
||
Any newly detected Google devices are cleaned up instantly — first marked as not new, then deleted — helping you avoid clutter in your device records. |