6. Agentes conversacionales de IA para WhatsApp

0 de 11 lecciones completas (0%)

Evolution API

3. Clasificando Tipos de Mensaje con el Nodo Switch

Descarga el WorkFlow de la lección:

Hasta ahora, nuestro flujo de trabajo gestiona la recepción y el procesamiento inicial de los mensajes. Sin embargo, un agente de IA verdaderamente útil debe ser capaz de manejar más que solo texto. ¿Qué pasa si un usuario envía una imagen, una nota de voz o un documento?

En esta lección, implementaremos la «inteligencia» de clasificación utilizando uno de los nodos más poderosos de N8n: el nodo Switch.

Objetivos de esta lección:

  • Entender el funcionamiento del nodo Switch para crear rutas lógicas.
  • Configurar el flujo para que identifique si un mensaje es texto, audio, imagen o documento.
  • Aprender a descubrir los identificadores de diferentes tipos de mensaje mediante pruebas.
  • Preparar nuestra instancia de Evolution API para manejar archivos multimedia.

Paso 1: Introducción y Configuración del Nodo Switch

Piensa en el nodo Switch como un director de tráfico. Recibe los datos y, basándose en una o varias reglas que nosotros definimos, los envía por diferentes caminos o «salidas».

  1. Añade un nuevo nodo Switch después del nodo marcar_mensajes_como_leídos.
  2. Renombra el nodo a  clasificar_tipo_de_mensaje.
  3. Lo que vamos a evaluar es nuestra variable tipo_mensaje, que creamos en el nodo organizar_datos.

Vamos a configurar nuestra primera regla para los mensajes de texto:

  1. En la configuración del nodo Switch (clasificar_tipo_de_mensaje)
  2. Configura esta nueva regla:
    • Value 1: Arrastra la variable tipo_mensaje (que ahora vale conversation).
    • Operation: is equal to.
    • Value 2: Escribe conversation.
    • Renombra la salida: hora, para que sea más claro, renombraremos la salida a Texto.

Si te sales del nodo, verás que ahora tiene una salida claramente etiquetada como «texto«.

Paso 2: Añadir Regla para mensajes de audio

Ya sabemos cómo identificar el texto, pero ¿qué valor tiene tipo_mensaje cuando recibimos un audio o una imagen? Vamos a descubrirlo.

  1. Desanclar los datos de prueba: Ve a tu primer nodo (el Webhook recibe_whatsapp). Verás un pequeño icono de un pin morado, indicando que está usando los datos de la última prueba. Haz clic en él y pulsa la tecla «p» para desactivarlo («unpin»).
  2. Poner el flujo en modo escucha: Guarda el workflow y haz clic en Test Workflow. N8n esperará un nuevo evento.
  3. Enviar una nota de voz: Desde tu teléfono, envía un audio corto al número de WhatsApp conectado.
  4. N8n recibirá el evento y ejecutará el flujo. El flujo se detendrá en el nodo Switch porque no encontrará una regla que coincida.
  5. Haz clic en el nodo organizar_datos y mira el Output. Verás que ahora el valor de la variable tipo_mensaje es audioMessage.

¡Ahora podemos añadir la regla para el audio!

  1. Vuelve al nodo Switch (clasificar_tipo_de_mensaje).
  2. Haz clic en Add routing rule.
  3. Configura esta nueva regla:
    • Value 1: Arrastra la variable tipo_mensaje (que ahora vale audioMessage).
    • Operation: is equal to.
    • Value 2: Escribe audioMessage.
    • Renombra la salida: Cámbiale el nombre a audio.

Paso 3: Añadir Regla para Imágenes

Repetiremos el mismo proceso de descubrimiento para los demás tipos de archivo.

  1. Vuelve a poner el flujo en modo de prueba (Test Workflow).
  2. Envía una imagen desde tu teléfono. Revisa el nodo organizar_datos y verás que el tipo_mensaje es imageMessage.
  3. Configura esta nueva regla:
    • Value 1: Arrastra la variable tipo_mensaje (que ahora vale imageMessage).
    • Operation: is equal to.
    • Value 2: Escribe imageMessage.
    • Renombra la salida: Cámbiale el nombre a imagen.

Paso 4: Añadir Regla para Documentos

Repetiremos el mismo proceso de descubrimiento para los demás tipos de archivo.

  1. Vuelve a poner el flujo en modo de prueba (Test Workflow).
  2. Envía un documento (como un PDF) desde tu teléfono. Revisa el nodo organizar_datos y verás que el tipo_mensaje es documentMessage.
  3. Configura esta nueva regla:
    • Value 1: Arrastra la variable tipo_mensaje (que ahora vale documentMessage).
    • Operation: is equal to.
    • Value 2: Escribe documentMessage.
    • Renombra la salida: Cámbiale el nombre a documento.

Ahora tu nodo Switch debería tener cuatro salidas distintas, una para cada tipo de mensaje que queremos manejar.

Paso 4: Habilitar el Envío de Archivos (Base64) en Evolution API

Para que podamos procesar el contenido de las imágenes, audios y documentos, necesitamos que Evolution API nos envíe no solo la notificación, sino el archivo en sí. Esto lo hace codificando el archivo en un formato de texto llamado Base64.

Para activarlo, debemos añadir unas variables de entorno a nuestra configuración de Evolution API en Portainer (o donde lo tengas desplegado).

  1. Ve a tu Portainer y localiza el stack de Evolution API.
  2. Entra en el Editor.
  3. Desplázate hasta la sección de environment (variables de entorno), y baja hasta las variables de entorno de WEBHOOK.
  4. IMPORTANTE: Al final de esta sección, añade las siguientes tres variables (copiar y pegar):
    • - WEBHOOK_FORMAT=base64
    • - SEND_BASE64=true
    • - SEND_MEDIA_BASE64=true
  5. Una vez añadidas, haz clic en «Update the stack». Esto reiniciará el contenedor de Evolution API aplicando los nuevos cambios.

¿Por qué hacemos esto? Sin estas variables, Evolution API solo nos notificaría que «ha llegado una imagen», pero no nos enviaría el contenido de esa imagen. Ahora recibiremos un largo texto que representa el archivo, listo para ser procesado.

Resumen de la Lección:

¡Fantástico! Nuestro agente ahora es mucho más inteligente. Hemos aprendido a:

  • Utilizar el nodo Switch para dirigir el flujo de datos por diferentes caminos.
  • Identificar y crear rutas para mensajes de texto, audio, imagen y documento.
  • Configurar correctamente Evolution API para que nos envíe el contenido de los archivos multimedia.

Próximos Pasos:

Ahora que nuestro flujo puede recibir y clasificar archivos, en la siguiente lección nos sumergiremos en el procesamiento de estos. Aprenderemos a tomar los datos en Base64 de una imagen, convertirla de nuevo en un archivo y enviarla a OpenAI para que nos diga qué hay en ella.

Resumen de privacidad
Logo JeroCuevas.com

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Analítica

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.