Conceptos básicos de validación de mensajes en programación

Clase 11 de 28Curso de ChatBot con WhatsApp API

Resumen

¿Cómo personalizar la respuesta de un bot para identificar al usuario?

El diseño de las respuestas de un bot es clave para lograr una interacción auténtica y personalizada con los usuarios. Para que el bot pueda identificar a cada usuario, necesitamos trabajar con ciertos elementos esenciales. En este caso, se utilizan dos: el ID del usuario compuesto por la lada del país y el número de WhatsApp, así como el nombre registrado. Al personalizar el saludo, el bot retorna un mensaje sensible que hace sentir al usuario valorado desde el primer contacto. Sin embargo, hay factores que debemos tener en cuenta:

  • Los nombres de los usuarios pueden contener caracteres especiales o emojis que no siempre cumplen con reglas estándar.
  • Aunque podemos usar expresiones regulares (regex) para extraer solo el primer nombre, esta no siempre es una solución universal.

El objetivo es establecer un mensaje de bienvenida cálido y desencadenar el flujo necesario.

¿Cómo configurar la lógica de identificación en el controller?

Para poder obtener la información del remitente, es esencial analizar la estructura del objeto de respuesta que nos ofrece la API que estamos utilizando. Necesitamos crear una constante llamada senderInfo, que nos ayude a acceder a los datos del contacto desde el primer índice del array de contactos. Este paso puede representarse con un código como el siguiente:

const senderInfo = response.contacts[0];

Es recomendable familiarizarse con esta estructura de datos, utilizando herramientas como Postman para observar la información detallada que se puede obtener y, en consecuencia, identificar los elementos que serán útiles en futuras implementaciones.

¿Cómo realizar un reconocimiento de saludos?

Para mejorar la interacción inicial del bot, se implementa una función que reconoce si un mensaje recibido es un saludo. Esto se puede lograr definiendo una función llamada isGreeting que devuelva un booleano.

function isGreeting(message) {
    const greetings = ['hello', 'hi', 'hola', 'buenas tardes'];
    return greetings.includes(message.toLowerCase().trim());
}

Con esta función, el bot puede distinguir entre mensajes de saludo y otros tipos de interacciones, permitiéndole responder adecuadamente.

¿Cómo enviar un mensaje de bienvenida personalizado?

Una vez identificado el saludo, es hora de enviar un mensaje de bienvenida personalizado. Para ello, se define una función asincrónica sendWelcomeMessage que conforma el saludo tomando en cuenta especificidades como el nombre del servicio ofrecido.

async function sendWelcomeMessage(user, messageId) {
    const welcomeMessage = `Hola, bienvenido a nuestro servicio de veterinaria online. ¿En qué puedo ayudarte hoy?`;
    await WhatsAppService.sendMessage(user, welcomeMessage, messageId);
}

Esta función se asegura de crear un sentimiento de acogida desde el primer contacto.

¿Cómo configurar la arquitectura y probar la lógica del bot?

Es crucial ajustar ciertos parámetros del entorno para que el bot funcione sin interrupciones:

  • Dentro de package.json, podemos agregar un script para facilitar el inicio del servidor:

    "scripts": {
      "start": "nodemon src/app.js"
    }
    
  • Verificar que el servidor está corriendo correctamente accediendo a la terminal y validando los últimos cambios con NodeMon.

Realizar pruebas es fundamental. Envía "hola", "hi" o cualquier otro saludo predefinido y verifica que el mensaje correcto regrese. Notarás que los mensajes no reconocidos como saludos seguirán usando la lógica previa, consistente en replicar el mensaje original.

Explora y comenta qué tipo de saludo te parecería más efectivo para este contexto.