@extends('layouts.app') @section('title', 'SMS Campaigns') @section('content')

SMS Campaigns

Send bulk SMS to your customers — promotions, announcements, reminders.

New Campaign
@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif
You have {{ number_format($customerCount) }} customers with phone numbers available to message.
Total Campaigns
{{ number_format($stats['total'] ?? 0) }}
Sent
{{ number_format($stats['sent'] ?? 0) }}
Drafts
{{ number_format($stats['draft'] ?? 0) }}
Messages Delivered
{{ number_format($stats['total_delivered'] ?? 0) }}
@if($currentStatus) Clear filter @endif
@if($campaigns->isEmpty())

No campaigns yet

Create your first SMS campaign to reach your customers.

Create First Campaign
@else @foreach($campaigns as $c) @php $audience = $c->audience ?? 'all'; $audBg = 'rgba(148,163,184,0.15)'; $audColor = 'var(--text-muted)'; if ($audience === 'tag:vip') { $audBg = 'rgba(245,158,11,0.15)'; $audColor = 'var(--warning)'; } elseif ($audience === 'tag:regular') { $audBg = 'rgba(16,191,255,0.15)'; $audColor = 'var(--accent)'; } elseif ($audience === 'tag:new') { $audBg = 'rgba(34,197,94,0.15)'; $audColor = 'var(--success)'; } elseif ($audience === 'custom') { $audBg = 'rgba(16,191,255,0.15)'; $audColor = 'var(--accent)'; } $status = $c->status ?? 'draft'; $stBg = 'rgba(148,163,184,0.15)'; $stColor = 'var(--text-muted)'; if ($status === 'sent') { $stBg = 'rgba(34,197,94,0.15)'; $stColor = 'var(--success)'; } elseif ($status === 'failed') { $stBg = 'rgba(239,68,68,0.15)'; $stColor = 'var(--danger)'; } elseif ($status === 'sending') { $stBg = 'rgba(16,191,255,0.15)'; $stColor = 'var(--accent)'; } elseif ($status === 'scheduled') { $stBg = 'rgba(245,158,11,0.15)'; $stColor = 'var(--warning)'; } @endphp @endforeach
Name Audience Recipients Sent/Failed Status Created
{{ $c->name }}
{{ \Illuminate\Support\Str::limit($c->message, 60) }}
{{ ucfirst(str_replace(['tag:', '_'], ['', ' '], $audience)) }} {{ number_format($c->recipients_count ?? 0) }} {{ number_format($c->sent_count ?? 0) }} / {{ number_format($c->failed_count ?? 0) }} {{ $status }} {{ $c->created_at ? $c->created_at->diffForHumans() : '—' }} View
{{ $campaigns->links() }}
@endif
@endsection