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:

Automatización del flujo de trabajo con C# y ASP.NET Core

Uno de los conceptos más abstractos que te encontrarás al crear tu empresa es el aspecto que tendrá el flujo de trabajo.

En esencia, la configuración de un flujo de trabajo estandarizado consiste en permitir que tus proveedores de servicios (agentes, anfitriones, representantes del servicio de atención al cliente, administradores y el resto del grupo) presten un mejor servicio a tus clientes.

Para ilustrar un ejemplo muy real, hoy crearemos una aplicación web de C# y ASP.NET Core MVC para buscar y reservar propiedades vacacionales, llamada provisionalmente Airtng.

Así es como funcionará:

  1. Un anfitrión crea una lista de propiedades vacacionales
  2. Un huésped solicita la reserva de una propiedad
  3. El anfitrión recibe un SMS que lo notifica sobre la solicitud de reserva. El anfitrión puede aceptar o rechazar la reserva
  4. Se notifica al huésped si se aceptó o rechazó la solicitud

Obtén información sobre cómo Airbnb utilizó Twilio SMS a fin de optimizar la experiencia de alquiler para más de 60 millones de viajeros de todo el mundo.

Componentes básicos del flujo de trabajo

Utilizaremos la API REST de Twilio para enviar mensajes a nuestros usuarios en momentos importantes. Aquí hay un poco más de información sobre nuestra API:

