Graciela005's avatar

Pregunta!

¿Cómo se puede usar la tecnología de notificaciones automáticas (push o WhatsApp API)dentro del sistema para que los pacientes no olviden sus citas y confirmen su asistencia con un solo clic?

0 likes
3 replies
imranbru's avatar

Hola Graciela. Con 10 años de experiencia lidiando con este tipo de sistemas, te doy un consejo directo: ve por la API de WhatsApp. Las notificaciones Push (web) los pacientes las suelen bloquear o ignorar, y las Push (móviles) requieren que descarguen una app. WhatsApp tiene una tasa de apertura de casi el 98%.

Si estás trabajando con Laravel, esta es la arquitectura exacta que utilizo para resolver esto:

Usa Twilio o la Cloud API oficial de Meta. Ambas se integran excelente con los Channels de Laravel Notifications.

Crea un comando (php artisan make:command SendAppointmentReminders) y prográmalo en tu Console/Kernel.php para que corra todos los días en la mañana:

$schedule->command('appointments:remind')->dailyAt('08:00');

Para que el usuario confirme sin tener que hacer login, Laravel tiene una función perfecta llamada Signed URLs. En tu comando, cuando iteres sobre las citas de mañana, generas un link único y temporal:

$confirmUrl = URL::temporarySignedRoute(
    'appointments.confirm', 
    now()->addDays(2), // expira en 2 días
    ['appointment' => $appointment->id]
);

Creas la notificación (php artisan make:notification AppointmentReminder) y le pasas la URL. El mensaje que envíes a WhatsApp sería algo como: "Hola Juan, recuerda tu cita mañana a las 10:00am. Para confirmar tu asistencia, haz clic aquí: $confirmUrl"

El usuario hace clic en WhatsApp y se abre el navegador. En tu controlador, primero proteges la ruta con el middleware de Laravel para validar la firma y luego actualizas el estado:

public function confirm(Request $request, Appointment $appointment)
{
    if (! $request->hasValidSignature()) {
        abort(401, 'El enlace ha expirado o no es válido.');
    }

    $appointment->update(['status' => 'confirmed']);

    return view('appointments.success-message'); // "¡Gracias por confirmar!"
}

Es un flujo súper sólido, seguro (por la ruta firmada) y es exactamente la experiencia "sin fricción" que los pacientes necesitan hoy en día. ¡Éxito con la implementación!

Estinvosh's avatar

Great approach signed URLs + WhatsApp is super clean. Have you tried adding quick-reply buttons (Confirm / Reschedule) via WhatsApp templates? Also curious how you handle no-shows — do you send a follow-up or auto-reschedule flow?

Please or to participate in this conversation.