Mensajes Interactivos
Para ver la documentación completa de mensajes interactivos, consulta la Documentación Completa de Mensajes.
Enviar Mensajes Interactivos.
-
Mensajes con Botones Interactivos
Enviar mensajes con botones interactivos:use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); //EJEMPLO 1 $buttonResponse = Whatsapp::sendButtonMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('¿Confirmas tu cita para mañana a las 3 PM?') ->addButton('confirmar', '✅ Confirmar') ->addButton('reagendar', '🔄 Reagendar') ->withFooter('Por favor selecciona una opción') ->send(); //EJEMPLO 2 $buttonResponse = Whatsapp::sendButtonMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('¿Cómo calificarías nuestro servicio?') ->addButton('excelente', '⭐️⭐️⭐️⭐️⭐️ Excelente') ->addButton('bueno', '⭐️⭐️⭐️⭐️ Bueno') ->addButton('regular', '⭐️⭐️⭐️ Regular') ->withFooter('Tu opinión nos ayuda a mejorar') ->send(); //EJEMPLO 3 // Obtener ID de un mensaje anterior (debes tener uno real) $contextMessage = \ScriptDevelop\WhatsappManager\Models\Message::first(); $contextId = $contextMessage->wa_id; $buttonResponse = Whatsapp::sendButtonMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('Selecciona el tipo de soporte que necesitas:') ->addButton('soporte-tecnico', '🛠️ Soporte Técnico') ->addButton('facturacion', '🧾 Facturación') ->addButton('quejas', '📣 Quejas y Reclamos') ->withFooter('Horario de atención: L-V 8am-6pm') ->inReplyTo($contextId) // Aquí especificas el mensaje al que respondes ->send(); // EJEMPLOS CON HEADER texto $buttonResponse = Whatsapp::sendButtonMessage($phone->phone_number_id) ->to('57', '313714R3534') ->withHeader('Catálogo Digital') ->withBody('¿Confirmas tu cita para mañana a las 3 PM?') ->addButton('confirmar', '✅ Confirmar') ->addButton('reagendar', '🔄 Reagendar') ->withFooter('Por favor selecciona una opción') ->send(); // EJEMPLOS CON HEADER imagen $file = new \SplFileInfo(storage_path('app/public/laravel-whatsapp-manager.png')); $buttonResponse = Whatsapp::sendButtonMessage($phone->phone_number_id) ->to('57', '313714R3534') ->withHeader($file) ->withBody('¿Confirmas tu cita para mañana a las 3 PM?') ->addButton('confirmar', '✅ Confirmar') ->addButton('reagendar', '🔄 Reagendar') ->withFooter('Por favor selecciona una opción') ->send(); -
Listas Desplegables Interactivas
Enviar mensajes con Listas desplegables interactivas:use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); // EJEMLPO 1 - SIN ENCADENAR $listBuilder = Whatsapp::sendListMessage($phone->phone_number_id) ->to('57', '31371235638') ->withButtonText('Ver Productos') ->withBody('Nuestros productos destacados:') ->withHeader('Catálogo Digital') ->withFooter('Desliza para ver más opciones'); $listBuilder->startSection('Laptops') ->addRow('laptop-pro', 'MacBook Pro', '16" - 32GB RAM - 1TB SSD') ->addRow('laptop-air', 'MacBook Air', '13" - M2 Chip - 8GB RAM') ->endSection(); $listBuilder->startSection('Smartphones') ->addRow('iphone-15', 'iPhone 15 Pro', 'Cámara 48MP - 5G') ->addRow('samsung-s23', 'Samsung S23', 'Pantalla AMOLED 120Hz') ->endSection(); $response = $listBuilder->send(); // EJEMLPO 2 - ENCADENADO $listBuilder = Whatsapp::sendListMessage($phone->phone_number_id) ->to('57', '31371235638') ->withButtonText('Ver Servicios') ->withBody('Selecciona el servicio que deseas agendar:') ->withFooter('Desliza para ver todas las opciones') ->startSection('Cortes de Cabello') ->addRow('corte-mujer', 'Corte Mujer', 'Estilo profesional') ->addRow('corte-hombre', 'Corte Hombre', 'Técnicas modernas') ->addRow('corte-niños', 'Corte Niños', 'Diseños infantiles') ->endSection() ->startSection('Tratamientos') ->addRow('keratina', 'Keratina', 'Tratamiento reparador') ->addRow('coloracion', 'Coloración', 'Tintes profesionales') ->addRow('mascarilla', 'Mascarilla', 'Hidratación profunda') ->endSection(); $response = $listBuilder->send(); // EJEMLPO 3 - respuesta a mensajes o reply // Obtener ID de un mensaje anterior (debes tener uno real) $contextMessage = \ScriptDevelop\WhatsappManager\Models\Message::first(); $contextId = $contextMessage->wa_id; $listBuilder = Whatsapp::sendListMessage($phone->phone_number_id) ->to('57', '31371235638') ->withButtonText('Seleccionar Servicio') ->withBody('Para el tipo de cita que mencionaste, tenemos estas opciones:') ->inReplyTo($contextId); // Aquí especificas el mensaje al que respondes $listBuilder->startSection('Consultas') ->addRow('consulta-general', 'Consulta General', '30 min - $50.000') ->addRow('consulta-especial', 'Consulta Especializada', '60 min - $90.000') ->endSection(); $listBuilder->startSection('Tratamientos') ->addRow('tratamiento-basico', 'Tratamiento Básico', 'Sesión individual') ->addRow('tratamiento-premium', 'Tratamiento Premium', 'Incluye seguimiento') ->endSection(); $response = $listBuilder->send(); // EJEMPLO CON HEADER texto $listBuilder = Whatsapp::sendListMessage($phone->phone_number_id) ->to('57', '313714R3534') ->withButtonText('Ver Productos') ->withHeader('Catálogo Digital') // HEADER DE TECTO ->withBody('Nuestros productos destacados:') ->withFooter('Desliza para ver más opciones') ->startSection('Laptops') ->addRow('laptop-pro', 'MacBook Pro', '16" - 32GB RAM - 1TB SSD') ->addRow('laptop-air', 'MacBook Air', '13" - M2 Chip - 8GB RAM') ->endSection() ->startSection('Smartphones') ->addRow('iphone-15', 'iPhone 15 Pro', 'Cámara 48MP - 5G') ->addRow('samsung-s23', 'Samsung S23', 'Pantalla AMOLED 120Hz') ->endSection() ->send(); -
Mensajes de botones URL de llamada a la acción interactivos
Enviar Mensajes de botones URL de llamada a la acción interactivos:use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; $phone = WhatsappPhoneNumber::first(); // Ejemplo básico Whatsapp::sendCtaUrlMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('¡Visita nuestra nueva tienda online!') ->withButton('Ver Tienda', 'https://tienda.example.com') ->send(); // Ejemplo con header y footer Whatsapp::sendCtaUrlMessage($phone->phone_number_id) ->to('57', '31371235638') ->withHeader('Oferta Especial') ->withBody('Descuento del 20% en todos los productos') ->withButton('Ver Oferta', 'https://tienda.example.com/ofertas') ->withFooter('Válido hasta fin de mes') ->send(); // Ejemplo con header multimedia "Se debe usar un link de imagen publica para Image, Video, Documento" $imageUrl = 'https://play-lh.googleusercontent.com/1-hPxafOxdYpYZEOKzNIkSP43HXCNftVJVttoo4ucl7rsMASXW3Xr6GlXURCubE1tA=w3840-h2160-rw'; Whatsapp::sendCtaUrlMessage($phone->phone_number_id) ->to('57', '31371235638') ->withHeader($imageUrl) ->withBody('¡Nueva colección disponible!') ->withButton('Ver Colección', 'https://tienda.example.com/nueva-coleccion') ->send(); // Ejemplo como respuesta a otro mensaje $contextMessage = \ScriptDevelop\WhatsappManager\Models\Message::first(); $contextId = $contextMessage->wa_id; Whatsapp::sendCtaUrlMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('Aquí tienes el enlace que solicitaste:') ->withButton('Descargar Documento', 'https://example.com/documento.pdf') ->inReplyTo($contextId) ->send(); -
Mensajes de botones Interactivo de solicitud de ubicacion
Enviar Mensajes con boton de solicitud de ubicacion:Whatsapp::sendLocationRequestMessage($phone->phone_number_id) ->to('57', '31371235638') ->withBody('Por favor comparte tu ubicación para ayudarte mejor') ->send();
Enviar Mensajes de Producto.
-
Mensaje de Producto Individual
Enviar mensaje de Producto Simple.use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); $productId = 'PROD-12345'; // ID del producto en tu catálogo // Enviar un solo producto con texto descriptivo WhatsappManager::message()->sendSingleProductMessage( $phone->phone_number_id, '52', // Código de país (México) '5512345678', // Número de destino $productId, '¡Mira este increíble producto que tenemos para ti!' ); -
Mensaje con Múltiples Productos
Enviar mensaje de Multiples Productos.use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; use ScriptDevelop\WhatsappManager\Services\CatalogProductBuilder; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); $builder = new CatalogProductBuilder( WhatsappManager::getDispatcher(), $phone->phone_number_id, ); $builder->to('52', '5512345678') ->withBody('Productos recomendados para ti:') ->withHeader('Ofertas Especiales') ->withFooter('Válido hasta el 30 de Junio') // Sección 1 ->startSection('Productos Destacados') ->addProduct('PROD-12345') ->addProduct('PROD-67890') ->endSection() // Sección 2 ->startSection('Nuevos Lanzamientos') ->addProduct('PROD-54321') ->addProduct('PROD-09876') ->endSection() ->send(); -
Mensaje de Catálogo Completo
Enviar mensaje de Catalogo completo.use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; use ScriptDevelop\WhatsappManager\Services\CatalogProductBuilder; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); WhatsappManager::message()->sendFullCatalogMessage( $phone->phone_number_id, '52', '5512345678', 'Ver Catálogo', // Texto del botón 'Explora nuestro catálogo completo de productos', '¡Envíanos un mensaje para más información!' // Footer ); -
Mensaje de Producto como Respuesta o Replica
Enviar mensaje de Producto simple con replica o contecto.use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; use ScriptDevelop\WhatsappManager\Services\CatalogProductBuilder; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); // Responder a un mensaje específico con un producto $contextMessageId = 'wamid.XXXXXX'; // ID del mensaje original WhatsappManager::message()->sendSingleProductMessage( $phone->phone_number_id, '52', '5512345678', 'PROD-12345', 'Este es el producto que mencionaste:', $contextMessageId ); -
Mensaje Interactivo con Productos (Avanzado)
Enviar mensaje de Productos Interactivos Avanzados y con Replica o contexto.use ScriptDevelop\WhatsappManager\Facades\Whatsapp; use ScriptDevelop\WhatsappManager\Models\WhatsappBusinessAccount; use ScriptDevelop\WhatsappManager\Models\WhatsappPhoneNumber; use ScriptDevelop\WhatsappManager\Services\CatalogProductBuilder; $account = WhatsappBusinessAccount::first(); $phone = $account->phoneNumbers->first(); WhatsappManager::message()->sendMultiProductMessage( $phone->phone_number_id, '52', '5512345678', [ [ 'title' => 'Ofertas', 'product_items' => [ ['product_retailer_id' => 'PROD-123'], ['product_retailer_id' => 'PROD-456'] ] ], [ 'title' => 'Nuevos', 'product_items' => [ ['product_retailer_id' => 'PROD-789'] ] ] ], '¡Estos productos podrían interesarte!', 'Descuentos Especiales', // Header null, // Footer $contextMessageId // Respuesta a mensaje );