{
  "updatedAt": "2026-04-18T17:50:08.848Z",
  "createdAt": "2026-02-18T08:28:17.501Z",
  "id": "zpMyf8QD3ofG6AND",
  "name": "Absen Otomatis",
  "active": true,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {
        "authentication": "webhook",
        "content": "={{ $json.text }}\n-----------------------------------------",
        "options": {}
      },
      "type": "n8n-nodes-base.discord",
      "typeVersion": 2,
      "position": [
        320,
        672
      ],
      "id": "7e92aba5-937c-4d7a-998b-a42851ace83f",
      "name": "Discord2",
      "credentials": {
        "discordWebhookApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// --- Mention User ---\nconst userId = \"664803448629493816\";\nconst mention = `<@${userId}>`;\n\n// --- Ambil output dari node sebelumnya (opsional) ---\nconst stdout = $input.first()?.json?.stdout || \"\u26a0 Tidak ada output dari script.\";\n\n// --- Ambil waktu sekarang ---\nconst now = new Date();\n\n// --- Hari dalam bahasa Inggris (Monday, Tuesday, ...) ---\nconst dayNames = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];\nconst rawDay = dayNames[now.getDay()];\n\n// --- Jam sekarang dalam HH:mm ---\nconst pad = (n) => String(n).padStart(2, \"0\");\nconst rawTime = `${pad(now.getHours())}:${pad(now.getMinutes())}`;\n\n// --- Normalisasi nama hari ---\nconst dayMap = {\n  'senin': 'Monday', 'selasa': 'Tuesday', 'rabu': 'Wednesday', 'kamis': 'Thursday', 'jumat': 'Friday', 'jum\\'at': 'Friday',\n  'mon': 'Monday', 'monday': 'Monday',\n  'tue': 'Tuesday', 'tues': 'Tuesday', 'tuesday': 'Tuesday',\n  'wed': 'Wednesday', 'wednesday': 'Wednesday',\n  'thu': 'Thursday', 'thur': 'Thursday', 'thursday': 'Thursday',\n  'fri': 'Friday', 'friday': 'Friday'\n};\nconst dayKey = dayMap[rawDay.toLowerCase()] || rawDay;\n\n// --- Jadwal kuliah ---\nconst schedule = {\n  Monday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Metodologi Penelitian\", lecturer: \"Dr. Maulisa Oktiana\", room: \"Lab Elektro IV\" }\n  ],\n  Tuesday: [\n    { time: \"10:45\", end: \"12:25\", subject: \"Artificial Inteligent\", lecturer: \"Ir. Yudha Nurdin, ST., MT\", room: \"A14-302\" }\n  ],\n  Wednesday: [\n    { time: \"10:40\", end: \"12:25\", subject: \"Sistem Terdistribusi\", lecturer: \"Ir. Yudha Nurdin, ST., MT\", room: \"A25-201\" },\n    { time: \"14:00\", end: \"15:40\", subject: \"Pengolahan Sinyal Multimedia\", lecturer: \"Dr. Maulisa Oktiana\", room: \"A12-302\" }\n  ],\n  Thursday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Keamanan Informasi\", lecturer: \"Ir. Sayed Muchalili, S.T., M.Sc., IPM\", room: \"A12-304\" },\n    { time: \"10:45\", end: \"13:15\", subject: \"Keamanan Jaringan\", lecturer: \"Prof. Dr. Ir. Teuku Yuliar Arif, S.T., M.Kom\", room: \"A24-102\" },\n    { time: \"14:00\", end: \"15:45\", subject: \"Sistem Embedded\", lecturer: \"Ir. Rahmad Dawood, S.Kom., M.Sc., IPM\", room: \"Lab Terpadu\" }\n  ],\n  Friday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Praktikum Distribusi\", lecturer: \"Pak Yudha\", room: \"A12-304\" },\n    { time: \"16:30\", end: \"18:15\", subject: \"Tata Tulis Ilmiah\", lecturer: \"Dr. Maulisa Oktiana\", room: \"A12-304\" }\n  ]\n};\n\n// --- Helper: parse HH:MM ke menit ---\nfunction parseTimeToMinutes(t) {\n  if (!t) return null;\n  t = String(t).trim().replace(/\\./g, ':');\n  const m = t.match(/(\\d{1,2}):(\\d{2})/);\n  if (!m) return null;\n  let hh = parseInt(m[1], 10);\n  let mm = parseInt(m[2], 10);\n  if (isNaN(hh) || isNaN(mm)) return null;\n  return hh * 60 + mm;\n}\n\nlet mataKuliah = \"\u2753 Tidak ada jadwal terdaftar.\";\nlet dosen = \"-\";\nlet ruangan = \"-\";\nlet jadwalWaktu = \"-\";\n\nconst nowMinutes = parseTimeToMinutes(rawTime);\n\n// --- Cari jadwal sesuai hari & waktu ---\nif (dayKey && schedule[dayKey]) {\n  const rows = schedule[dayKey];\n\n  if (nowMinutes !== null) {\n    // cek kelas yang sedang berlangsung\n    for (const r of rows) {\n      const start = parseTimeToMinutes(r.time);\n      const end = parseTimeToMinutes(r.end);\n      if (start !== null && end !== null && nowMinutes >= start && nowMinutes <= end) {\n        mataKuliah = r.subject;\n        dosen = r.lecturer;\n        ruangan = r.room;\n        jadwalWaktu = `${r.time} - ${r.end}`;\n        break;\n      }\n    }\n  }\n\n  // kalau belum ada kelas sekarang, ambil yang berikutnya\n  if (mataKuliah.startsWith(\"\u2753\") && nowMinutes !== null) {\n    const upcoming = rows\n      .map(r => ({ ...r, start: parseTimeToMinutes(r.time) }))\n      .filter(r => r.start !== null && r.start > nowMinutes)\n      .sort((a, b) => a.start - b.start);\n\n    if (upcoming.length > 0) {\n      const next = upcoming[0];\n      mataKuliah = `Tidak ada kelas sekarang. Berikutnya: ${next.subject}`;\n      dosen = next.lecturer;\n      ruangan = next.room;\n      jadwalWaktu = `${next.time} - ${next.end}`;\n    }\n  }\n} else {\n  mataKuliah = \"\u274c Hari ini tidak ada jadwal kuliah.\";\n}\n\n// --- Format pesan final ---\nconst finalMessage =\n  `\ud83d\udd5c **Absen Otomatis**\n${mention}\n\n\ud83d\udccc Status: ${stdout}\n\ud83d\udcc5 Hari: ${rawDay}\n\u23f0 Jam: ${rawTime}\n\ud83d\udcd6 Mata Kuliah: ${mataKuliah}\n\ud83d\udc68\u200d\ud83c\udfeb Dosen: ${dosen}\n\ud83c\udfeb Ruangan: ${ruangan}\n\ud83d\uddd3 Jadwal: ${jadwalWaktu}`;\n\nreturn [{ json: { text: finalMessage } }];\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        96,
        672
      ],
      "id": "ee42d31c-d6b9-4ff1-a30d-06580b34e44e",
      "name": "Code2"
    },
    {
      "parameters": {
        "command": ".venv/bin/python3 absen.py",
        "cwd": "/home/n8nbot/absen/absenchaptca"
      },
      "type": "n8n-nodes-base.ssh",
      "typeVersion": 1,
      "position": [
        -128,
        672
      ],
      "id": "ca0475b9-688b-4ea5-a4dd-45ae1842c7f4",
      "name": "Absen",
      "credentials": {
        "sshPassword": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "inputSource": "passthrough"
      },
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        -352,
        672
      ],
      "id": "2f4e295d-9d43-454b-bfa8-0d29b12e5af5",
      "name": "When Executed by Another Workflow"
    },
    {
      "parameters": {
        "amount": "={{ Math.floor(Math.random() * (30 - 1 + 1) + 1) }}",
        "unit": "minutes"
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        -352,
        480
      ],
      "id": "87db7678-70a0-483c-86b9-bd123ce0146d",
      "name": "Wait",
      "alwaysOutputData": false
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "28a15265-0a35-41b8-a33d-d10594d08b60",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -352,
        864
      ],
      "id": "71812d7c-b88a-4a2c-8ad6-35f99623eae8",
      "name": "Webhook"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 8
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        0
      ],
      "id": "f17dab8e-d98a-415c-af33-62357179fc28",
      "name": "KBL",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                3
              ],
              "triggerAtHour": 14
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        224
      ],
      "id": "0e79c432-d2bc-44b6-a954-e832c4fb1e19",
      "name": "Techno",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                4
              ],
              "triggerAtHour": 8
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        672
      ],
      "id": "37eca6f9-a6b1-4c52-bb58-3bb69f40d667",
      "name": "ML",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                6
              ],
              "triggerAtHour": 14
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        1120
      ],
      "id": "d6029d72-2d53-4b3f-bf33-622501eb0af1",
      "name": "IoT",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 14
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        448
      ],
      "id": "35685a23-7939-40ba-8b80-de143354df6a",
      "name": "Infra",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                4
              ],
              "triggerAtHour": 10,
              "triggerAtMinute": 45
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -576,
        896
      ],
      "id": "d0a116d6-2af8-4ea5-9305-0a44a9f2ae00",
      "name": "HPC",
      "executeOnce": false
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                3
              ],
              "triggerAtHour": 10,
              "triggerAtMinute": 45
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -736,
        448
      ],
      "id": "feb75a0a-03be-4e83-b76c-a5d076125135",
      "name": "sim jaringan",
      "executeOnce": false
    }
  ],
  "connections": {
    "Code2": {
      "main": [
        [
          {
            "node": "Discord2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Absen": {
      "main": [
        [
          {
            "node": "Code2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Absen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Absen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Absen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "KBL": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Techno": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ML": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IoT": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HPC": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Infra": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "sim jaringan": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false,
    "timeSavedMode": "dynamic",
    "errorWorkflow": "PWFdEg6jEbv43mqe",
    "callerPolicy": "workflowsFromSameOwner"
  },
  "staticData": {
    "node:KBL": {
      "recurrenceRules": []
    },
    "node:Techno": {
      "recurrenceRules": []
    },
    "node:ML": {
      "recurrenceRules": []
    },
    "node:IoT": {
      "recurrenceRules": []
    },
    "node:Infra": {
      "recurrenceRules": []
    },
    "node:HPC": {
      "recurrenceRules": []
    },
    "node:sim jaringan": {
      "recurrenceRules": []
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "6fe95b1f-66dd-4596-a9e4-ad539b937ee3",
  "activeVersionId": "6fe95b1f-66dd-4596-a9e4-ad539b937ee3",
  "triggerCount": 8,
  "shared": [
    {
      "updatedAt": "2026-02-18T08:28:17.503Z",
      "createdAt": "2026-02-18T08:28:17.503Z",
      "role": "workflow:owner",
      "workflowId": "zpMyf8QD3ofG6AND",
      "projectId": "UoStXPqNC0kdV8zl"
    }
  ],
  "activeVersion": {
    "updatedAt": "2026-04-18T17:50:24.000Z",
    "createdAt": "2026-04-18T17:50:08.849Z",
    "versionId": "6fe95b1f-66dd-4596-a9e4-ad539b937ee3",
    "workflowId": "zpMyf8QD3ofG6AND",
    "nodes": [
      {
        "parameters": {
          "authentication": "webhook",
          "content": "={{ $json.text }}\n-----------------------------------------",
          "options": {}
        },
        "type": "n8n-nodes-base.discord",
        "typeVersion": 2,
        "position": [
          320,
          672
        ],
        "id": "7e92aba5-937c-4d7a-998b-a42851ace83f",
        "name": "Discord2",
        "webhookId": "8b2ed5c9-d278-4f0f-8c37-ec7f632b9e86",
        "credentials": {
          "discordWebhookApi": {
            "id": "JHvVLeTRZc9yHx9f",
            "name": "absen dc"
          }
        }
      },
      {
        "parameters": {
          "jsCode": "// --- Mention User ---\nconst userId = \"664803448629493816\";\nconst mention = `<@${userId}>`;\n\n// --- Ambil output dari node sebelumnya (opsional) ---\nconst stdout = $input.first()?.json?.stdout || \"\u26a0 Tidak ada output dari script.\";\n\n// --- Ambil waktu sekarang ---\nconst now = new Date();\n\n// --- Hari dalam bahasa Inggris (Monday, Tuesday, ...) ---\nconst dayNames = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];\nconst rawDay = dayNames[now.getDay()];\n\n// --- Jam sekarang dalam HH:mm ---\nconst pad = (n) => String(n).padStart(2, \"0\");\nconst rawTime = `${pad(now.getHours())}:${pad(now.getMinutes())}`;\n\n// --- Normalisasi nama hari ---\nconst dayMap = {\n  'senin': 'Monday', 'selasa': 'Tuesday', 'rabu': 'Wednesday', 'kamis': 'Thursday', 'jumat': 'Friday', 'jum\\'at': 'Friday',\n  'mon': 'Monday', 'monday': 'Monday',\n  'tue': 'Tuesday', 'tues': 'Tuesday', 'tuesday': 'Tuesday',\n  'wed': 'Wednesday', 'wednesday': 'Wednesday',\n  'thu': 'Thursday', 'thur': 'Thursday', 'thursday': 'Thursday',\n  'fri': 'Friday', 'friday': 'Friday'\n};\nconst dayKey = dayMap[rawDay.toLowerCase()] || rawDay;\n\n// --- Jadwal kuliah ---\nconst schedule = {\n  Monday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Metodologi Penelitian\", lecturer: \"Dr. Maulisa Oktiana\", room: \"Lab Elektro IV\" }\n  ],\n  Tuesday: [\n    { time: \"10:45\", end: \"12:25\", subject: \"Artificial Inteligent\", lecturer: \"Ir. Yudha Nurdin, ST., MT\", room: \"A14-302\" }\n  ],\n  Wednesday: [\n    { time: \"10:40\", end: \"12:25\", subject: \"Sistem Terdistribusi\", lecturer: \"Ir. Yudha Nurdin, ST., MT\", room: \"A25-201\" },\n    { time: \"14:00\", end: \"15:40\", subject: \"Pengolahan Sinyal Multimedia\", lecturer: \"Dr. Maulisa Oktiana\", room: \"A12-302\" }\n  ],\n  Thursday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Keamanan Informasi\", lecturer: \"Ir. Sayed Muchalili, S.T., M.Sc., IPM\", room: \"A12-304\" },\n    { time: \"10:45\", end: \"13:15\", subject: \"Keamanan Jaringan\", lecturer: \"Prof. Dr. Ir. Teuku Yuliar Arif, S.T., M.Kom\", room: \"A24-102\" },\n    { time: \"14:00\", end: \"15:45\", subject: \"Sistem Embedded\", lecturer: \"Ir. Rahmad Dawood, S.Kom., M.Sc., IPM\", room: \"Lab Terpadu\" }\n  ],\n  Friday: [\n    { time: \"08:00\", end: \"09:40\", subject: \"Praktikum Distribusi\", lecturer: \"Pak Yudha\", room: \"A12-304\" },\n    { time: \"16:30\", end: \"18:15\", subject: \"Tata Tulis Ilmiah\", lecturer: \"Dr. Maulisa Oktiana\", room: \"A12-304\" }\n  ]\n};\n\n// --- Helper: parse HH:MM ke menit ---\nfunction parseTimeToMinutes(t) {\n  if (!t) return null;\n  t = String(t).trim().replace(/\\./g, ':');\n  const m = t.match(/(\\d{1,2}):(\\d{2})/);\n  if (!m) return null;\n  let hh = parseInt(m[1], 10);\n  let mm = parseInt(m[2], 10);\n  if (isNaN(hh) || isNaN(mm)) return null;\n  return hh * 60 + mm;\n}\n\nlet mataKuliah = \"\u2753 Tidak ada jadwal terdaftar.\";\nlet dosen = \"-\";\nlet ruangan = \"-\";\nlet jadwalWaktu = \"-\";\n\nconst nowMinutes = parseTimeToMinutes(rawTime);\n\n// --- Cari jadwal sesuai hari & waktu ---\nif (dayKey && schedule[dayKey]) {\n  const rows = schedule[dayKey];\n\n  if (nowMinutes !== null) {\n    // cek kelas yang sedang berlangsung\n    for (const r of rows) {\n      const start = parseTimeToMinutes(r.time);\n      const end = parseTimeToMinutes(r.end);\n      if (start !== null && end !== null && nowMinutes >= start && nowMinutes <= end) {\n        mataKuliah = r.subject;\n        dosen = r.lecturer;\n        ruangan = r.room;\n        jadwalWaktu = `${r.time} - ${r.end}`;\n        break;\n      }\n    }\n  }\n\n  // kalau belum ada kelas sekarang, ambil yang berikutnya\n  if (mataKuliah.startsWith(\"\u2753\") && nowMinutes !== null) {\n    const upcoming = rows\n      .map(r => ({ ...r, start: parseTimeToMinutes(r.time) }))\n      .filter(r => r.start !== null && r.start > nowMinutes)\n      .sort((a, b) => a.start - b.start);\n\n    if (upcoming.length > 0) {\n      const next = upcoming[0];\n      mataKuliah = `Tidak ada kelas sekarang. Berikutnya: ${next.subject}`;\n      dosen = next.lecturer;\n      ruangan = next.room;\n      jadwalWaktu = `${next.time} - ${next.end}`;\n    }\n  }\n} else {\n  mataKuliah = \"\u274c Hari ini tidak ada jadwal kuliah.\";\n}\n\n// --- Format pesan final ---\nconst finalMessage =\n  `\ud83d\udd5c **Absen Otomatis**\n${mention}\n\n\ud83d\udccc Status: ${stdout}\n\ud83d\udcc5 Hari: ${rawDay}\n\u23f0 Jam: ${rawTime}\n\ud83d\udcd6 Mata Kuliah: ${mataKuliah}\n\ud83d\udc68\u200d\ud83c\udfeb Dosen: ${dosen}\n\ud83c\udfeb Ruangan: ${ruangan}\n\ud83d\uddd3 Jadwal: ${jadwalWaktu}`;\n\nreturn [{ json: { text: finalMessage } }];\n"
        },
        "type": "n8n-nodes-base.code",
        "typeVersion": 2,
        "position": [
          96,
          672
        ],
        "id": "ee42d31c-d6b9-4ff1-a30d-06580b34e44e",
        "name": "Code2"
      },
      {
        "parameters": {
          "command": ".venv/bin/python3 absen.py",
          "cwd": "/home/n8nbot/absen/absenchaptca"
        },
        "type": "n8n-nodes-base.ssh",
        "typeVersion": 1,
        "position": [
          -128,
          672
        ],
        "id": "ca0475b9-688b-4ea5-a4dd-45ae1842c7f4",
        "name": "Absen",
        "credentials": {
          "sshPassword": {
            "id": "N1m1tTJEIrNETZuL",
            "name": "SSH Password account"
          }
        }
      },
      {
        "parameters": {
          "inputSource": "passthrough"
        },
        "type": "n8n-nodes-base.executeWorkflowTrigger",
        "typeVersion": 1.1,
        "position": [
          -352,
          672
        ],
        "id": "2f4e295d-9d43-454b-bfa8-0d29b12e5af5",
        "name": "When Executed by Another Workflow"
      },
      {
        "parameters": {
          "amount": "={{ Math.floor(Math.random() * (30 - 1 + 1) + 1) }}",
          "unit": "minutes"
        },
        "type": "n8n-nodes-base.wait",
        "typeVersion": 1.1,
        "position": [
          -352,
          480
        ],
        "id": "87db7678-70a0-483c-86b9-bd123ce0146d",
        "name": "Wait",
        "webhookId": "b2cff5ef-bffe-403b-9397-f089349f3121",
        "alwaysOutputData": false
      },
      {
        "parameters": {
          "httpMethod": "POST",
          "path": "28a15265-0a35-41b8-a33d-d10594d08b60",
          "options": {}
        },
        "type": "n8n-nodes-base.webhook",
        "typeVersion": 2.1,
        "position": [
          -352,
          864
        ],
        "id": "71812d7c-b88a-4a2c-8ad6-35f99623eae8",
        "name": "Webhook",
        "webhookId": "28a15265-0a35-41b8-a33d-d10594d08b60"
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  1
                ],
                "triggerAtHour": 8
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          0
        ],
        "id": "f17dab8e-d98a-415c-af33-62357179fc28",
        "name": "KBL",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  3
                ],
                "triggerAtHour": 14
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          224
        ],
        "id": "0e79c432-d2bc-44b6-a954-e832c4fb1e19",
        "name": "Techno",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  4
                ],
                "triggerAtHour": 8
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          672
        ],
        "id": "37eca6f9-a6b1-4c52-bb58-3bb69f40d667",
        "name": "ML",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  6
                ],
                "triggerAtHour": 14
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          1120
        ],
        "id": "d6029d72-2d53-4b3f-bf33-622501eb0af1",
        "name": "IoT",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  1
                ],
                "triggerAtHour": 14
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          448
        ],
        "id": "35685a23-7939-40ba-8b80-de143354df6a",
        "name": "Infra",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  4
                ],
                "triggerAtHour": 10,
                "triggerAtMinute": 45
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -576,
          896
        ],
        "id": "d0a116d6-2af8-4ea5-9305-0a44a9f2ae00",
        "name": "HPC",
        "executeOnce": false
      },
      {
        "parameters": {
          "rule": {
            "interval": [
              {
                "field": "weeks",
                "triggerAtDay": [
                  3
                ],
                "triggerAtHour": 10,
                "triggerAtMinute": 45
              }
            ]
          }
        },
        "type": "n8n-nodes-base.scheduleTrigger",
        "typeVersion": 1.2,
        "position": [
          -736,
          448
        ],
        "id": "feb75a0a-03be-4e83-b76c-a5d076125135",
        "name": "sim jaringan",
        "executeOnce": false
      }
    ],
    "connections": {
      "Code2": {
        "main": [
          [
            {
              "node": "Discord2",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Absen": {
        "main": [
          [
            {
              "node": "Code2",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "When Executed by Another Workflow": {
        "main": [
          [
            {
              "node": "Absen",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Wait": {
        "main": [
          [
            {
              "node": "Absen",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Webhook": {
        "main": [
          [
            {
              "node": "Absen",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "KBL": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Techno": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "ML": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "IoT": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "HPC": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Infra": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "sim jaringan": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "authors": "Muhammad Bintang Panji Kusuma",
    "name": "Version 6fe95b1f",
    "description": "",
    "autosaved": true
  },
  "tags": []
}