📈 Monitoreo hourly de tasas de criptomonedas utilizando Alpha Vantage API y Google Sheets

Intermedio

Este es unFinance, AIflujo de automatización del dominio deautomatización que contiene 9 nodos.Utiliza principalmente nodos como Telegram, HttpRequest, GoogleSheets, ScheduleTrigger, combinando tecnología de inteligencia artificial para lograr automatización inteligente. 📈 Monitorea las tasas de cambio de criptomonedas cada hora utilizando Alpha Vantage API y Google Sheets

Requisitos previos
  • Bot Token de Telegram
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
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": "LRLFh0lVw2OIPJdW",
  "meta": {
    "instanceId": "",
    "templateCredsSetupCompleted": true
  },
  "name": "📈 Hourly Monitoring of Crypto Rates with Alpha Vantage API and Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "95d9375b-c423-4346-8dd4-3cba09a62caa",
      "name": "Tasa de cambio BTC",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -520,
        -60
      ],
      "parameters": {
        "url": "https://www.alphavantage.co/query",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "function",
              "value": "CURRENCY_EXCHANGE_RATE"
            },
            {
              "name": "from_currency",
              "value": "BTC"
            },
            {
              "name": "to_currency",
              "value": "EUR"
            }
          ]
        }
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "5d2a06c6-d2d8-4f55-b9ea-615d5c88612a",
      "name": "Llamar cada hora",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -860,
        40
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ede798c5-aec6-4040-9ed8-b9f2cf6ea66f",
      "name": "Guardar tasa BTC",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -320,
        -60
      ],
      "parameters": {
        "columns": {
          "value": {
            "Ask_Price": "={{ $json['Realtime Currency Exchange Rate']['9. Ask Price'] }}",
            "Bid_Price": "={{ $json['Realtime Currency Exchange Rate']['8. Bid Price'] }}",
            "Time_Zone": "={{ $json['Realtime Currency Exchange Rate']['7. Time Zone'] }}",
            "Exchange_Rate": "={{ $json['Realtime Currency Exchange Rate']['5. Exchange Rate'] }}",
            "Last_Refreshed": "={{ $json['Realtime Currency Exchange Rate']['6. Last Refreshed'] }}",
            "To_Currency_Code": "={{ $json['Realtime Currency Exchange Rate']['3. To_Currency Code'] }}",
            "To_Currency_Name": "={{ $json['Realtime Currency Exchange Rate']['4. To_Currency Name'] }}",
            "From_Currency_Code": "={{ $json['Realtime Currency Exchange Rate']['1. From_Currency Code'] }}",
            "From_Currency_Name": "={{ $json['Realtime Currency Exchange Rate']['2. From_Currency Name'] }}"
          },
          "schema": [
            {
              "id": "Last_Refreshed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Last_Refreshed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time_Zone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Time_Zone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "From_Currency_Code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "From_Currency_Code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "From_Currency_Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "From_Currency_Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "To_Currency_Code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "To_Currency_Code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "To_Currency_Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "To_Currency_Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Exchange_Rate",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Exchange_Rate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last_Refreshed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Last_Refreshed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time_Zone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Time_Zone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Bid_Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Bid_Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ask_Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Ask_Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "BTC"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1vtjhgdulJn8niwZE0RQeQL8L1kb00L4z2TOuQK_9mV0",
          "cachedResultUrl": "",
          "cachedResultName": "AlphaVantage"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.6
    },
    {
      "id": "2fb8320b-aeb4-4e23-91c5-ff2ceebc8970",
      "name": "Guardar tasa ETH",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -320,
        120
      ],
      "parameters": {
        "columns": {
          "value": {
            "Ask_Price": "={{ $json['Realtime Currency Exchange Rate']['9. Ask Price'] }}",
            "Bid_Price": "={{ $json['Realtime Currency Exchange Rate']['8. Bid Price'] }}",
            "Time_Zone": "={{ $json['Realtime Currency Exchange Rate']['7. Time Zone'] }}",
            "Exchange_Rate": "={{ $json['Realtime Currency Exchange Rate']['5. Exchange Rate'] }}",
            "Last_Refreshed": "={{ $json['Realtime Currency Exchange Rate']['6. Last Refreshed'] }}",
            "To_Currency_Code": "={{ $json['Realtime Currency Exchange Rate']['3. To_Currency Code'] }}",
            "To_Currency_Name": "={{ $json['Realtime Currency Exchange Rate']['4. To_Currency Name'] }}",
            "From_Currency_Code": "={{ $json['Realtime Currency Exchange Rate']['1. From_Currency Code'] }}",
            "From_Currency_Name": "={{ $json['Realtime Currency Exchange Rate']['2. From_Currency Name'] }}"
          },
          "schema": [
            {
              "id": "Last_Refreshed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Last_Refreshed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time_Zone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Time_Zone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "From_Currency_Code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "From_Currency_Code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "From_Currency_Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "From_Currency_Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "To_Currency_Code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "To_Currency_Code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "To_Currency_Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "To_Currency_Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Exchange_Rate",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Exchange_Rate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last_Refreshed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Last_Refreshed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time_Zone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Time_Zone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Bid_Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Bid_Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ask_Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Ask_Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1591416661,
          "cachedResultUrl": "",
          "cachedResultName": "ETH"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1vtjhgdulJn8niwZE0RQeQL8L1kb00L4z2TOuQK_9mV0",
          "cachedResultUrl": "",
          "cachedResultName": "AlphaVantage"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.6
    },
    {
      "id": "b0630581-e5cc-4e64-bbb3-2c362b766a8a",
      "name": "Tasa de cambio ETH",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -520,
        120
      ],
      "parameters": {
        "url": "https://www.alphavantage.co/query",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "function",
              "value": "CURRENCY_EXCHANGE_RATE"
            },
            {
              "name": "from_currency",
              "value": "ETH"
            },
            {
              "name": "to_currency",
              "value": "EUR"
            }
          ]
        }
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "329e3c49-9b8f-49ca-83da-5e7ec00f17f0",
      "name": "Notificación BTC",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -80,
        -60
      ],
      "webhookId": "5f997b2e-aff9-427e-a92d-a0133903a3a4",
      "parameters": {
        "text": "=<b>🔄 BTC to EUR Rate Update</b>\n\n<b>From:</b> {{ $json[\"From_Currency_Name\"] }} ({{ $json[\"From_Currency_Code\"] }})\n<b>To:</b> {{ $json[\"To_Currency_Name\"] }} ({{ $json[\"To_Currency_Code\"] }})\n\n<b>💱 Exchange Rate:</b> {{ $json[\"Exchange_Rate\"] }}\n<b>📉 Bid:</b> {{ $json[\"Bid_Price\"] }}\n<b>📈 Ask:</b> {{ $json[\"Ask_Price\"] }}\n\n<b>🕒 Last Updated:</b> {{ $json[\"Last_Refreshed\"] }} ({{ $json[\"Time_Zone\"] }})",
        "chatId": "1698247520",
        "additionalFields": {
          "parse_mode": "HTML",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "BlqWlzuNU8B4t9Pw",
          "name": "Assistant Bot"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "e9920828-9a99-4899-9313-037fc78933dc",
      "name": "Notificación ETH",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -80,
        120
      ],
      "webhookId": "5f997b2e-aff9-427e-a92d-a0133903a3a4",
      "parameters": {
        "text": "=<b>🔄 ETH to EUR Rate Update</b>\n\n<b>From:</b> {{ $json[\"From_Currency_Name\"] }} ({{ $json[\"From_Currency_Code\"] }})\n<b>To:</b> {{ $json[\"To_Currency_Name\"] }} ({{ $json[\"To_Currency_Code\"] }})\n\n<b>💱 Exchange Rate:</b> {{ $json[\"Exchange_Rate\"] }}\n<b>📉 Bid:</b> {{ $json[\"Bid_Price\"] }}\n<b>📈 Ask:</b> {{ $json[\"Ask_Price\"] }}\n\n<b>🕒 Last Updated:</b> {{ $json[\"Last_Refreshed\"] }} ({{ $json[\"Time_Zone\"] }})",
        "chatId": "1698247520",
        "additionalFields": {
          "parse_mode": "HTML",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "3d674add-ca49-4e6f-b3e4-7aaa82f67953",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -900,
        -500
      ],
      "parameters": {
        "color": 7,
        "width": 220,
        "height": 760,
        "content": "### 1. Workflow Trigger every hour\n\nTrigger the collection of ETH and BTC price every hour.\n\n#### How to setup?\n*Nothing to do.*"
      },
      "typeVersion": 1
    },
    {
      "id": "4095c6c9-9cbd-446c-884c-ed713760ddff",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -500
      ],
      "parameters": {
        "color": 7,
        "width": 920,
        "height": 760,
        "content": "### 2. Collect BTC and ETH price from Alpha Vantage Insight API\nThis starts by calling the CURRENCY_EXCHANGE_RATE function of the **Alpha Vantage Insight API** to get the exchange rate to euros.\n#### How to setup?\n- **Set up API credentials**\n  1. Get your free API key from [Alpha Vantage](https://www.alphavantage.co/support/#api-key)\n  2. Fill in the API key in the HTTP Request node using query parameters authentication\n- **Load records in the Google Sheet Node**:\n   1. Add your Google Sheet API credentials to access the Google Sheet file\n   2. Select the file using the list, an URL or an ID\n   3. Select the sheet in which you want to record your working sessions\n   4. Map the fields:  `From_Currency_Code`, `From_Currency_Name`, `To_Currency_Code`, `To_Currency_Name`, `Exchange_Rate`, `Bid_Price`, `Ask_Price`, `Last_Refreshed`, `Time_Zone`\t\t\t\t\t\t\t\t\t\t\t\t\n  [Learn more about the Google Sheet Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets)\n- **Send Telegram notification**\n  1. Add your Telegram credentials\n  2. Fill in the Chat ID and message content\n  3. Use dynamic variables for formatting the exchange rate alert\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "cd5a0fe2-298c-40a5-b184-be90d8c220d1",
  "connections": {
    "ede798c5-aec6-4040-9ed8-b9f2cf6ea66f": {
      "main": [
        [
          {
            "node": "329e3c49-9b8f-49ca-83da-5e7ec00f17f0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fb8320b-aeb4-4e23-91c5-ff2ceebc8970": {
      "main": [
        [
          {
            "node": "e9920828-9a99-4899-9313-037fc78933dc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5d2a06c6-d2d8-4f55-b9ea-615d5c88612a": {
      "main": [
        [
          {
            "node": "95d9375b-c423-4346-8dd4-3cba09a62caa",
            "type": "main",
            "index": 0
          },
          {
            "node": "b0630581-e5cc-4e64-bbb3-2c362b766a8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "95d9375b-c423-4346-8dd4-3cba09a62caa": {
      "main": [
        [
          {
            "node": "ede798c5-aec6-4040-9ed8-b9f2cf6ea66f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b0630581-e5cc-4e64-bbb3-2c362b766a8a": {
      "main": [
        [
          {
            "node": "2fb8320b-aeb4-4e23-91c5-ff2ceebc8970",
            "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?

Intermedio - Finanzas, Inteligencia Artificial

¿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.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos9
Categoría2
Tipos de nodos5
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Samir Saci

Samir Saci

@samirsaci

Automation, AI and Analytics for Supply Chain & Business Optimization Helping businesses streamline operations using n8n, AI agents, and data science to enhance efficiency and sustainability. Linkedin: www.linkedin.com/in/samir-saci

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34