Hola a todos,
Hoy os quiero contar un viaje que me ha llevado a automatizar una tarea que solía consumir mucho tiempo. Todo empezó con una necesidad simple: extraer datos de contacto y detalles de empresa de correos electrónicos de una forma rápida y automática. Esta es la situación, en mi trabajo mis compañero me escriben pidiendo que contacte con clientes para ofrecerles ayuda, que va desde cargar copias de seguridad, darles formación, etc... Para ello, he utilizado un software de automatización llamado n8n y dos poderosas herramientas de inteligencia artificial: Gemini y la API de DeepSeek.
El Punto de Partida: N8N en Local
El primer paso
fue configurar n8n en mi ordenador. Opté por una instalación local, lo que me permite tener el control total sobre mis datos y flujos de trabajo sin depender de servicios en la nube. A través de la interfaz visual de n8n, pudisteis construir un flujo paso a paso, conectando diferentes nodos para realizar cada una de las tareas necesarias. Y nada como la consola para levantar el docker. Sencillo y con dos instrucciones.
En este proceso, usé Gemini como mi asistente técnico. En lugar de buscar en foros o documentaciones extensas, simplemente le explicabais vuestro problema y os guiaba con las instrucciones para configurar cada nodo, desde el gatillo de correo hasta las peticiones a la API. De hecho él me ha hecho todo, y cada vez que había un error le daba una captura de pantalla (porque soy así de cómodo).
El Corazón del Flujo: La Inteligencia Artificial
Para la tarea de extracción, elegí la API de DeepSeek. Aunque inicialmente consideré otras opciones, la API de DeepSeek me permitió realizar peticiones precisas para que extrajera la información del cuerpo de los correos electrónicos. La configuración de este nodo fue una de las partes más desafiantes. Tuve que resolver varios errores, incluyendo:Problemas de autenticación: Al principio, me daba un error Authorization failed. Descubrí que la clave de API no iba en los Query Parameters de la petición, sino en los Headers, bajo el nombre de Authorization y con el prefijo Bearer.
Formato de datos JSON: Otro error común fue JSON parameter need to be a valid JSON. Esto ocurría cuando el cuerpo de la petición no tenía el formato JSON correcto. La solución fue asegurarme de que el cuerpo fuera un JSON válido con los campos model, messages y el content de la petición a la IA.
Error de pago: Una vez que todo estaba técnicamente bien, la API me devolvió un error 402 - Payment Required. Esto me indicó que mi cuenta no tenía saldo suficiente para procesar las peticiones. Tras añadir 5 dólares, el problema se resolvió.
El Funcionamiento Técnico del Flujo
Para quienes quieran profundizar, el flujo en n8n consta de varios nodos clave:Email Trigger (IMAP): Este nodo es el punto de partida. Se conecta a mi servidor de correo y se activa cada vez que un correo no leído llega a la bandeja de entrada. Su configuración es crucial para asegurar que el flujo se ejecute automáticamente. Para evitar que el flujo procese el mismo correo una y otra vez, lo configuré para mover el correo a una carpeta o eliminarlo una vez que ha sido procesado.
Edit Fields: Este nodo procesa la información del correo electrónico.
HTTP Request: Este es el nodo que se comunica con la IA. Envía una petición POST a la API de DeepSeek, solicitando que extraiga el nombre_cliente, teléfono, email, nombre_empresa y programa del cuerpo del correo. La URL de la API es https://api.deepseek.com/chat/completions. En el Header, se incluye la autorización (Bearer + mi clave) y el Content-Type: application/json. El Body contiene la instrucción para la IA.
Code: Este nodo es el cerebro del flujo. Aquí es donde se ejecuta el código que procesa la respuesta de la IA. El código está diseñado para:
Procesar cada correo individualmente: El nodo está configurado en el modo Run For Each Item para evitar errores con lotes de correos.
Manejar errores de formato: El código comprueba si la respuesta de la API es un JSON válido y, si no lo es, devuelve un error específico.
Asignar valores por defecto: En caso de que la IA no encuentre algún dato (por ejemplo, el teléfono), el código asigna una cadena vacía ('') en lugar de devolver un error, lo que evita que el CSV se rompa y lo hace más robusto.
Convert to File (CSV): Finalmente, los datos procesados por el nodo Code se envían a este nodo, que los convierte en un archivo CSV limpio y organizado, listo para ser utilizado en mis reportes.
En resumen, este proyecto ha sido un recordatorio del poder de la automatización y la inteligencia artificial para resolver problemas cotidianos de manera eficiente. Espero que esta experiencia os inspire a explorar el mundo de la automatización por vuestra cuenta.
Quiero hacer una especial mención al ministro plenipotenciario y vicepresidente y ministro de propaganda y represión de nuestra isla, el señor Ángel, quien me descubrió N8N.
No hay comentarios:
Publicar un comentario
Tolerancia cero con las faltas de respeto, palabras malsonantes y comentarios denigrantes sobre la sublime saga de Stars Wars..