Analizador de ofertas de vuelos en tiempo real con GPT-4o: extracción, evaluación y publicación automáticas en WordPress

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 19 nodos.Utiliza principalmente nodos como Set, Html, Slack, Wordpress, FormTrigger. Analizador de ofertas de vuelos con datos meteorológicos, utilizando GPT, Google Flights y WordPress

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "VQW0RtIUeCMJ7yjt",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
    "templateCredsSetupCompleted": true
  },
  "name": "GPT-Realtime Flight Deal Analyzer: Auto-Scrape, Evaluate & Publish to WordPress",
  "tags": [],
  "nodes": [
    {
      "id": "f1712506-beee-4416-9654-19be82d7840f",
      "name": "Formulario de Entrada del Usuario",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1200,
        416
      ],
      "webhookId": "9dd4fdea-0ac3-46d7-8652-986eb07af62a",
      "parameters": {
        "path": "japan-flight-analyzer",
        "options": {},
        "formTitle": "Japan Flight Price Analyzer",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Departure City",
              "requiredField": true
            },
            {
              "fieldLabel": "Preferred Month (e.g., January, February)",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Maximum Budget (USD)",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Flexible Dates?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "responseMode": "responseNode",
        "formDescription": "Enter your travel preferences to find the cheapest flights to Japan"
      },
      "typeVersion": 2.1
    },
    {
      "id": "22959199-f3dd-48b8-8045-c0e0f1417098",
      "name": "Extraer Datos del Formulario",
      "type": "n8n-nodes-base.set",
      "position": [
        -976,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8f3a4c1d-2e5b-4f9c-8d6a-1b2c3d4e5f6a",
              "name": "departureCity",
              "type": "string",
              "value": "={{ $json.departureCity }}"
            },
            {
              "id": "9g4b5d2e-3f6c-5g0d-9e7b-2c3d4e5f6g7h",
              "name": "preferredMonth",
              "type": "string",
              "value": "={{ $json.preferredMonth }}"
            },
            {
              "id": "0h5c6e3f-4g7d-6h1e-0f8c-3d4e5f6g7h8i",
              "name": "maxBudget",
              "type": "number",
              "value": "={{ $json.maxBudget }}"
            },
            {
              "id": "1i6d7f4g-5h8e-7i2f-1g9d-4e5f6g7h8i9j",
              "name": "flexibleDates",
              "type": "string",
              "value": "={{ $json.flexibleDates }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774",
      "name": "Rastrear Precios de Vuelos",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -752,
        416
      ],
      "parameters": {
        "url": "https://www.google.com/travel/flights",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "=flights to Tokyo Japan from {{ $json.departureCity }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ffd6909a-9826-404e-93a6-30a8d387a450",
      "name": "Extraer Datos del Vuelo",
      "type": "n8n-nodes-base.html",
      "position": [
        -528,
        416
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e86841f8-1a3c-4885-be51-0ce817b14af8",
      "name": "Preparar Entrada para IA",
      "type": "n8n-nodes-base.set",
      "position": [
        -304,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2j7e8g5h-6i9f-8j3g-2h0e-5f6g7h8i9j0k",
              "name": "flightData",
              "type": "string",
              "value": "={{ $json.body }}"
            },
            {
              "id": "3k8f9h6i-7j0g-9k4h-3i1f-6g7h8i9j0k1l",
              "name": "userPreferences",
              "type": "string",
              "value": "=Departure: {{ $('Extract Form Data').item.json.departureCity }}, Month: {{ $('Extract Form Data').item.json.preferredMonth }}, Budget: ${{ $('Extract Form Data').item.json.maxBudget }}, Flexible: {{ $('Extract Form Data').item.json.flexibleDates }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9b74c540-e201-4358-bed1-c649b00aa26b",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        592,
        688
      ],
      "parameters": {
        "model": "gpt-realtime",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "mv2ECvRtbAK63G2g",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
      "name": "Analizador de Vuelo con IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        592,
        416
      ],
      "parameters": {
        "text": "=You are a travel data analyst specializing in flight pricing and weather-based travel planning.\n\nAnalyze the following flight data, user preferences, and real-time weather forecasts to identify:\n1. The cheapest available flight options to Japan (Tokyo, Osaka, Sapporo)\n2. Optimal travel periods based on price trends AND weather conditions\n3. Whether the user's budget is realistic\n4. Weather-based recommendations for activities and packing\n5. Best booking strategies considering seasonal weather patterns\n\nCombined Data:\n{{ $json.combinedData }}\n\nProvide a comprehensive analysis with:\n- Cheapest flights found (price, dates, airline)\n- Recommended travel periods with weather insights\n- Budget analysis\n- Weather-appropriate travel tips\n- Seasonal activity recommendations\n- Alternative airports or routes if beneficial",
        "options": {
          "systemMessage": "You are an expert travel analyst. Provide clear, actionable insights about flight prices and travel recommendations."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "73e0589c-fe21-4fcd-aa71-f8d66e9a684e",
      "name": "Analizador de Salida Estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        728,
        640
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "5d5a0e60-769c-47e9-b3a0-0da9e5cd9374",
      "name": "Formatear Resultados del Análisis",
      "type": "n8n-nodes-base.set",
      "position": [
        944,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4l9g0i7j-8k1h-0l5i-4j2g-7h8i9j0k1l2m",
              "name": "aiAnalysis",
              "type": "string",
              "value": "={{ $json.output }}"
            },
            {
              "id": "5m0h1j8k-9l2i-1m6j-5k3h-8i9j0k1l2m3n",
              "name": "userEmail",
              "type": "string",
              "value": "={{ $('User Input Form').item.json.submittedAt }}"
            },
            {
              "id": "6n1i2k9l-0m3j-2n7k-6l4i-9j0k1l2m3n4o",
              "name": "weatherData",
              "type": "object",
              "value": "={{ $('Parse Weather Data').item.json }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "85fdefe0-5e22-46ac-9850-abc01e1e5ac7",
      "name": "Enviar a Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1168,
        224
      ],
      "webhookId": "b28fd4b2-1063-482f-87cb-aeabb8e075ad",
      "parameters": {
        "text": "=🛫 *Japan Flight Analysis Complete!*\n\n*Search Criteria:*\nFrom: {{ $('Extract Form Data').item.json.departureCity }}\nMonth: {{ $('Extract Form Data').item.json.preferredMonth }}\nBudget: ${{ $('Extract Form Data').item.json.maxBudget }}\n\n*Current Weather in Japan:*\n🌡️ Tokyo: {{ $('Parse Weather Data').item.json.tokyoWeather.temperature_2m }}°C\n🌡️ Osaka: {{ $('Parse Weather Data').item.json.osakaWeather.temperature_2m }}°C\n🌡️ Sapporo: {{ $('Parse Weather Data').item.json.sapporoWeather.temperature_2m }}°C\n\n*AI Analysis:*\n{{ $json.aiAnalysis }}\n\n---\nAnalysis generated at: {{ $now.toLocaleString() }}",
        "otherOptions": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "eae457f3-c26c-4cdd-8c28-ae30906c90d8",
      "name": "Publicar en WordPress",
      "type": "n8n-nodes-base.wordpress",
      "position": [
        1168,
        416
      ],
      "parameters": {
        "title": "=Best Time to Visit Japan - {{ $('Extract Form Data').item.json.preferredMonth }} Analysis",
        "additionalFields": {
          "categories": [
            "Travel",
            "Japan",
            "Flight Deals"
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3a055535-f7a6-4c40-a332-1aac3cf1d7e3",
      "name": "Responder al Usuario",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1168,
        608
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "=✅ Your Japan flight analysis with weather forecast is complete!\n\n*Current Weather Conditions:*\nTokyo: {{ $('Parse Weather Data').item.json.tokyoWeather.temperature_2m }}°C\nOsaka: {{ $('Parse Weather Data').item.json.osakaWeather.temperature_2m }}°C\nSapporo: {{ $('Parse Weather Data').item.json.sapporoWeather.temperature_2m }}°C\n\n*Flight & Travel Analysis:*\n{{ $json.aiAnalysis }}\n\nWe've also:\n- Posted the detailed analysis with weather insights to our blog\n- Sent a summary to our Slack channel\n\nThank you for using our service!"
      },
      "typeVersion": 1.1
    },
    {
      "id": "4eec3335-0910-4bc5-a628-c348e393e71f",
      "name": "Obtener Datos Meteorológicos",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -80,
        488
      ],
      "parameters": {
        "url": "https://api.open-meteo.com/v1/forecast",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "latitude",
              "value": "35.6762,34.6937,43.0642"
            },
            {
              "name": "longitude",
              "value": "139.6503,135.5023,141.3469"
            },
            {
              "name": "current",
              "value": "temperature_2m,weather_code,wind_speed_10m"
            },
            {
              "name": "daily",
              "value": "temperature_2m_max,temperature_2m_min,precipitation_sum,weather_code"
            },
            {
              "name": "forecast_days",
              "value": "7"
            },
            {
              "name": "timezone",
              "value": "Asia/Tokyo"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "4ac42cfa-b298-4592-a6a5-925276d83052",
      "name": "Analizar Datos Meteorológicos",
      "type": "n8n-nodes-base.set",
      "position": [
        144,
        488
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "name": "tokyoWeather",
              "type": "object",
              "value": "={{ $json.current[0] }}"
            },
            {
              "name": "osakaWeather",
              "type": "object",
              "value": "={{ $json.current[1] }}"
            },
            {
              "name": "sapporoWeather",
              "type": "object",
              "value": "={{ $json.current[2] }}"
            },
            {
              "name": "weatherForecast",
              "type": "object",
              "value": "={{ $json.daily }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "eb0e253e-9212-49c1-b9cb-cd98b09180f4",
      "name": "Enriquecer Entrada de IA con Clima",
      "type": "n8n-nodes-base.set",
      "position": [
        368,
        488
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "name": "combinedData",
              "type": "string",
              "value": "=Flight Data:\n{{ $('Prepare AI Input').item.json.flightData }}\n\nUser Preferences:\n{{ $('Prepare AI Input').item.json.userPreferences }}\n\nReal-Time Weather in Japan:\nTokyo: {{ $json.tokyoWeather.temperature_2m }}°C, Wind: {{ $json.tokyoWeather.wind_speed_10m }} km/h\nOsaka: {{ $json.osakaWeather.temperature_2m }}°C, Wind: {{ $json.osakaWeather.wind_speed_10m }} km/h\nSapporo: {{ $json.sapporoWeather.temperature_2m }}°C, Wind: {{ $json.sapporoWeather.wind_speed_10m }} km/h\n\n7-Day Forecast Summary:\n{{ JSON.stringify($json.weatherForecast) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5a6ef54e-768b-4dfc-bc07-62cc968da7e1",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1232,
        -16
      ],
      "parameters": {
        "width": 1040,
        "height": 352,
        "content": "## Introduction\nAutomates flight deal discovery and intelligent analysis for travel bloggers and deal hunters. Scrapes live pricing, enriches with weather data, applies AI evaluation, and auto-publishes to WordPress—eliminating manual research and accelerating content delivery.\n\n## How It Works\nUser submits route via form, scrapes real-time flight prices and weather data, AI analyzes deal quality considering weather conditions, formats results, publishes to WordPress, sends Slack notification—fully automated from input to publication.\n\n## Workflow Template\nForm Input → Extract Data → Scrape Flight Prices → Extract Pricing → Fetch Weather → Parse Weather → Prepare AI Input → AI Analysis → Parse Output → Format Results → Publish WordPress → Slack Alert → User Response\n\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ec131a77-255a-4352-a1e0-5e8f1135c9a3",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        -32
      ],
      "parameters": {
        "color": 5,
        "width": 720,
        "height": 432,
        "content": "## Prerequisites\nn8n instance, Google Flights access, weather API key, OpenAI/compatible AI service, WordPress site with API access, Slack workspace\n\n## Use Cases\nTravel blog automation, flight deal newsletters, price comparison services, seasonal travel planning, destination weather analysis, automated social media content\n\n## Customization\nModify AI analysis criteria, adjust weather impact weighting, customize WordPress post templates, add email distribution, integrate additional data sources, expand to hotel/rental deals\n\n## Benefits\nEliminates manual price checking, combines multiple data sources automatically, delivers AI-enhanced insights, accelerates publishing workflow, scales across unlimited routes, provides weather-aware recommendations"
      },
      "typeVersion": 1
    },
    {
      "id": "37b94a42-06bd-476a-9216-c34314ebfbd3",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1216,
        576
      ],
      "parameters": {
        "color": 3,
        "width": 752,
        "height": 144,
        "content": "## Setup Instructions\n1. **Form Setup:** Configure user input fields for flight routes and preferences\n2. **APIs:** Connect Google Flights scraping endpoint, weather API credentials, OpenAI/Chat Model API key\n3. **Publishing:** Set WordPress credentials, target blog category, Slack webhook URL\n4. **AI Configuration:** Define analysis prompts, output structure, parser rules\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e09e7cfe-b73f-4a8e-9d2c-04f482bb9951",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -16
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 272,
        "content": "## Workflow Steps\n1. **Data Collection:** Form captures route, scrapes Google Flights pricing, fetches destination weather via API\n2. **AI Processing:** Enriches flight data with weather context, analyzes deal quality using OpenAI/Chat Model with structured output parsing\n3. **Publishing:** Formats analysis results, creates WordPress post, sends Slack notification, delivers response to user\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a37e634d-2ee9-40b9-8547-9bfc40faa6d7",
  "connections": {
    "f1712506-beee-4416-9654-19be82d7840f": {
      "main": [
        [
          {
            "node": "22959199-f3dd-48b8-8045-c0e0f1417098",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e86841f8-1a3c-4885-be51-0ce817b14af8": {
      "main": [
        [
          {
            "node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
            "type": "main",
            "index": 0
          },
          {
            "node": "4eec3335-0910-4bc5-a628-c348e393e71f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "22959199-f3dd-48b8-8045-c0e0f1417098": {
      "main": [
        [
          {
            "node": "d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9b74c540-e201-4358-bed1-c649b00aa26b": {
      "ai_languageModel": [
        [
          {
            "node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64": {
      "main": [
        [
          {
            "node": "5d5a0e60-769c-47e9-b3a0-0da9e5cd9374",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4eec3335-0910-4bc5-a628-c348e393e71f": {
      "main": [
        [
          {
            "node": "4ac42cfa-b298-4592-a6a5-925276d83052",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4ac42cfa-b298-4592-a6a5-925276d83052": {
      "main": [
        [
          {
            "node": "eb0e253e-9212-49c1-b9cb-cd98b09180f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ffd6909a-9826-404e-93a6-30a8d387a450": {
      "main": [
        [
          {
            "node": "e86841f8-1a3c-4885-be51-0ce817b14af8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774": {
      "main": [
        [
          {
            "node": "ffd6909a-9826-404e-93a6-30a8d387a450",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5d5a0e60-769c-47e9-b3a0-0da9e5cd9374": {
      "main": [
        [
          {
            "node": "85fdefe0-5e22-46ac-9850-abc01e1e5ac7",
            "type": "main",
            "index": 0
          },
          {
            "node": "eae457f3-c26c-4cdd-8c28-ae30906c90d8",
            "type": "main",
            "index": 0
          },
          {
            "node": "3a055535-f7a6-4c40-a332-1aac3cf1d7e3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "73e0589c-fe21-4fcd-aa71-f8d66e9a684e": {
      "ai_outputParser": [
        [
          {
            "node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "eb0e253e-9212-49c1-b9cb-cd98b09180f4": {
      "main": [
        [
          {
            "node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Flujos de trabajo relacionados recomendados

Usar Airtop, GPT-4 Mini y Gmail para analizar la UX y la calidad SEO de un sitio web
Usar Airtop, GPT-4 Mini y Gmail para analizar la calidad UX y SEO del sitio web
Set
Code
Html
+
Set
Code
Html
33 NodosLukaszB
Creación de contenido
WordPress Blog Automation Pro (Investigación profunda) v2.1 Marketplace
Usar GPT-4o, Perplexity AI y soporte multilingüe para automatizar la creación de blogs optimizados para SEO
If
Set
Xml
+
If
Set
Xml
125 NodosDaniel Ng
Creación de contenido
Crear blogs optimizados para SEO para WordPress usando Perplexity y GPT, con palabras clave y medios
Crear blogs optimizados para SEO para WordPress con palabras clave y medios usando Perplexity y GPT
Set
Code
Limit
+
Set
Code
Limit
124 NodosPaul
Creación de contenido
Crear blogs optimizados para SEO para WordPress con herramientas específicas
Crear blogs optimizados para SEO para WordPress usando herramientas específicas
Set
Code
Limit
+
Set
Code
Limit
124 NodosPaul
Creación de contenido
Generación de blogs de extremo a extremo para WordPress basada en agentes de LLM y creación de imágenes
Generación de blogs de WordPress de extremo a extremo mediante agentes LLM y técnicas de creación de imágenes
If
Set
Edit Image
+
If
Set
Edit Image
48 NodosMohamed Abdelwahab
Creación de contenido
Sistema de revisión por pares con IA, con generación automática de criterios de calificación
Automatizar la asignación de revisiones por pares con Slack y notificaciones por correo electrónico
Set
Code
Slack
+
Set
Code
Slack
22 NodosCheng Siong Chin
Extracción de documentos
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos19
Categoría2
Tipos de nodos11
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Cheng Siong Chin

Cheng Siong Chin

@cschin

Dr. Cheng Siong CHIN serves as a Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34