From a4b1eb2818c7eec50de89edce02da968351756e0 Mon Sep 17 00:00:00 2001 From: Yera All Date: Wed, 8 Apr 2026 01:19:40 +0500 Subject: [PATCH] feat(voice): auto-populate name from known customer on repeat calls When a new voice session starts and the customer already has a trusted display_name on file (e.g. from a previous call), automatically set name_status to 'name_obtained' so the AI greets them by name instead of asking again. --- services/ai_orchestrator_service/voice.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/services/ai_orchestrator_service/voice.py b/services/ai_orchestrator_service/voice.py index 2ff607f..fa29e7a 100644 --- a/services/ai_orchestrator_service/voice.py +++ b/services/ai_orchestrator_service/voice.py @@ -1664,6 +1664,21 @@ def start_voice_session(session_id: str, payload: VoiceAIStartIn) -> VoiceAIStar ) name_source = str(voice_session.customer_name_source or "none").strip() or "none" name_resolved_at = str(voice_session.customer_name_resolved_at or "").strip() or None + if name_status == "name_not_obtained" and not name_value: + caller_number, caller_name = _resolve_caller_from_call(session, payload.call_id) + if _display_name_looks_trusted(customer, caller_number, caller_name): + name_status = "name_obtained" + name_value = customer.display_name + name_source = "known_customer" + name_resolved_at = now + _persist_voice_name_state( + session, + voice_session=voice_session, + status=name_status, + value=name_value, + source=name_source, + resolved_at=name_resolved_at, + ) if name_status == "name_obtained" and name_value: finalized_name = _finalize_customer_name( session,