From f06be3584fc9dad53a8122a930b2a311765b3434 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sat, 4 Jul 2026 16:18:41 -0500 Subject: [PATCH] feat: two-message post-selection flow in multi-company pre-menu After user selects a company, send short confirmation text then reset bot_context and trigger BotRouter with empty message to fire the greeting. Co-Authored-By: Claude Sonnet 4.6 --- admin/v1/WpWebhook.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/admin/v1/WpWebhook.php b/admin/v1/WpWebhook.php index eb367ed..7ae675a 100644 --- a/admin/v1/WpWebhook.php +++ b/admin/v1/WpWebhook.php @@ -209,9 +209,27 @@ class WpWebhook $company['_permission_type'] = self::getPermissionType($companies, $selectedId); self::$currentCompany = $company; $displayName = $company['display_name'] ?: $company['name']; - WhatsAppSender::sendText($from, "✅ Conectado con *{$displayName}*.\nEscribe tu consulta o *menú* para ver las opciones.", $phoneNumberId); + + // Mensaje 1: confirmación + WhatsAppSender::sendText($from, "✅ Conectado con *{$displayName}*.", $phoneNumberId); + + // Mensaje 2: greeting del bot — reset contexto y disparar con mensaje vacío + $botCtx = ConversationContext::getOrCreate((int)$selectedId, $from, 'normal'); + ConversationContext::reset((int)$botCtx['id']); + $synthCtx = [ + 'from' => $from, + 'name' => $name, + 'message_id' => 'mc_' . uniqid(), + 'type' => 'text', + 'timestamp' => time(), + 'phone_number_id' => $phoneNumberId, + 'display_phone' => '', + 'permission_type' => self::getPermissionType($companies, $selectedId), + ]; + BotRouter::route($company, $synthCtx, '', 'text'); + self::log('INFO', "Multi-empresa: {$from} seleccionó empresa #{$selectedId} ({$displayName})"); - return false; // el clic en botón no se procesa como comando del bot + return false; } // 2. Keyword de reinicio → borrar sesión y mostrar pre-menú