@extends('admin.layout') @section('title', 'WhatsApp Log') @section('content')

Monitor WhatsApp Bot

Fonnte: ✅ Online

Total

{{ $logs->total() }} outbox

Delivered

{{ $successCount }} done_all

Failed

{{ $failedCount }} error_outline

Pending

0 schedule

Delivery Rate

@php $totalProcessed = $successCount + $failedCount; $rate = $totalProcessed > 0 ? round(($successCount / $totalProcessed) * 100, 1) : 0; @endphp {{ $rate }}%
{{ round($rate) }}%
search
@forelse($logs as $log) @php $isFailed = $log->status !== 'success'; $rowClass = 'hover:bg-surface-container transition-colors'; if ($isFailed) { $rowClass = 'bg-error-container/20 hover:bg-error-container/40 transition-colors border-l-2 border-l-error'; } $statusBg = 'bg-primary-container'; $statusText = 'text-primary'; $statusIcon = 'done_all'; $statusColor = 'text-[#0D9488]'; $statusLabel = 'DELIVERED'; if ($isFailed) { $statusBg = 'bg-error/10'; $statusText = 'text-error'; $statusIcon = 'error'; $statusColor = 'text-error'; $statusLabel = 'FAILED'; } @endphp @empty @endforelse
Waktu Penerima Tipe Notif Status Retry
{{ $log->created_at->format('H:i:s') }} {{ $log->created_at->format('d M Y') }}
{{ $log->recipient_name ?? 'Unknown Guest' }} {{ $log->recipient_number }}
SYSTEM_MSG
{{ $statusIcon }} {{ $statusLabel }}
@if($isFailed) @php $errorReason = 'API Error'; if(is_array($log->response) && isset($log->response['reason'])){ $errorReason = $log->response['reason']; } @endphp {{ Str::limit($errorReason, 30) }} @endif
@if($isFailed) @else -- @endif
Belum ada log WhatsApp.
{{ $logs->links() }}
report_problem

{{ $failedCount }} Notifikasi Gagal

PRIORITY
@if($failedCount > 0)

Terdapat {{ $failedCount }} kegagalan pada pengiriman notifikasi. Segera lakukan pengecekan pada konektivitas Fonnte atau kredensial akun.

@else

Sistem beroperasi dengan normal.

@endif

Penyebab Kegagalan

API Error / Invalid Total response gagal
{{ $failedCount }}

Last checked: --:--:--

rocket_launch

Sistem Stabil

Server cluster JKT-01 beroperasi dengan latensi 42ms

@endsection @section('scripts') @endsection