Campaign: {{ $campaign->name }}
{{ $campaign->name }}
{{ strtoupper($campaign->type) }} Created {{ $campaign->created_at->format('d M Y H:i') }} @if($campaign->sent_at) · Sent {{ $campaign->sent_at->format('d M Y H:i') }} @else · ⏳ Queued @endif
← Campaigns
{{-- KPIs --}}
Recipients
{{ count($campaign->recipients ?? []) }}
Sent
{{ $campaign->logs()->where('status','sent')->count() }}
Failed
{{ $campaign->logs()->where('status','failed')->count() }}
Queued
{{ $campaign->logs()->where('status','queued')->count() }}
{{-- Summary + Message --}}
Details
@if($campaign->subject)
Subject
{{ $campaign->subject }}
@endif
Channel
{{ strtoupper($campaign->type) }}
Created
{{ $campaign->created_at->format('d M Y H:i') }}
@if($campaign->sent_at)
Sent At
{{ $campaign->sent_at->format('d M Y H:i') }}
@endif
Message Content
{{ $campaign->message }}

Placeholders like {name}, {last_visit}, {vehicle} are replaced per recipient at send time.

{{-- Delivery log --}}
Delivery Log {{ $logs->total() }} records
@if($logs->isEmpty())
No delivery records yet.
@else
@foreach($logs as $log) @endforeach
Client Sent To Status Time Error
{{ $log->client?->full_name ?? '—' }} {{ $log->to }} {{ ucfirst($log->status) }} {{ $log->sent_at ? $log->sent_at->format('H:i, d M') : '—' }} {{ $log->error_message ? Str::limit($log->error_message, 80) : '—' }}
@if($logs->hasPages())
{{ $logs->links() }}
@endif @endif