Cyberg Academy Blog

Cómo automatizar tus finanzas personales creando un Agente de IA con n8n

2025-05-29 18:00 Automatización Finanzas
Seguramente conozcáis a alguien que use un Excel para tener controlados todos sus ingresos y gastos.

Recientemente me encontré uno de estos casos, y me comentó que registraba todos y cada uno de sus gastos, por muy pequeño que fuera, y así tenía una visión total de en qué gastaba más o menos.

De esta forma podía marcarse objetivos de reducción de gastos y aumento de ahorro para poder comprarse sus caprichos.

Mi siguiente pregunta fue: ¿y todo esto lo haces de forma manual? Os podéis imaginar la respuesta, si...

Así que, por ofrecer una alternativa más automática a la hora de registrar nuestros ingresos y gastos, escribo este post en el que crearemos, de un forma muy sencilla, un agente de Inteligencia Artificial que actúe cómo nuestro asistente de finanzas personales. Para ello usaremos la herramienta de automatización n8n y los servicios de Telegram, OpenAI y Postgres.
"🤔 Pero... ya existen aplicaciones que hacen justo eso cómo YNAB — You Need A Budget, Rocket Money o Fintonic, y el plan básico de estas últimas es de 0€.
¿Por qué no usamos estas aplicaciones y te dejas de líos?"

Muchos de vosotros os haréis esta pregunta y os respondo:

  1. El objetivo principal del post es mostrar lo sencillo que es crear un agente de IA para que nos ayude en nuestras tareas diarias. Al final de la publicación daremos más ideas de agentes interesantes que podemos utilizar tanto en nuestra vida cotidiana cómo en nuestras empresas, o enfocados a Ciber.
  2. Cuando el precio del servicio es 0€, el producto eres tú. En todas estas aplicaciones debemos de enlazar nuestras cuentas de banco, inversión o patrimonio. Es posible que no queramos compartir esta información. Así que una solución es crearnos nuestra propia herramienta.
  3. El uso de apps de terceros nos limita a las funciones que las aplicaciones permitan. Crear nuestro propio agente nos aporta una flexibilidad mucho mayor pudiendo personalizarlo a nuestro gusto.

Guión

  • Objetivos
  • Creación del asistente en n8n en Finanzas Personales: Sofía
-----> Configuración de Telegram
-----> Configuración de OpenAI
-----> Configuración de Postgres en Supabase
-----> Creación del workflow
  • Prueba real del asistente
  • Conclusión

Objetivos

  1. Aprender a crear agentes de IA de forma sencilla con n8n
  2. Ahorrar tiempo y dinero 🙂

Creación del asistente en n8n en Finanzas Personales: Sofía

Vamos a empezar creando nuestro asistente financiero, el cual voy a nombre Sofía, en honor a mi pareja, ya que la función principal de este agente será la de controlar nuestro gasto e intentar ahorrar.

El asistente tendrá 3 partes principales:

  1. Interacción: la forma de "hablar" con nuestro asistente será usando un bot de Telegram.
  2. Inteligencia: para ello usamos el modelo de Inteligencia Artificial de OpenAI.
  3. Almacenamiento de datos: utilizaremos la base de datos de Postgres, que crearemos en Supabase.
Antes de nada, vamos a desplegar n8n, el único requisito será que sea accesible desde Internet (para que pueda acceder al bot de Telegram). Tenemos 2 opciones:

  1. Usando el servicio en la nube de n8n, el cual ofrece una prueba gratuita de 14 días.
  2. Desplegando el servicio de n8n en nuestro servidor. Enlace a su github.

Una vez desplegado, creamos nuestro proyecto y empezamos a configurar las credenciales para los servicios que utilizaremos:

Configuración de Telegram

Añadimos una nueva credencial para Telegram API y seguimos la documentación que nos facilita n8n para su configuración, o de su asistente de IA:
En el caso de Telegram es muy sencillo:

  • Hablamos con BotFather desde la aplicación
  • Escribimos /newbot
  • Elegimos el nombre de nuestro bot y su usuario
Y copiamos el token en n8n para terminar de configurarlo:

Configuración de OpenAI

