You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Calificar esta página:

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.

¡Empecemos!

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í.

Loading Code Sample...
        
        
        .env

        Configure the application to use Twilio

        .env

        Para enviar un recordatorio de cita, primero necesitamos una cita.

        Creemos algunas citas

        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}
        });
        
        Loading Code Sample...
              
              
              routes/appointments.js

              Create a new appointment

              routes/appointments.js

              Ahora que hemos creado nuestra Appointment, veamos cómo programar un recordatorio para ello.

              Programar el trabajo de recordatorio

              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()

              Loading Code Sample...
                    
                    
                    scheduler.js

                    Schedule a job to send reminders

                    scheduler.js

                    Esta función de start utiliza un notificationsWorker, a continuación veremos cómo funciona.

                    Ejecuta el trabajo.

                    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.

                    Loading Code Sample...
                          
                          
                          workers/notificationsWorker.js

                          Create a worker function to run the job

                          workers/notificationsWorker.js

                          A continuación, veamos cómo funciona el trabajo de Appointment en detalle.

                          Buscar citas que necesiten recordatorios

                          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.

                          Loading Code Sample...
                                
                                
                                models/appointment.js

                                Buscar citas que necesiten recordatorios

                                models/appointment.js

                                Solo queda enviar el SMS real. Lo veremos a continuación.

                                Enviar mensajes de recordatorio con la API de Twilio

                                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.

                                Loading Code Sample...
                                      
                                      
                                      models/appointment.js

                                      Enviar mensajes de recordatorio con la API de Twilio

                                      models/appointment.js

                                      ¡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?

                                      ¿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.

                                      Llamadas del navegador

                                      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.

                                      Mario Celi Kevin Segovia Daniel Erazo
                                      Calificar esta página:

                                      ¿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.

                                      Loading Code Sample...
                                            
                                            
                                            

                                            Gracias por tus comentarios.

                                            Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

                                            Enviando tus comentarios…
                                            🎉 Gracias por tus comentarios.
                                            Se produjo un error. Inténtalo de nuevo.

                                            Gracias por tus comentarios.

                                            thanks-feedback-gif