Cómo automatizar los flujos de trabajo de datos macro con n8n banner image

Implementation

How-To Guides

Cómo automatizar los flujos de trabajo de datos macro con n8n

Construir tuberías de datos de macro automatizadas en n8n buscar indicadores FXMacroData en un cronograma, filtrar por eventos del calendario de lanzamiento y enrutar los resultados a Slack, Google Sheets o cualquier webhook todo sin escribir infraestructura de servidor.

Disponible también en English

n8n es una plataforma de automatización de flujo de trabajo de código abierto que permite conectar API, bases de datos y herramientas SaaS a través de un editor de nodo visual sin necesidad de infraestructura de backend. Para los flujos de trabajo con datos macro, n8 n es una opción natural: extraer lecturas de indicadores en un cronograma, filtrar por eventos del calendario de lanzamiento próximo y enviar los resultados a Slack, Google Sheets, una base de datos o cualquier webhook de aguas abajo todo configurado visualmente y funcionando las 24 horas del día y los 7 días de la semana sin un proceso de servidor dedicado.

Lo que construirás

  • Un flujo de trabajo programado se ejecuta todas las mañanas de los días laborables y obtiene los últimos indicadores macro de un par de divisas
  • Una tubería de nodos de solicitud HTTP llama al punto final de anuncios FXMacroData y analiza la respuesta JSON
  • Una rama de alerta previa de calendario de liberación detecta eventos de alto impacto próximos y envía una alerta temprana a Slack o Discord
  • Una rama de registro de Google Sheets añade cada nueva lectura a una hoja de cálculo para el seguimiento histórico
  • Un filtro condicional sólo dispara acciones aguas abajo cuando un valor ha cambiado desde la última ejecución

Los requisitos previos

  • En el caso n8n ¿ Qué pasa ? No se puede cuenta en la nube (trabajos gratuitos de nivel) o auto-alojados a través de npx n8n - El muelle .
  • La clave de la API de FXMacroData inscribirse en / suscribirse; muchos indicadores en USD son accesibles al público sin una clave
  • URL de webhook de Slack o Discord (opcional) para los pasos de notificación; puede omitirlos y utilizar sólo la rama de Hojas de Google
  • Conexión OAuth de Hojas de cálculo de Google (opcional) configurar a través de las credenciales de Google incorporadas de n8n si desea registrar hojas de cálculo

- ¿ Qué pasa ?

Paso 1 Comience n8n y cree un flujo de trabajo en blanco

La forma más rápida de ejecutar n8n localmente es con npxSi prefiere Docker o la versión en la nube, la configuración del nodo es idéntica salte adelante para crear el flujo de trabajo.

# Local quick-start (Node.js 18+ required)
npx n8n

# Or with Docker
docker run -it --rm \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

Abierto . http://localhost:5678 en su navegador, cree una cuenta, y haga clic en + Nuevo flujo de trabajo Verá un lienzo en blanco aquí es donde vive la tubería.

Almacene su clave API como una credencial n8n para que nunca esté incrustada en configuraciones de nodos. Configuración → Credenciales → Añadir credencial → Autor del encabezado HTTP y guarde su llave:

Name:  FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY

Usted hará referencia a esta credencial almacenada en el nodo de solicitud HTTP en el siguiente paso.


- ¿ Qué pasa ?

Paso 2 Añadir un nodo de activación de la agenda

¿ Qué ? Activador de programación En el caso de los flujos de trabajo de datos macro, un disparador diario 30 minutos antes de la apertura de Londres (07:30 UTC) asegura que las lecturas frescas estén disponibles antes de las primeras sesiones de alta liquidez del día.

Haga clic en el + botón en el lienzo y buscar Activador de programaciónConfigurarlo como sigue:

// Programar el activador configuración de nodos

Intervalo de activación: Personalizado (cron)

Expresión de Cron: 30 7 * * 1-5

// Se ejecuta de lunes a viernes a las 07:30 UTC

Para pruebas, cambia el gatillo a Manual de trabajo temporalmente esto le permite ejecutar el flujo de trabajo completo desde el lienzo con un solo clic sin esperar el horario.

Consejo: usa el calendario de lanzamientos para refinar tu horario

En lugar de hacer encuestas todos los días, puedes buscar de antemano los próximos lanzamientos de esta semana de la punto final del calendario de liberación el lunes por la mañana y usar un n8n Si Este patrón se muestra en el paso 5 a continuación.


- ¿ Qué pasa ?

Paso 3 Configurar el nodo de solicitud HTTP para FXMacroData