Para darle inteligencia a nuestro asistente utilizaremos el modelo de Inteligencia Artificial de OpenAI, aunque podemos utilizar cualquier otro modelo gratuito. Las opciones que nos ofrece n8n son las siguientes:
En nuestro caso, creamos una nueva credencial para OpenAI. Para extraer el token:

  • Iniciamos sesión en OpenAI
  • Creamos una nueva API Key desde el apartado API keys y copiamos la clave generada
  • [Opcional]: copiar nuestro Organization ID desde el apartado de Organization Settings.
  • Y lo configuramos en n8n:

Configuración de Postgres en Supabase

Para el almacenamiento de nuestros datos financieros y el historial del chat y memoria de nuestro Agente de IA usaremos Postgres.

Podemos usar una versión en local, aunque en mi caso lo desplegaré en el servicio de BaaS (Backend as a Service) de Supabase.

Seguiremos los siguientes pasos:

  • Iniciamos sesión y creamos una nueva organización y proyecto:
  • Clicamos en Connect
  • Bajamos hasta Transaction pooler, desplegamos View parameters y copiamos estos parámetros en la credencial de Postgres de n8n. La contraseña será la seleccionada en el Proyecto creado previamente:

Creación del workflow

Con las credenciales configuradas podemos empezar a diseñar el flujo en n8n.

  • Empezamos creando el primer nodo de Telegram, que será el trigger que activará el workflow cada que vez que escribamos un mensaje al bot. Lo podemos probar enviando un mensaje al bot:
Este mensaje será enviado a nuestro asistente para atendernos: guardar gasto, ingreso o contestar sobre nuestras finanzas.
  • Podemos añadir un Switch para poder enviar también audios, por si el gasto es de madrugada y no podemos escribir 😉. Lo crearíamos del siguiente modo:
Swich:
Para saber qué valores podemos tener en los nodos y así configurar los nodos siguientes, recomiendo ir pulsando en Test step y arrastrar del Schema del nodo anterior (INPUT de la imagen de arriba) al propio nodo. En el caso de arriba, envié un mensaje que en el caso de Telegram, se almacena dentro de $json.message.chat y será lo que configuraremos en el nodo.

En el caso del audio, se almacena en $json.message.voice y para pasarlo a texto podemos usar el nodo de OpenAI Transcribe Recording. Y una vez traducido, le damos la misma salida que cuando enviamos un mensaje con el nodo Edit Fields. Los nodos quedarían configurados así:

Telegram - get file:
OpenAI - Transcribe Recording:
Edit Fields:
  • También podemos añadir otros Triggers, yo en mi caso me he creado un Schedule Trigger para enviar ingresos del salario a cada inicio de mes, por ejemplo:
Schedule Trigger:
Edit Fields:
  • Y ahora ya podemos añadir el nodo que será nuestro asistente. Creamos un nodo de tipo AI Agent y al que conectaremos el modelo de OpenAI, Postgres para la memoria del agente y 3 tools: guardar ingresos/gastos, consultar finanzas y responder. Con todo unido, nuestro flujo tendría la siguiente forma:
Nodo por nodo:

AI agent:
El prompt:
# Rol
Eres un asistente capaz de guardar mis ingresos y gastos y contestar preguntas sobre mis finanzas personales

# Tareas
- Tu función es leer el mensaje "{{ $json.message.text }}" y realizar alguna de las siguientes acciones:
  - Si el mensaje incluye uno o varios ingresos o gastos, debes de guardarlos utilizando la tool SubirIngresoOGasto. Para ello del mensaje debes de extraer los siguientes valores: 
    - categoría: categoría del ingreso/gasto, selecciona la que mejor encaje de entre siguientes: OCIO|ROPA|ALQUILER|RESTAURANTES|ALIMENTACIÓN|DEPORTE|SALARIO|OTROS)
    - concepto: concepto del ingreso/gasto
    - importe: la cantidad del ingreso/gasto, de tipo float
    - tipo: si ha sido un INGRESO o GASTO.
  - Cuando añadas un Gasto, debes consultar usando la tool VerHistorialIngresosGastos todos los gastos del mes actual y si he superado 1500€ de gasto, avísame para que me controle lo que queda de mes
  - Si en el mensaje te piden información sobre tus finanzas, utiliza la tool VerHistorialIngresosGastos para extraer todo el historial de mis finanzas y poder darme la mejor respuesta
- Y responder utilizando la tool ResponderMensaje.

