AutomationFlowsData & Sheets › Log Daily Gold, Oil, Brent and Eurusd Prices to Google Sheets with Siftingio

Log Daily Gold, Oil, Brent and Eurusd Prices to Google Sheets with Siftingio

Log daily gold, oil, Brent and EURUSD prices to Google Sheets with SiftingIO. Uses n8n-nodes-siftingio, googleSheets. Scheduled trigger; 11 nodes.

Cron / scheduled trigger★★★★☆ complexity11 nodesN8N Nodes SiftingioGoogle Sheets
Data & Sheets Trigger: Cron / scheduled Nodes: 11 Complexity: ★★★★☆ Added:

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
{
  "name": "Log daily gold, oil, Brent and EURUSD prices to Google Sheets with SiftingIO",
  "nodes": [
    {
      "parameters": {
        "content": "## Daily market snapshot \u2014 SiftingIO \u2192 Google Sheets\n\nEvery morning this workflow records:\n- Gold (`XAUUSD`)\n- WTI crude oil (`WTIUSD`)\n- Brent crude oil (`UKOUSD`)\n- EUR/USD (`EURUSD`)\n\n### Setup (about 5 minutes)\n1. Install `n8n-nodes-siftingio`\n2. Create a free API key:\n   https://sifting.io/register?utm_source=n8n&utm_medium=workflow_template&utm_campaign=daily_snapshot_sheets\n3. Select your SiftingIO credential on all four SiftingIO nodes\n4. Create a Google Sheet with these exact headers in row 1:\n   `timestamp_utc | gold_xauusd | wti_usd | brent_ukousd | eurusd | source`\n5. Open **Append snapshot to Google Sheets**\n6. Select your Google Sheets credential, spreadsheet, and sheet tab\n7. Click **Execute workflow** once; verify one row; then activate\n\nThe workflow imports inactive and contains no credentials or secrets.",
        "height": 650,
        "width": 480
      },
      "id": "12d99508-ba94-4829-9cb0-d577992576ba",
      "name": "Setup guide",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -800,
        -180
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 7
            }
          ]
        }
      },
      "id": "3e8a875e-5e8b-4c6a-b301-dda2c734771d",
      "name": "Every morning at 7am",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -260,
        180
      ]
    },
    {
      "parameters": {
        "resource": "live",
        "operation": "getTrade",
        "venue": "commodities",
        "symbol": "XAUUSD"
      },
      "id": "85798604-438e-46b5-931e-835a75fbfb47",
      "name": "Get gold",
      "type": "n8n-nodes-siftingio.siftingIo",
      "typeVersion": 1,
      "position": [
        20,
        -60
      ]
    },
    {
      "parameters": {
        "resource": "live",
        "operation": "getTrade",
        "venue": "commodities",
        "symbol": "WTIUSD"
      },
      "id": "4f47eb75-bd0a-4d89-a74f-967c886d60c1",
      "name": "Get WTI",
      "type": "n8n-nodes-siftingio.siftingIo",
      "typeVersion": 1,
      "position": [
        20,
        100
      ]
    },
    {
      "parameters": {
        "resource": "live",
        "operation": "getTrade",
        "venue": "commodities",
        "symbol": "UKOUSD"
      },
      "id": "bad3958f-57e9-4632-9031-0121ea568f25",
      "name": "Get Brent",
      "type": "n8n-nodes-siftingio.siftingIo",
      "typeVersion": 1,
      "position": [
        20,
        260
      ]
    },
    {
      "parameters": {
        "resource": "live",
        "operation": "getTrade",
        "venue": "forex",
        "symbol": "EURUSD"
      },
      "id": "d6884ad2-c7ef-4669-9986-b9928be4d84d",
      "name": "Get EURUSD",
      "type": "n8n-nodes-siftingio.siftingIo",
      "typeVersion": 1,
      "position": [
        20,
        420
      ]
    },
    {
      "parameters": {},
      "id": "5efd328d-723c-458d-bc83-b3acd03b3d4e",
      "name": "Merge gold and WTI",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        300,
        20
      ]
    },
    {
      "parameters": {},
      "id": "91ceccb5-938c-43a9-8d52-e3eaa36576cc",
      "name": "Add Brent",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        500,
        150
      ]
    },
    {
      "parameters": {},
      "id": "49d7c486-2ee1-47a2-aed2-26e78f0442b8",
      "name": "Add EURUSD",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        700,
        250
      ]
    },
    {
      "parameters": {
        "jsCode": "function readPrice(payload) {\n  const candidates = [\n    payload.p, payload.price, payload.last, payload.last_price,\n    payload.c, payload.close, payload.mid, payload.m\n  ];\n  for (const value of candidates) {\n    const n = Number(value);\n    if (Number.isFinite(n)) return n;\n  }\n\n  const bid = Number(payload.b ?? payload.bid);\n  const ask = Number(payload.a ?? payload.ask);\n  if (Number.isFinite(bid) && Number.isFinite(ask)) return (bid + ask) / 2;\n\n  throw new Error(`No numeric price found in response: ${JSON.stringify(payload)}`);\n}\n\nreturn [{\n  json: {\n    timestamp_utc: new Date().toISOString(),\n    gold_xauusd: readPrice($('Get gold').first().json),\n    wti_usd: readPrice($('Get WTI').first().json),\n    brent_ukousd: readPrice($('Get Brent').first().json),\n    eurusd: readPrice($('Get EURUSD').first().json),\n    source: 'SiftingIO'\n  }\n}];"
      },
      "id": "e3d951e7-5bff-4065-b582-f71651a962f2",
      "name": "Build one spreadsheet row",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        920,
        250
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "",
          "mode": "list",
          "cachedResultName": ""
        },
        "sheetName": {
          "__rl": true,
          "value": "",
          "mode": "list",
          "cachedResultName": ""
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "timestamp_utc": "={{ $json.timestamp_utc }}",
            "gold_xauusd": "={{ $json.gold_xauusd }}",
            "wti_usd": "={{ $json.wti_usd }}",
            "brent_ukousd": "={{ $json.brent_ukousd }}",
            "eurusd": "={{ $json.eurusd }}",
            "source": "={{ $json.source }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "timestamp_utc",
              "displayName": "timestamp_utc",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "gold_xauusd",
              "displayName": "gold_xauusd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true
            },
            {
              "id": "wti_usd",
              "displayName": "wti_usd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true
            },
            {
              "id": "brent_ukousd",
              "displayName": "brent_ukousd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true
            },
            {
              "id": "eurusd",
              "displayName": "eurusd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true
            },
            {
              "id": "source",
              "displayName": "source",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": true,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "8b1864ab-b2ef-4027-a78f-fe38ed61be8d",
      "name": "Append snapshot to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1160,
        250
      ]
    }
  ],
  "connections": {
    "Every morning at 7am": {
      "main": [
        [
          {
            "node": "Get gold",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get WTI",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Brent",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get EURUSD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get gold": {
      "main": [
        [
          {
            "node": "Merge gold and WTI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get WTI": {
      "main": [
        [
          {
            "node": "Merge gold and WTI",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge gold and WTI": {
      "main": [
        [
          {
            "node": "Add Brent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Brent": {
      "main": [
        [
          {
            "node": "Add Brent",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Add Brent": {
      "main": [
        [
          {
            "node": "Add EURUSD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get EURUSD": {
      "main": [
        [
          {
            "node": "Add EURUSD",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Add EURUSD": {
      "main": [
        [
          {
            "node": "Build one spreadsheet row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build one spreadsheet row": {
      "main": [
        [
          {
            "node": "Append snapshot to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "timezone": "UTC"
  },
  "active": false
}
Pro

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

About this workflow

Log daily gold, oil, Brent and EURUSD prices to Google Sheets with SiftingIO. Uses n8n-nodes-siftingio, googleSheets. Scheduled trigger; 11 nodes.

Source: https://github.com/SiftingIO/n8n-nodes-siftingio/blob/main/templates/02-daily-market-snapshot-google-sheets.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

This workflow automates video distribution to 9 social platforms simultaneously using Blotato's API. It includes both a scheduled publisher (checks Google Sheets for videos marked "Ready") and a subwo

Google Sheets, HTTP Request, Form Trigger +2
Data & Sheets

YogiAI. Uses googleSheets, googleSheetsTool, httpRequest, stopAndError. Scheduled trigger; 61 nodes.

Google Sheets, Google Sheets Tool, HTTP Request +1
Data & Sheets

This workflow monitors Google Calendar for events indicating that a customer will visit the company today or the next day, retrieves the required details, and sends reminder notifications to the relev

Google Calendar, Google Sheets, HTTP Request +1
Data & Sheets

Useful if a team is working within a single instance and you want to be notified of what workflows have changed since you last visited them. Another use-case might be monitoring your managed instances

Google Sheets, Execute Workflow Trigger, n8n
Data & Sheets

ofn hook v0.24.0 beta. Uses start, httpRequest, functionItem, itemLists. Scheduled trigger; 42 nodes.

Start, HTTP Request, Function Item +3