Recordatorios de citas con Node.js y Express
¡Ahoy! Ahora te recomendamos que crees tus recordatorios de citas SMS con la funcionalidad de programación de mensajes integrada de Twilio. Dirígete a la Documentación de recursos de mensajes para obtener más información sobre la programación de mensajes de SMS.
Esta aplicación web de Node.js Express envía recordatorios para citas futuras que los clientes también pueden crear mediante la aplicación móvil. Esto se realiza mediante un trabajo en segundo plano que se ejecuta cada minuto.
En este tutorial destacaremos los fragmentos clave de código que hacen que funcione esta aplicación móvil. Consulta el archivo README del proyecto en GitHub para conocer cómo ejecutar el código por tu cuenta.
Comprueba cómo Yelp utiliza SMS para confirmar las reservas de restaurantes para los comensales.
¡Empecemos! Haz clic en el botón que aparece a continuación para empezar.
Configurar la aplicación móvil para usar Twilio
Antes de poder usar la API de Twilio para enviar mensajes de texto de recordatorio, necesitamos configurar las credenciales de nuestra cuenta. Estos se pueden encontrar en la consola de Twilio. También necesitarás un número de teléfono compatible con SMS, puedes encontrar o comprar uno nuevo aquí.
Para enviar un recordatorio de cita, primero necesitamos una cita.
Crear una cita nueva
En el controlador introducimos la información necesaria (el nombre y el número de teléfono del cliente, además de la hora y la fecha de la cita) al guardarla en un modelo de Appointment
.
Utilizamos mongoose en esta aplicación móvil para almacenar nuestro modelo en MongoDB.
var AppointmentSchema = new mongoose.Schema({
name:String,
phoneNumber: String,
notification : Number,
timeZone : String,
time : {type : Date, index : true}
});
Ahora que hemos creado nuestra Appointment
, veamos cómo programar un recordatorio para ello.
Programar un trabajo para enviar recordatorios
Nos gustaría que nuestra aplicación móvil comprobara cada minuto la base de datos de citas para ver si se avecina alguna cita que requiera el envío de recordatorios.
Para hacer esto usamos node-cron.
Configuramos en la función de inicio tanto el código de trabajo que nos gustaría ejecutar como el intervalo en el que ejecutarlo. A continuación, lo llamamos desde el punto de entrada de ejecución de la aplicación móvil de la siguiente manera: scheduler.start()
Esta función de start
utiliza un notificationsWorker
, a continuación veremos cómo funciona.
Crear una función de trabajo para ejecutar el trabajo
Para ejecutar nuestra lógica de trabajo recurrente, creamos una función de trabajo que utiliza un método de modelo estático a fin de consultar la base de datos de las próximas citas y enviar recordatorios según sea necesario.
A continuación, veamos cómo funciona el trabajo de Appointment
en detalle.
Buscar citas que necesiten recordatorios
Nuestro trabajo recurrente utiliza un método de modelo estático del modelo Appointment
para consultar la base de datos de las citas que se actualizan cada minuto y enviar mensajes de recordatorio con un cliente de REST de Twilio que inicializamos previamente con nuestras credenciales de cuenta de Twilio.
Debido a que las citas se establecen en diferentes zonas horarias, utilizamos la biblioteca Moment.js para consultar de forma adecuada cada cita próxima en función de su zona horaria.
Solo queda enviar el SMS real. Lo veremos a continuación.
Enviar mensajes de recordatorio con la API de Twilio
Se llama a este código para cada cita que surja y que requiera el envío de un recordatorio. Proporcionamos un objeto de configuración con un campo to
, que es el número de teléfono del cliente, un campo from
, que es un número en nuestra cuenta, y un campo body
, que contiene el texto del mensaje. Luego lo pasamos al método sendMessage
junto con una devolución de llamada para registrar errores y éxito.
¡Eso es todo! Nuestra aplicación móvil se ha configurado para enviar recordatorios de las próximas citas.
¿Dónde ir a continuación?
Esperamos que esta aplicación móvil de muestra te haya resultado útil. Si eres un desarrollador de Node.js o Express que trabaja con Twilio, puedes consultar estos tutoriales:
Automatización del flujo de trabajo
Crea un flujo de trabajo de SMS automatizado listo para escalar en una empresa de alquiler vacacional.
Realiza llamadas de navegador a teléfono y de navegador a navegador con facilidad.
¿Te ayudó esto?
Gracias por consultar este tutorial. Si tienes algún comentario que compartir con nosotros, comunícate con nosotros en Twitter... nos encantaría saber lo que piensas y conocer lo que estás creando.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.