AutomationFlowsEmail & Gmail › Send Daily Currency Exchange Rate Updates via Currencyfreaks API and Gmail

Send Daily Currency Exchange Rate Updates via Currencyfreaks API and Gmail

BySarfaraz Muhammad Sajib @sarfarazmuhammad on n8n.io

Trigger: ScheduleTrigger node (configurable interval) Set Variables: API Key, Preferred Currencies (PKR, GBP, EUR, USD, BDT, INR) HTTP Request: Fetch latest exchange rates from CurrencyFreaks API Set Recipient Email Set Email Subject Send Email: HTML formatted via Gmail OAuth2…

Cron / scheduled trigger★★★★☆ complexity7 nodesHTTP RequestGmail
Email & Gmail Trigger: Cron / scheduled Nodes: 7 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5512 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "UXgh0OxJeBzvsPd0",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Daily Currency Update",
  "tags": [],
  "nodes": [
    {
      "id": "fa7e8916-7e89-4981-a95b-970b419c4189",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -500,
        -120
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "390155b0-6040-40fd-ab6f-284c579f29bb",
      "name": "Set API Key & Preferred Currencies",
      "type": "n8n-nodes-base.set",
      "position": [
        -280,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4669b111-8540-4de2-a5f7-672f2ad81e98",
              "name": "API Key",
              "type": "string",
              "value": ""
            },
            {
              "id": "58c89ccb-2e3d-4334-9366-d0b285fdfbd8",
              "name": "Preferred Currencies",
              "type": "string",
              "value": "PKR,GBP,EUR,USD,BDT,INR"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f90d7646-8bba-426f-ba8e-c2e6e7f23b69",
      "name": "Get Latest Rate",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -60,
        -120
      ],
      "parameters": {
        "url": "=https://api.currencyfreaks.com/v2.0/rates/latest?apikey={{ $json['API Key'] }}&symbols={{ $json['Preferred Currencies'] }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "0d270093-d04a-486a-92df-8b10104dc0e3",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        540,
        -120
      ],
      "parameters": {
        "sendTo": "={{ $('Set Recipient Email').item.json['Recipient Email'] }}",
        "message": "=<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Currency Rate Update</title>\n    <style>\n      body {\n        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n        background-color: #f9fafb;\n        color: #111827;\n        margin: 0;\n        padding: 2rem;\n      }\n      .email-container {\n        max-width: 600px;\n        margin: 0 auto;\n        background-color: #ffffff;\n        border-radius: 12px;\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);\n        padding: 2rem;\n        border: 1px solid #e5e7eb;\n      }\n      .heading {\n        font-size: 1.25rem;\n        font-weight: 600;\n        margin-bottom: 1rem;\n        color: #1f2937;\n      }\n      .section {\n        margin-bottom: 1rem;\n      }\n      .rates {\n        background-color: #f3f4f6;\n        padding: 1rem;\n        border-radius: 8px;\n        font-family: monospace;\n        white-space: pre-line;\n        font-size: 0.95rem;\n      }\n      .footer {\n        margin-top: 2rem;\n        font-size: 0.875rem;\n        color: #6b7280;\n      }\n    </style>\n  </head>\n  <body>\n    <div class=\"email-container\">\n      <div class=\"heading\">\ud83d\udcc8 Daily Currency Rate Update</div>\n      <div class=\"section\">\n        <strong>Date:</strong>\n        {{ $('Get Latest Rate').item.json.date }}<br />\n        <strong>Base Currency:</strong>\n        {{ $('Get Latest Rate').item.json.base }}\n      </div>\n      <div class=\"section\">\n  <strong>Exchange Rates:</strong>\n  <div class=\"rates\">{{ Object.entries($('Get Latest Rate').item.json.rates).map(([k, v]) => `${k}: ${v}`).join('\\n') }}</div>\n</div>\n      <div class=\"footer\">\n        If you have any questions or would like to receive updates in a different format or frequency, feel free to reply to this email.<br /><br />\n        Best regards,<br />\n        <strong>Your Automation Bot</strong>\n      </div>\n    </div>\n  </body>\n</html>\n",
        "options": {},
        "subject": "={{ $json.Subject }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "52c25dd1-6ae8-49f7-9858-a452e53e5f9b",
      "name": "Set Recipient Email",
      "type": "n8n-nodes-base.set",
      "position": [
        140,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0b0969ab-45d1-427c-bac0-bd59a43661d7",
              "name": "Recipient Email",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "eb16bc9f-ab43-4ae9-a243-95c27230a9b8",
      "name": "Set E-mail Subject",
      "type": "n8n-nodes-base.set",
      "position": [
        340,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ad95bad5-c4ac-4864-a83c-06d59d99b415",
              "name": "Subject",
              "type": "string",
              "value": "Daily Currency Update: PKR, GBP, EUR, USD, BDT, INR"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "08160c70-de91-48e2-9bff-aa87bc24975b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -500
      ],
      "parameters": {
        "width": 640,
        "height": 320,
        "content": "#### Daily Currency Update Workflow (n8n)\n\n- Trigger: ScheduleTrigger node (configurable interval)\n- Set Variables: API Key, Preferred Currencies (PKR, GBP, EUR, USD, BDT, INR)\n- HTTP Request: Fetch latest exchange rates from CurrencyFreaks API\n- Set Recipient Email\n- Set Email Subject\n- Send Email: HTML formatted via Gmail OAuth2 with dynamic rate data (date, base currency, rates)\n- Flow: ScheduleTrigger \u2192 Set API Key & Currencies \u2192 HTTP Request \u2192 Set Recipient \u2192 Set Subject \u2192 Gmail Send\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8f4bb63b-5d83-41b6-bf78-307f20926d49",
  "connections": {
    "Send a message": {
      "main": [
        []
      ]
    },
    "Get Latest Rate": {
      "main": [
        [
          {
            "node": "Set Recipient Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Set API Key & Preferred Currencies",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set E-mail Subject": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Recipient Email": {
      "main": [
        [
          {
            "node": "Set E-mail Subject",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set API Key & Preferred Currencies": {
      "main": [
        [
          {
            "node": "Get Latest Rate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Trigger: ScheduleTrigger node (configurable interval) Set Variables: API Key, Preferred Currencies (PKR, GBP, EUR, USD, BDT, INR) HTTP Request: Fetch latest exchange rates from CurrencyFreaks API Set Recipient Email Set Email Subject Send Email: HTML formatted via Gmail OAuth2…

Source: https://n8n.io/workflows/5512/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.

Gmail, Google Drive, Google Sheets +1
Email & Gmail

Instead of providing a routine check, it focuses on significant movements by: Sending a Slack alert only if a query crosses a defined movement threshold. Emailing a structured report with the Top 25 i

HTTP Request, Slack, Gmail
Email & Gmail

Looking for a way to track GitHub bounty issues automatically and get notified in real time? This GitHub Bounty Tracker workflow monitors repositories for issues labeled 💎 Bounty, logs them in Google

Google Sheets, HTTP Request, WhatsApp +1
Email & Gmail

This workflow automatically sends a beautifully designed HTML newsletter every Sunday at 8 AM, featuring products currently on sale from your Algolia-powered e-commerce store.

Google Sheets, HTTP Request, Gmail
Email & Gmail

This workflow automatically identifies your weekly bestselling product from your Algolia-powered e-commerce store and generates a cinematic product video using Google VEO 3.0 AI, helping marketing tea

HTTP Request, Gmail