{{ session('success') }}
@endif
Client Profile & Project Space
{{ $client->project_name }}
@if($groupedCallNotes->isEmpty())
@else
@foreach($groupedCallNotes as $dateKey => $notes)
@foreach($notes as $note)
@php
$noteSentiment = strtolower($note->detected_sentiment ?? 'neutral');
$noteBadgeClass = match($noteSentiment) {
'happy' => 'emotion-happy',
'sad' => 'emotion-sad',
'angry' => 'emotion-angry',
default => 'emotion-neutral',
};
$noteEmoji = match($noteSentiment) {
'happy' => '😊 Happy / Satisfied',
'sad' => '😟 Concerned / Sad',
'angry' => '😡 Frustrated / Angry',
default => '😐 Neutral / Professional',
};
$todos = $note->todo_items ?? [];
if (empty($todos) && !empty($note->action_items)) {
$todos = $note->action_items;
}
@endphp
@endif
@if(!empty($note->key_decisions) && count($note->key_decisions) > 0)
@if($note->raw_transcript)
@endif
@php
$hasRecording = !empty($note->recording_path) || !empty($note->recordings) || (!empty($note->meeting) && (!empty($note->meeting->recording_path) || !empty($note->meeting->recordings)));
$recPath = $note->recording_path ?? ($note->meeting->recording_path ?? null);
if (!$recPath && !empty($note->recordings)) {
$firstRec = $note->recordings[0];
$recPath = is_array($firstRec) ? ($firstRec['url'] ?? $firstRec['full_url'] ?? null) : $firstRec;
}
if (!$recPath && !empty($note->meeting->recordings)) {
$firstRec = $note->meeting->recordings[0];
$recPath = is_array($firstRec) ? ($firstRec['url'] ?? $firstRec['full_url'] ?? null) : $firstRec;
}
@endphp
@if($hasRecording && $recPath)
@endif
@endforeach
@endforeach
@endif
📝
No Previous Calls Recorded Yet
When you conduct meetings with this client, AI will transcribe the audio, detect expressions, convert discussion into actionable tasks, and archive them date-wise here.
📅 {{ \Carbon\Carbon::parse($dateKey)->format('F j, Y') }}
{{ $notes->count() }} {{ $notes->count() === 1 ? 'call' : 'calls' }}
{{ $note->meeting->title ?? 'Client Call Session' }}
@if($noteSentiment === 'angry' && $canViewAngry)
@endif
Executive Summary
{{ $note->summary ?? 'Meeting completed with deliverables walkthrough and milestone planning.' }}
📋 Actionable Tasks Converted from Meeting ({{ count($todos) }})
@if(empty($todos))
@endforeach
@endif
@if(!empty($note->action_items) && count($note->action_items) > 0)
No actionable tasks logged for this call yet.
@else
@foreach($todos as $todo)
@php
$todoId = $todo['id'] ?? $loop->iteration;
$isCompleted = (bool)($todo['completed'] ?? false);
$priority = $todo['priority'] ?? 'Medium';
@endphp
{{ $todo['task'] ?? '' }}
Action Items & Deliverables
| Task | Owner | Deadline | Status |
|---|---|---|---|
| {{ is_array($act) ? ($act['task'] ?? json_encode($act)) : $act }} | {{ is_array($act) ? ($act['owner'] ?? 'Team') : 'Team' }} | {{ is_array($act) ? ($act['deadline'] ?? '-') : '-' }} | {{ is_array($act) ? ($act['status'] ?? 'Pending') : 'Pending' }} |
Key Decisions Made
-
@foreach($note->key_decisions as $dec)
- {{ is_array($dec) ? ($dec['decision'] ?? json_encode($dec)) : $dec }} @endforeach
📄 View Complete Minutes of Meeting (MoM)
{!! nl2br(e($note->mom_content)) !!}
🎙️ View Spoken Call Speech Transcript
{!! nl2br(e($note->raw_transcript)) !!}
🎥
Video Call Recording
High-fidelity WebRTC meeting recording
@if($client->meetings->isEmpty())
@else
⏰
No Upcoming Meetings Scheduled
Schedule a future call or launch an instant video meeting room.
@foreach($client->meetings as $meeting)
@php
$meetingHasRec = !empty($meeting->recording_path) || !empty($meeting->recordings);
$meetingRecPath = $meeting->recording_path;
if (!$meetingRecPath && !empty($meeting->recordings)) {
$firstRec = $meeting->recordings[0];
$meetingRecPath = is_array($firstRec) ? ($firstRec['url'] ?? $firstRec['full_url'] ?? null) : $firstRec;
}
@endphp
@endforeach
@endif
{{ $meeting->meeting_type === 'instant' ? '⚡ Instant' : '📅 Scheduled' }}
• {{ $meeting->status }}
@if($meetingHasRec)
🎥 Recording Available
@endif
{{ $meeting->title }}
@if($meeting->scheduled_at)
@if($meeting->agenda)
🕒 {{ $meeting->scheduled_at->format('M d, Y - h:i A') }} ({{ $meeting->duration_minutes }}m)
@else
🕒 Created: {{ $meeting->created_at->format('M d, Y - h:i A') }}
@endif
👤 Host: {{ $meeting->host->name ?? 'SingleLogin Host' }}
@if(!empty($meeting->client_emails))
✉️ Client Invites: {{ count($meeting->client_emails) }}
@endif
Agenda: {{ $meeting->agenda }}
@endif
@if($meetingHasRec && $meetingRecPath)
📥 Video
@endif
👉 Join Room
Project Scope & Specifications
{{ $client->project_details ?: 'No detailed scope description provided.' }}
Assigned Internal Project Team
Responsible Project Lead
{{ $client->responsibleUser->name ?? 'Unassigned' }}
{{ $client->responsibleUser->email ?? '' }}
Team Member
{{ $member->name }}
{{ $member->email }}