# Notas
- Las respuestas deben ser claras y concisas y no utilizar más de 500 caracteres
- Puedes hacer cálculos para obtener respuestas a algunas preguntas
- Los ingresos y gastos siempre son en euros
- Para los ingresos y gastos es posible que te envien un audio o una foto
- Si no viene la fecha, poner la fecha de hoy
- Todos los meses ingreso mínimo 2000€ del salario, quiero ahorrar al menos 500€ todos los meses. Avísame si algún estoy gastando demasiado
Algunas recomendaciones sobre el prompt:
  • Dejar claros el rol, las tareas y especificaciones o notas sobre nuestro agente.
  • Añadir sobre qué mensaje debe responder, en nuestro caso {{ $json.message.text }}
  • Cuando requerimos que el agente realice una acción sobre una tool, el nombre que le indiquemos al prompt de la tool debe coincidir con el del nodo de las tools, en nuestro caso: SubirIngresoOGasto, VerHistorialIngresosGastos y ResponderMensaje.

OpenAI Chat Model:
Postgres Chat Memory:
Podemos seleccionar la tabla propuesta por n8n n8n_chat_histories, que almacenará el historial del chat, y seleccionar en Context Window Length cuantos últimos mensajes anteriores quieres enviar al agente de IA y que tenga más contexto.
Tool SubirIngresoOGasto:

Previamente, deberemos de configurar una nueva tabla en Postgres que podemos llamar HistorialIngresosYGastos con las columnas de fecha, categoría, concepto, importe y tipo (todos explicados a nuestro asistente en el prompt) para almacenar nuestros datos financieros.

Para crearla, desde Supabase > Database > Tables > New table:
Con la tabla creada, creamos nuestra tool en n8n que será un nodo de Postgres con la operación de Insert:
Lo rellenaremos como se observa en la siguiente imagen:
Tool VerHistorialIngresosGastos:
Y finalmente, la Tool ResponderMensaje:
Guardamos nuestro workflow, lo activamos y procedemos a probarlo.

Podéis descargar el workflow del siguiente enlace.

Prueba real del asistente

  • Texto
Vamos ir enviando mensajes a nuestro bot de Telegram para probarlo:
Si accedemos a Supabase, podemos comprobar que todos los mensajes se van guardando a nuestra base de datos:

Memoria del agente:
Tabla de Ingresos y Gastos:
Podemos ir añadiendo otros gastos o ingresos para verificar que funciona correctamente.
  • Audio
"Me he gastado 100€ en una chaqueta"
Y podemos preguntarle que nos haga un desglose de los gastos que llevamos este mes, o lo que queramos:
Por último, podemos ver todo el historial de nuestras ejecuciones en la pestaña Executions:
Es posible que algunas respuestas no sean las esperadas, para ello debemos ir adaptando el prompt hasta conseguir la versión deseada.

Conclusión

En esta publicación hemos visto cómo con las herramientas de automatización que disponemos hoy en día, es muy sencillo, sin tocar código, realizar cualquier flujo de trabajo que nos automatice tareas repetitivas.

Otras alternativas a n8n pueden ser Make o Zapier, como todo, cada una tiene sus ventajas y desventajas. Podemos elegir la solución que mejor se adapte a nuestras necesidades.

Para finalizar, voy a dejar algunas ideas interesantes que puedan inspirar al lector a automatizar algunas tareas:

  • Automatizar publicaciones en RRSS
  • Chat interactivo para nuestra web (o canal)
  • Resolución de tickets de soporte (Atención al cliente 24h)

Y cómo este blog siempre va a tener un toque Ciber, ¿qué flujos podrían ser interesantes para nuestro día a día?

  • Análisis automático de eventos de seguridad
  • Análisis de reputación de IoCs
  • Habilitar MFA en servicios específicos
  • Generación de alertas (al ejecutar queries u otro tipo de monitorización de servicios)
  • Creación automática de reglas en base a reportes o noticias
  • Enriquecimiento de alertas (opcional, creación de RAGs propios con nuestros datos o procedimientos)

Podemos dar un vistazo a los workflows ya creados por la comunidad, enlace.

Al final, no deja de ser un SOAR al igual que ofrecen otros servicios de seguridad como Palo Alto XSOAR, Microsoft Sentinel o Splunk SOAR, entre otros.

Espero que esta publicación os haya enseñado algo y entretenido un poco.

¡Feliz semana! 👋