{
    "success": true,
    "data": {
        "alerts": [
            {
                "severity": "urgent",
                "divisi": "Unknown",
                "shift_type": "shifting",
                "jumlah_gagal": 56,
                "kontak_person": {
                    "nama": "HR Pusat",
                    "ext": "101",
                    "whatsapp": "0811-2345-6789",
                    "email": "hr@company.com"
                },
                "message_template": "Halo HR Pusat,\n\nAda 56 data absensi shifting Divisi Unknown yang gagal sync hari ini (2026-07-31).\n\nMohon segera dicek dan dikoordinasikan dengan tim terkait.\n\nDetail masalah:\n- tutup-otomatis: Muhammad Arif Dermawan (jam kerja melebihi batas maksimal; fallback berdasarkan max_hours)\n- fallback-mode: Septian Nugraha Alsafaat (No reason)\n- fallback-mode: Azhar Muhamad (No reason)\n- fallback-mode: Rivkey Raka Bima Ardiansyah (No reason)\n- error: Unknown (No reason)\n... dan 51 masalah lainnya\n\nTerima kasih.",
                "problems": [
                    {
                        "timestamp": "2026-07-31 00:14:02",
                        "raw_log": "[2026-07-31 00:14:02] Tutup otomatis: keputusan=ditutup_otomatis, nama=Muhammad Arif Dermawan, kar_id=710, id_absensi=207213718, shift=sore, waktu_pulang=2026-07-30 17:28:59, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours",
                        "message": "Tutup otomatis: keputusan=ditutup_otomatis, nama=Muhammad Arif Dermawan, kar_id=710, id_absensi=207213718, shift=sore, waktu_pulang=2026-07-30 17:28:59, alasan=jam kerja melebihi batas maksimal; fallback berdasarkan max_hours",
                        "category": "tutup-otomatis",
                        "severity": "warning",
                        "nama": "Muhammad Arif Dermawan",
                        "kar_id": "710",
                        "shift": "sore",
                        "alasan": "jam kerja melebihi batas maksimal; fallback berdasarkan max_hours",
                        "divisi": "Unknown"
                    },
                    {
                        "timestamp": "2026-07-31 00:47:02",
                        "raw_log": "[2026-07-31 00:47:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Septian Nugraha Alsafaat, kar_id=401",
                        "message": "\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Septian Nugraha Alsafaat, kar_id=401",
                        "category": "fallback-mode",
                        "severity": "warning",
                        "nama": "Septian Nugraha Alsafaat",
                        "kar_id": "401",
                        "divisi": "Unknown"
                    },
                    {
                        "timestamp": "2026-07-31 00:47:02",
                        "raw_log": "[2026-07-31 00:47:02] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Azhar Muhamad, kar_id=338",
                        "message": "\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Azhar Muhamad, kar_id=338",
                        "category": "fallback-mode",
                        "severity": "warning",
                        "nama": "Azhar Muhamad",
                        "kar_id": "338",
                        "divisi": "Unknown"
                    },
                    {
                        "timestamp": "2026-07-31 00:47:03",
                        "raw_log": "[2026-07-31 00:47:03] \u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rivkey Raka Bima Ardiansyah, kar_id=697",
                        "message": "\u26a0 ALLOWING FALLBACK: Schedule coverage only 0% for nama=Rivkey Raka Bima Ardiansyah, kar_id=697",
                        "category": "fallback-mode",
                        "severity": "warning",
                        "nama": "Rivkey Raka Bima Ardiansyah",
                        "kar_id": "697",
                        "divisi": "Unknown"
                    },
                    {
                        "timestamp": "2026-07-31 04:54:05",
                        "raw_log": "[2026-07-31 04:54:05] [AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond",
                        "message": "[AIVEN] Koneksi gagal (non-fatal): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond",
                        "category": "error",
                        "severity": "critical",
                        "divisi": "Unknown"
                    }
                ]
            }
        ],
        "total_alerts": 1,
        "date": "2026-07-31",
        "last_update": "2026-07-31 01:11:12"
    }
}