Añadir un Solicitud HTTP nodo después del activador de programación (clic en el + En el conector de salida del gatillo y buscar Solicitud HTTPEste nodo hace la llamada de la API a FXMacroData y devuelve la respuesta JSON directamente en el flujo de trabajo.

Configure el nodo con estas configuraciones:

// Nodo de solicitud HTTP Obtener el último tipo de interés de la política EUR

Método: GET

- ¿ Qué es eso ? El importe de las pérdidas de capital de la entidad en el ejercicio de 2014 se calcula en función de las condiciones de mercado.

Autenticación: Ninguno (pasamos la clave como un parámetro de consulta a continuación)

Parámetros de la consulta:

Aplicado para el uso de la tecnología de la información

Forma de respuesta: El código es JSON.

El nodo de solicitud HTTP de n8n tiene un nodo dedicado Parámetros de la consulta el cuadro añadir una fila:

Name:  api_key
Value: {{ $credentials.fxmacrodataApiKey.value }}
       (or paste your key directly for quick testing)

Haga clic Ejecutar el nodo Para verificar la respuesta, debería ver una salida similar a:

{
  "currency": "EUR",
  "indicator": "policy_rate",
  "date": "2025-06-12",
  "val": 3.40,
  "prior": 3.65,
  "announcement_datetime": "2025-06-12T13:15:00Z"
}

El announcement_datetime El campo de control de la seguridad de datos de la red de datos le da una precisión de segundo nivel sobre cuándo este valor fue publicado oficialmente usarlo como la clave de deduplicación para que su flujo de trabajo nunca tenga alertas dobles en la misma versión.

Obtención de varios indicadores en un mismo flujo de trabajo

Para extraer varios indicadores (por ejemplo, tasa de interés, IPC y desempleo para la misma moneda), añadir nodos de solicitud HTTP paralelos después del gatillo uno por punto final y fusionar sus salidas con un Fusión Nodo establecido en Combinación modo antes del paso de transformación.


- ¿ Qué pasa ?

Paso 4 Parse y transforme la respuesta con un nodo de código

Añadir un El código nodo después del nodo de solicitud HTTP para extraer los campos que te interesan y enriquecer la carga útil. Nodo de código de n8n ejecuta JavaScript y tiene acceso completo a la salida del nodo anterior a través de $input.all()- ¿ Qué ?

// Code node: parse FXMacroData announcement response
const items = $input.all();

return items.map(item => {
  const d = item.json;

  // Determine direction relative to prior value
  const direction =
    d.val > d.prior ? "↑ Hawkish signal" :
    d.val < d.prior ? "↓ Dovish signal"  : "→ Unchanged";

  const surpriseText =
    d.consensus != null
      ? `Consensus was ${d.consensus}; actual ${d.val > d.consensus ? "beat" : "missed"}.`
      : "";

  return {
    json: {
      currency:              d.currency,
      indicator:             d.indicator,
      value:                 d.val,
      prior:                 d.prior,
      direction,
      surprise:              surpriseText,
      announcement_datetime: d.announcement_datetime,
      summary: `${d.currency.toUpperCase()} ${d.indicator.replace(/_/g, " ")}: ` +
               `${d.val} (prior ${d.prior}) — ${direction}`
    }
  };
});

Esto produce un objeto limpio y enriquecido para cada elemento. summary El campo está listo para pegar directamente en un mensaje de Slack o fila de hoja de cálculo.


- ¿ Qué pasa ?

Paso 5 Añadir un filtro condicional con un nodo IF

Sólo quieres disparar acciones aguas abajo cuando la versión es genuinamente nueva no si la API devuelve el mismo announcement_datetime ya procesado en una ejecución anterior. Si nodo después del nodo de código.

Usar las n8n. Datos estáticos (accesible a través del nodo de código $getWorkflowStaticData ayudante) para persistir en el último visto announcement_datetime Entre las carreras:

// Code node: deduplication guard — place before the IF node
const staticData = $getWorkflowStaticData("global");

return $input.all().map(item => {
  const ts = item.json.announcement_datetime;
  const isNew = ts !== staticData.lastSeen;

  // Update state only if this is a new release
  if (isNew) {
    staticData.lastSeen = ts;
  }

  return { json: { ...item.json, isNew } };
});

Entonces configure el Si Nodo:

// Si el nodo sólo continúa cuando la versión es nueva

Condición: {{ $json.isNew }} es igual a true

// Ramo verdadero → notificar / registro

// Falsa rama → parada / NoOp

Conecta un No Op nodo a la rama False para que el flujo de trabajo salga limpio sin errores en los días en que no se ha impreso ninguna nueva versión.


- ¿ Qué pasa ?

Paso 6 Enviar notificaciones a Slack o Discord

Conecta el nodo de IF Es cierto salida a un No se muevan el nodo (o un Solicitud HTTP node dirigido a una URL de webhook de Discord). Configure el cuerpo del mensaje para usar los campos enriquecidos del nodo de código:

// Configuración de nódulos de ralentización

Recursos: Mensaje

Operación: Envío

Canal: #macroalertas

El texto:

*Nuevo lanzamiento de macro*

¿Qué es lo que te pasa?

¿Qué es eso?

Publicado: {{ $ json.anuncio_datetime }}

Para Discord, usa un Solicitud HTTP nodo con el método POST y la URL del webhook de Discord, con el cuerpo establecido en:

{
  "content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}

Ya está . Tipo de contenido del cuerpo ¿ Qué ? El código es JSON. y el nodo manejará la serialización automáticamente.


- ¿ Qué pasa ?

Paso 7 Publicaciones de registro en Hojas de cálculo de Google

Paralelamente a la notificación de Slack, añadir un Hojas de Google Conecte a la misma salida de la rama True del nodo IF (n8n permite que varios nodos reciban la misma producción).

Configure el nodo de Hojas de cálculo de Google:

// Configuración de nodos de Google Sheets

Recursos: Hoja dentro del documento

Operación: Añadir o actualizar fila

Hoja de cálculo: (seleccione su hoja de Google)

En el apartado 1 se añade el texto siguiente: El registro de datos

Columnas para mapear:

el anuncio_datiempo → {{ $ json. anuncio-datiempos }}

moneda → {{ $json.moneda }}

Indicador → {{ $json.indicador }}

valor → {{ $ json.value }}

¿Qué es lo que te pasa?

dirección → {{ $ json.direction }}

Necesitará configurar las credenciales de Google OAuth en n8n bajo Configuración → Credenciales → API de OAuth2 de Hojas de cálculo de Google Sigue la guía de configuración de credenciales incorporada de n8n toma unos dos minutos.


- ¿ Qué pasa ?

Paso 8 Añadir una rama de alerta previa del calendario de lanzamiento

Un patrón poderoso único de FXMacroData está utilizando el punto final del calendario de liberación ¡ No disparen ! Advertencias anticipadas antes de una impresión de alto impacto dando a su equipo tiempo para preparar posiciones antes de que el número golpee.

Añadir un segundo nodo de solicitud HTTP conectado directamente al activador de programación (en paralelo con la búsqueda de anuncios). Configurarlo para extraer las versiones próximas de la semana actual:

Method: GET
URL:    https://fxmacrodata.com/api/v1/calendar/eur
Params: api_key=YOUR_API_KEY

Sigue esto con un nodo de código que filtra los eventos que ocurren en los próximos 60 minutos:

// Code node: filter calendar events due within the next hour
const nowMs  = Date.now();
const oneHrMs = 60 * 60 * 1000;

return $input.all().flatMap(item => {
  const events = Array.isArray(item.json) ? item.json : [item.json];

  return events
    .filter(ev => {
      const evMs = new Date(ev.release_datetime).getTime();
      return evMs > nowMs && evMs <= nowMs + oneHrMs;
    })
    .map(ev => ({
      json: {
        currency:         ev.currency,
        indicator:        ev.indicator,
        release_datetime: ev.release_datetime,
        alert: `⏰ *Upcoming release in <1 hour*\n` +
               `${ev.currency.toUpperCase()} ${ev.indicator.replace(/_/g, " ")}\n` +
               `Scheduled: ${ev.release_datetime}`
      }
    }));
});

Conecta la salida a un nodo de Slack (o Discord HTTP Request) que envía el alert campo a su #macro-alerts Cuando no hay eventos dentro de una hora, la matriz filtrada está vacía y n8n simplemente no produce ninguna salida no se toma ninguna acción.

Usando el modo de expresión para la moneda dinámica

Para hacer el flujo de trabajo genérico en múltiples monedas, reemplazar el codificado en duro eur En la URL con una expresión n8n. Se ha puesto nodo en la parte superior de su flujo de trabajo para definir un currency variable, luego hacer referencia a ella en ambos nodos de solicitud HTTP:

https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY

Luego puede ejecutar la misma plantilla de flujo de trabajo para cualquiera de los 14 monedas apoyadas simplemente cambiando el valor de la variable.


- ¿ Qué pasa ?

Paso 9 Activar y controlar el flujo de trabajo

Una vez que haya probado cada nodo individualmente usando el Ejecutar el nodo botón, ejecute el flujo de trabajo completo de extremo a extremo haciendo clic Ejecutar el flujo de trabajo En la barra de herramientas, compruebe el registro de ejecución para detectar errores el depurador visual de n8n destaca qué nodo falló y muestra la entrada/salida exacta en ese paso.

Para poner el flujo de trabajo en producción, cambiar el Activo Ahora n8n ejecutará el flujo de trabajo automáticamente en el cron programa que definiste en el paso 2.

Lista de verificación de seguimiento

  • ✅ ✅ Historial de ejecución visible en la barra lateral izquierda debajo Ejecuciones; muestra el éxito/fracaso por ejecución
  • ✅ ✅ Flujo de trabajo de errores configurar un flujo de trabajo de gestión de errores separado en Configuración → Flujo de trabajo de errores Para recibir notificaciones si algún nodo lanza una excepción
  • ✅ ✅ Vuelva a intentar si no funciona habilitar esto en la configuración de nodo de solicitud HTTP para volver a intentar automáticamente errores de red transitorios
  • ✅ ✅ Recorte de datos de ejecución establecer una ventana de retención (por ejemplo, 30 días) en la configuración n8n para evitar el uso ilimitado del disco en instancias auto-alojadas

- ¿ Qué pasa ?

Paso 10 Extensión a indicadores y monedas adicionales

La tubería que ha construido apunta a un solo indicador para una sola moneda. Extenderlo a un conjunto de cobertura macro más amplio es sencillo porque las ramas visuales de n8n se relacionan directamente con la estructura de URL FXMacroData. Cada punto final sigue el mismo patrón:

https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY

Para obtener múltiples indicadores en una ejecución de flujo de trabajo, añadir un Se divide en lotes Nodo después del gatillo y le alimenta una lista de { currency, indicator } Cada iteración dispara una solicitud HTTP. El patrón a continuación obtiene tres lecturas EUR en secuencia:

// Set node: define the indicator list
// Add this as a "Set" node at the top, outputting a single item
// with a field named "indicators"

const indicators = [
  { currency: "eur", indicator: "policy_rate" },
  { currency: "eur", indicator: "inflation" },
  { currency: "eur", indicator: "unemployment" }
];

return [{ json: { indicators } }];

Entonces añade un Se separaron En la URL de solicitud HTTP, haga referencia a los campos del elemento actual:

URL: https://fxmacrodata.com/api/v1/announcements/{{ $json.currency }}/{{ $json.indicator }}
Params: api_key=YOUR_API_KEY

Este patrón de plantilla única mantiene el flujo de trabajo compacto independientemente de la cantidad de indicadores que rastree. /api-datos-doc lo mismo {currency}/{indicator} La estructura de la trayectoria se aplica en todo momento.

Importar el flujo de trabajo completo como JSON

n8n te permite exportar cualquier flujo de trabajo como un archivo JSON y compartirlo. Menú → Descarga Para exportar un portátil .json Los compañeros de equipo pueden importarlo instantáneamente a través de + Nuevo flujo de trabajo → Importación desde archivo, añadir su propia clave de API credencial, y activarlo toda la tubería de transferencias en segundos.


- ¿ Qué es lo que está pasando ?

Resumen de las actividades

Ahora tienes un sistema de datos macro totalmente automatizado que se ejecuta en n8n que:

  • Activadores en un cron programa de días laborables (o bajo demanda)
  • Obtiene el último indicador FXMacroData a través de la solicitud HTTP con autenticación de parámetros de consulta
  • Parse y enriquece la respuesta JSON con señales direccionales en un nodo de código
  • Deduplicados contra el último visto . announcement_datetime para evitar que se produzcan dos alertas
  • Envía notificaciones de Slack o Discord cuando se imprime una nueva versión
  • Añade cada nueva lectura a un registro de Hojas de cálculo de Google para el análisis histórico
  • Incendios alertas de calendario anticipado hasta una hora antes de eventos de alto impacto programados

A partir de aquí, los siguientes pasos naturales incluyen agregar más monedas a la lista de indicadores, conectar el registro de hojas a un panel de control de Looker Studio para su visualización, o integrarse con un webhook de plataforma de negociación para activar alertas de orden directamente en nuevas versiones. documentación completa de las API Para descubrir el catálogo completo de indicadores y comenzar a construir su propia capa de inteligencia macro.

Blogroll