Loading Code Sample...
        
        

        Send messages

        ¿Listo para empezar? Haz clic en el botón que se encuentra justo después de esta oración.

        Haz clic aquí para seguir adelante

        Autenticar usuarios

        Para que este caso de uso funcione, tenemos que gestionar la autenticación. Confiamos en ASP.NET Core Identity para este fin.

        El usuario de Identity ya incluye un phone_number que será necesario para enviar notificaciones de SMS más adelante.

        Loading Code Sample...
              
              

              The User model

              A continuación, echemos un vistazo al modelo de propiedad vacacional.

              Next

              El modelo de propiedad vacacional

              Nuestra aplicación móvil de alquiler obviamente requerirá un listado de propiedades.

              La VacationProperty pertenece al User que la creó (a partir de ahora, a este usuario lo llamaremos anfitrión) y contiene solo dos propiedades: una Description y una ImageUrl.

              Una VacationProperty puede tener muchas Reservations.

              Loading Code Sample...
                    
                    

                    Vacation Property Model

                    A continuación, veamos el aspecto de nuestro modelo de reserva.

                    Next

                    Modelo de reserva

                    El modelo de Reservation se encuentra en el centro del flujo de trabajo para esta aplicación móvil.

                    Es responsable de realizar un seguimiento de los siguientes elementos:

                    • La VacationProperty con la que está asociado para tener acceso. A través de esta propiedad, el usuario tendrá acceso al número de teléfono del anfitrión de forma indirecta.
                    • El Name y PhoneNumber del huésped.
                    • El Message que se envió al huésped en el momento de la reserva.
                    • El Status de la reserva.
                    Loading Code Sample...
                          
                          

                          The Reservation Model

                          Ahora que nuestros modelos se encuentran listos, echemos un vistazo al controlador que creará las reservas.

                          Next

                          Crear una reserva

                          El formulario de creación de reservas contiene un solo campo: el mensaje que se enviará al anfitrión cuando se reserve una de sus propiedades. El resto de la información necesaria para crear una reserva se toma de la misma VacationProperty.

                          Se crea una reserva con un estado predeterminado ReservationStatus.Pending. De ese modo, cuando el anfitrión responde con accept o reject, la aplicación móvil sabe qué reserva actualizar.

                          Loading Code Sample...
                                
                                

                                The Reservation Controller

                                A continuación, veamos cómo enviaremos notificaciones de SMS al anfitrión del alquiler vacacional.

                                ¡Envíale un mensaje al anfitrión!

                                Notificar al anfitrión

                                Cuando se crea una reserva, queremos notificar al propietario de la propiedad que alguien está interesado.

                                Aquí es donde usamos la biblioteca auxiliar de Twilio para C# a fin de enviar un mensaje SMS al anfitrión, mediante nuestro número de teléfono de Twilio. Como puedes ver, enviar mensajes SMS con Twilio solo toma unas pocas líneas de código.

                                A continuación, solo tenemos que esperar a que el anfitrión envíe una respuesta SMS aceptando o rechazando la reserva. Lugo, podemos notificar al huésped y al anfitrión que se actualizó la información de la reserva.

                                Loading Code Sample...
                                      
                                      

                                      Notify the host

                                      Ahora veamos cómo gestionamos las respuestas del anfitrión.

                                      Next

                                      Gestionar mensajes entrantes

                                      El controlador de Sms/Handle gestiona nuestra solicitud entrante de Twilio y realiza las siguientes cuatro cosas:

                                      1. Comprueba la reserva pendiente del huésped
                                      2. Actualiza el estado de la reserva
                                      3. Responde al anfitrión
                                      4. Envía una notificación al huésped
                                      Loading Code Sample...
                                            
                                            

                                            Gestionar una respuesta del anfitrión

                                            Veamos con más detalle cómo los webhooks de Twilio se encuentran configurados para permitir solicitudes entrantes a nuestra aplicación móvil.

                                            Next

                                            Solicitudes entrantes de Twilio

                                            En la consola de Twilio, debes configurar el webhook de SMS para llamar al punto final de la aplicación móvil en la ruta Reservations/Handle.

                                            SMS Webhook

                                            Una manera de exponer tu máquina de desarrollo al mundo exterior es con la utilización de ngrok. La URL del webhook de SMS de tu número tendría el siguiente aspecto:

                                            http://<subdomain>.ngrok.io/Reservations/Handle
                                            

                                            Una solicitud entrante de Twilio cuenta con algunos parámetros útiles, como un número de teléfono from y el body del mensaje.

                                            Usaremos el parámetro from para buscar al anfitrión y comprobar si tiene reservas pendientes. Si es así, utilizaremos el cuerpo del mensaje para comprobar si se “acepta” o “rechaza”.

                                            En el último paso, usaremos TwiML de Twilio como respuesta a Twilio para enviar un mensaje SMS al huésped.

                                            Ahora que sabemos cómo exponer un webhook para gestionar solicitudes de Twilio, veamos cómo generamos el TwiML necesario.

                                            Generar un TwiML

                                            Respuesta TwiML

                                            Después de actualizar el estado de la reserva, debemos notificar al anfitrión que confirmó o rechazó la reserva de manera correcta. También tenemos que devolver un mensaje de error descriptivo si no hay reservas pendientes.

                                            Si la reserva se confirma o rechaza, enviamos un SMS adicional al huésped para entregar la información.

                                            Usamos el verbo Message de TwiML para indicar al servidor de Twilio que debe enviar los mensajes SMS.

                                            Loading Code Sample...
                                                  
                                                  

                                                  Responder a un mensaje

                                                  ¡Felicitaciones! Acabas de aprender a automatizar tu flujo de trabajo con Twilio SMS.

                                                  A continuación, veamos qué más podemos hacer con el SDK para C# de Twilio.

                                                  ¿Qué más puedo crear?

                                                  ¿Dónde ir a continuación?

                                                  Si eres un desarrollador de .NET que trabaja con Twilio, sabes que tenemos mucho contenido estupendo aquí en el sitio de documentos. Aquí hay un par de ideas para tu siguiente tutorial:

                                                  IVR: Árbol telefónico

                                                  Dirige fácilmente a los agentes de llamada a la información y a las personas adecuadas con un sistema de IVR (respuesta de voz interactiva).

                                                  Encuesta automatizada

                                                  Recopila al instante datos estructurados de tus usuarios con una encuesta realizada a través de una llamada de voz o mensajes de texto SMS.

                                                  ¿Esto fue de ayuda?

                                                  Gracias por consultar este tutorial. Escríbenos en Twitter, a @twilio, ¡y cuéntanos sobre lo que estás creando!

                                                  Maylon Pedroso 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