@extends('layouts.admin') @section('title','Communications') @section('heading','Communication delivery') @section('content')
Localized templates, preference-aware queued delivery, provider logs and safe test sends.
Payloads encrypted · secrets redactedUse declared placeholders such as @{{ customer_name }}.
{{ $templates->count() }} localized channel templates
Recipient preferences, contact fields and active device registrations are enforced.
Audience membership is frozen when dispatch starts, making retries deterministic.
Target, skip and channel-delivery analytics update from immutable recipient snapshots.
| Campaign | Audience | Channels | Status | Analytics | Schedule | Controls |
|---|---|---|---|---|---|---|
| {{ $campaign->name }} {{ $campaign->template_key }} | {{ collect($campaign->audience_roles)->join(', ') }} {{ collect($campaign->audience_locales ?? ['all locales'])->join(', ') }} | {{ collect($campaign->channels)->join(', ') }} | {{ $campaign->status }} | Target {{ $campaign->analytics['targeted'] }} · Sent {{ $campaign->analytics['sent'] }} · Failed {{ $campaign->analytics['failed'] }} · Skipped {{ $campaign->analytics['skipped'] }} | {{ $campaign->scheduled_at?->format('d M Y H:i') ?: 'Manual' }} | @foreach(($campaign->status==='paused' ? ['resume','cancel'] : (in_array($campaign->status,['draft','scheduled']) ? ['send','cancel'] : ($campaign->status==='processing' ? ['pause','cancel'] : []))) as $action)@endforeach |
| No audience campaigns. | ||||||
Message bodies and recipient device tokens are never displayed.
| Recipient | Template | Channel / provider | Status | Attempts | Provider ID | Updated | |
|---|---|---|---|---|---|---|---|
| {{ $delivery->user?->name }} {{ $delivery->user?->email }} | {{ $delivery->template?->key ?: 'Deleted template' }} | {{ strtoupper($delivery->channel) }} {{ $delivery->provider ?: 'pending' }} | {{ $delivery->status }} | {{ $delivery->attempts }} | {{ $delivery->provider_message_id ?: '—' }} | {{ $delivery->updated_at->diffForHumans() }} | @if($delivery->status==='failed')@endif |
| No delivery attempts yet. | |||||||