Manejo de Interacciones en Bot de WhatsApp con JavaScript

Clase 14 de 28Curso de ChatBot con WhatsApp API

Resumen

¿Cómo capturar la interacción del usuario con botones?

¡Vamos a mejorar la experiencia del usuario! Cuando un usuario selecciona opciones como "Agendar", "Consultar" o "Ubicación", necesitamos capturar esas interacciones y responder de manera adecuada. Para lograrlo, debemos modificar nuestro código y asegurarnos de manejar estos eventos correctamente.

else if (message?.type === 'interactive') {
    const opcionEligida = message?.interactive?.button_reply?.title.toLowerCase();
    handleMenuOption(mesasFrom, opcionEligida);
    WhatsAppService.marcadoLeido(mesasID);
}

¿Cómo procesar la opción seleccionada?

Una vez capturada la interacción, crearemos una función llamada handleMenuOption para manejar las acciones basadas en la opción del usuario. Esta función permitirá construir el flujo de respuestas esperado.

async function handleMenuOption(quien, opcion) {
    let response;
    
    switch(opcion) {
        case 'agendar':
            response = 'Vamos a agendar una cita. Aquí está el flujo...';
            break;
        
        case 'consultar':
            response = 'Realiza tu consulta ahora.';
            break;
        
        case 'ubicacion':
            response = 'Esta es nuestra ubicación.';
            break;
        
        default:
            response = 'Lo siento, no entendí tu selección. Por favor, elige una de las opciones del menú.';
            break;
    }
    
    await WhatsAppService.sendMessage(quien, response);
}

¿Cómo enviar respuestas según la lógica definida?

Después de determinar la opción que el usuario eligió, enviaremos una respuesta. Para mantener una buena comunicación, es importante reutilizar el servicio de mensajes de WhatsApp en modo texto, evitando crear múltiples lógicas para manejar diferentes tipos de mensajes.

Manejo de errores: ¿qué hacer si algo falla?

Los errores son nuestros aliados cuando se trata de depuración. En este caso, si encontramos un error durante la ejecución, es crucial revisar los 'logs' que invitan con información detallada sobre la falla, como un parámetro ausente o un invalid request.

WhatsAppService.sendMessage(quien, response).catch((error) => {
    console.error('Error al enviar el mensaje:', error);
});

¿Cómo mejorar la funcionalidad del bot?

¡Es solo el comienzo! Al lograr que el bot reconozca y maneje interacciones básicas, podemos empezar a incluir contenido multimedia y otros recursos, como imágenes o audios, que enriquecerán los flujos de interacción y ofrecerán una experiencia más dinámica.

Continúa explorando y construyendo funciones adicionales para agendar citas, enviar ubicaciones precisas y guardar información proporcionada por el usuario. Con cada paso, el bot se convertirá en una poderosa herramienta de soporte y automatización, ¡así que sigue aprendiendo y experimentando!