📈 Monitoreo hourly de tasas de criptomonedas utilizando Alpha Vantage API y Google Sheets
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
- •Bot Token de Telegram
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (9)
Categoría
{
"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
}
]
]
}
}
}¿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.
Flujos de trabajo relacionados recomendados
Samir Saci
@samirsaciAutomation, 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
Compartir este flujo de trabajo