Portal chat inbox

Messages from the public operator portal landing assistant (visitors who are not signed in). Expect questions about contracted-organisation access; this is not a self-registration queue. Open a dialog on each row to read the full thread and record an internal staff response (stored for the control station; visitors do not see these replies in the landing widget today).

@if (session('status'))

{{ session('status') }}

@endif @if ($errors->any())
@foreach ($errors->all() as $err)

{{ $err }}

@endforeach
@endif
@forelse ($portalChatMessages as $row) @empty @endforelse
Received Preview Contact Replies Dialog
{{ $row->created_at?->timezone(config('app.timezone'))->format('M j, Y g:i A') }}

{{ \Illuminate\Support\Str::limit($row->body, 220) }}

{{ $row->sender_email ?: '—' }} {{ $row->replies->count() }}
No portal chat messages yet.
@foreach ($portalChatMessages as $row)

Portal visitor message

Thread #{{ $row->id }}

Visitor · {{ $row->created_at?->timezone(config('app.timezone'))->format('M j, Y g:i A') }}

{{ $row->body }}

@if ($row->sender_email)

Email: {{ $row->sender_email }}

@endif
@foreach ($row->replies as $reply)

Staff @if ($reply->staffUser) · {{ $reply->staffUser->name }} ({{ $reply->staffUser->email }}) @endif · {{ $reply->created_at?->timezone(config('app.timezone'))->format('M j, Y g:i A') }}

{{ $reply->body }}

@endforeach
@csrf @if (request()->filled('access_token')) @endif
@endforeach @if (session('portal_chat_focus_thread_id')) @endif