{
  "name": "SIGNL4 Alert",
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "position": [
        350,
        500
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyHour"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Write Binary File",
      "type": "n8n-nodes-base.writeBinaryFile",
      "position": [
        880,
        500
      ],
      "parameters": {
        "fileName": "alert-data.json"
      },
      "typeVersion": 1
    },
    {
      "name": "Read Binary File",
      "type": "n8n-nodes-base.readBinaryFile",
      "position": [
        450,
        270
      ],
      "parameters": {
        "filePath": "alert-data.json"
      },
      "typeVersion": 1
    },
    {
      "name": "Binary to JSON",
      "type": "n8n-nodes-base.moveBinaryData",
      "position": [
        630,
        270
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "JSON to Binary",
      "type": "n8n-nodes-base.moveBinaryData",
      "position": [
        720,
        500
      ],
      "parameters": {
        "mode": "jsonToBinary",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "Mark as Done",
      "type": "n8n-nodes-base.function",
      "position": [
        560,
        500
      ],
      "parameters": {
        "functionCode": "items[0].json.Body = $node[\"Binary to JSON\"].json.Body;\nitems[0].json.Done = true;\nitems[0].json.eventId = $node[\"SIGNL4 Alert\"].json.eventId;\nitems[0].json.lastId = $node[\"Binary to JSON\"].json.eventId;\n\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        810,
        270
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{$node[\"Binary to JSON\"].json[\"Done\"]}}"
            }
          ]
        },
        "combineOperation": "=all"
      },
      "typeVersion": 1
    },
    {
      "name": "SIGNL4 Resolve",
      "type": "n8n-nodes-base.signl4",
      "position": [
        1040,
        500
      ],
      "parameters": {
        "operation": "resolve",
        "externalId": "={{$node[\"Binary to JSON\"].json[\"lastId\"]}}"
      },
      "typeVersion": 1
    },
    {
      "name": "SIGNL4 Alert",
      "type": "n8n-nodes-base.signl4",
      "position": [
        990,
        270
      ],
      "parameters": {
        "message": "={{$node[\"Binary to JSON\"].json[\"Body\"]}}",
        "additionalFields": {
          "externalId": "={{$node[\"Binary to JSON\"].json[\"eventId\"]}}",
          "locationFieldsUi": {
            "locationFieldsValues": {
              "latitude": "52.3984235",
              "longitude": "13.0544149"
            }
          }
        }
      },
      "typeVersion": 1
    },
    {
      "id": "37378251-2809-5454-ba58-40829078bc9a",
      "name": "Publication · Overview and setup",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -800,
        0
      ],
      "parameters": {
        "content": "# SIGNL4 Alert\n\n## Purpose and structure\nThis folder contains the **SIGNL4 Alert** workflow. Its executable nodes use `cron`, `function`, `if`, `moveBinaryData`, `readBinaryFile`, `signl4`, `writeBinaryFile`. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.\n\n## Setup\nImport inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.\n\n## Entry points\nCron\n\n## Verification\nSanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.\n\n## Attribution\nhttps://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Readbinaryfile/0749_Readbinaryfile_Movebinarydata_Send_Scheduled.json\nMIT; preserve source notices.",
        "width": 700,
        "height": 800,
        "color": 1
      }
    }
  ],
  "active": false,
  "settings": {
    "timezone": "Europe/Berlin"
  },
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "SIGNL4 Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "SIGNL4 Resolve",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cron": {
      "main": [
        [
          {
            "node": "Read Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark as Done": {
      "main": [
        [
          {
            "node": "JSON to Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SIGNL4 Alert": {
      "main": [
        [
          {
            "node": "Mark as Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Binary to JSON": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JSON to Binary": {
      "main": [
        [
          {
            "node": "Write Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Binary File": {
      "main": [
        [
          {
            "node": "Binary to JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
