AutomationFlowsData & Sheets › Automate Fundamental Stock Analysis with Finnhub Data and Google Sheets Dcf…

Automate Fundamental Stock Analysis with Finnhub Data and Google Sheets Dcf…

Original n8n title: Automate Fundamental Stock Analysis with Finnhub Data and Google Sheets Dcf Calculator

ByAiAgent @lifehacks on n8n.io

Demonstration video

Event trigger★★★★☆ complexity26 nodesForm TriggerHTTP RequestGoogle Sheets
Data & Sheets Trigger: Event Nodes: 26 Complexity: ★★★★☆ Added:

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

This workflow follows the Form Trigger → Google Sheets 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": "4UeepGRTbAaXFDxb",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Fundamental Stock Analysis and DCF Calculator",
  "tags": [],
  "nodes": [
    {
      "id": "c7c33b5e-8b67-4a3e-8f07-2d5277098b37",
      "name": "Use if most recent company filing is quarterly report",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -224,
        128
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "97526707-dbae-46c2-ac64-354191332cb2",
      "name": "Filter Important Financials",
      "type": "n8n-nodes-base.code",
      "position": [
        1232,
        128
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "66eae1f5-ec4a-4809-aeec-233f63209634",
      "name": "Quarterly Reports",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        304
      ],
      "parameters": {},
      "typeVersion": 4.3
    },
    {
      "id": "27854e90-a773-47f0-86e7-e4cefb3537d6",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1024,
        112
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "df0213c8-5a80-4f06-a5e5-46ec639376f7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        -208
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "ae6cfe52-be65-4daf-ae64-a6661272499d",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        1632,
        112
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "e5d50ba4-2a86-4ca1-89cc-4cabd0e9b5dd",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2064,
        -32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4f5452e9-4bd2-4d0d-9949-53da5e530826",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2064,
        112
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f016869e-aa11-42a3-9430-6390e4e248d6",
      "name": "Split Out2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2064,
        256
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "60e8151f-851a-4aa4-836c-1ecd532cdbbf",
      "name": "Ratios",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        -32
      ],
      "parameters": {},
      "typeVersion": 4.3
    },
    {
      "id": "bbee6590-7a0b-4166-ad41-41368f391949",
      "name": "MarketCap",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        -208
      ],
      "parameters": {},
      "typeVersion": 4.3
    },
    {
      "id": "c63d6290-3988-46b4-abdc-ab1a33addaf6",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        544,
        -192
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f70afcb3-d669-4488-b5fe-3d2013d3001c",
      "name": "Calculate TTM",
      "type": "n8n-nodes-base.code",
      "position": [
        736,
        -192
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "31473b05-8abf-478d-b013-0043d5a9524c",
      "name": "Merge3",
      "type": "n8n-nodes-base.merge",
      "position": [
        352,
        -192
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "28c14bd9-6c33-42d8-abcc-9463a51d8bb8",
      "name": "DCF Calculator",
      "type": "n8n-nodes-base.code",
      "position": [
        1440,
        0
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "63303f84-9b46-46b8-b266-09df82395248",
      "name": "Prep For Sheets",
      "type": "n8n-nodes-base.code",
      "position": [
        1840,
        112
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b803928e-5f16-424f-8a37-1135b41e2028",
      "name": "Clear GraphData",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2256,
        -32
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "faedc2d6-6fdc-498c-b40b-0ec0f4951905",
      "name": "Update GraphData",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2448,
        -32
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "7d62ce9b-f1e7-4b90-98b9-306e3147c205",
      "name": "Clear GrowthTable",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2256,
        112
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "8fa2f2bb-bee7-4a0e-ab02-81b8f56ef824",
      "name": "Update Growth Table",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2448,
        112
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "8fa362e1-9d47-421d-bc70-7752851fa518",
      "name": "Clear DCFTable",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2256,
        256
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "2b449de1-1754-46b1-95f3-6e6fd0c70706",
      "name": "Update DCFTable",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2448,
        256
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "adba63ab-171a-4ba4-ba69-c56eb0692e82",
      "name": "Annual Reports",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        128
      ],
      "parameters": {},
      "typeVersion": 4.3
    },
    {
      "id": "0dbeabaf-7eb6-44d0-a711-f8da83c03cd6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        -704
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "85bcf761-b968-45f3-a77f-ab2315cfb64c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -272
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0fbebc89-3217-447e-bef7-23755814f290",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1824,
        -256
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": "jVQ3EjxBPJMZU8Bh",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "2ae06dd4-4639-4889-895d-629b1fc4428e",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Filter Important Financials",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Prep For Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge3": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ratios": {
      "main": [
        [
          {
            "node": "Merge3",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "MarketCap": {
      "main": [
        [
          {
            "node": "Merge3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Clear GraphData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Calculate TTM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Clear GrowthTable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out2": {
      "main": [
        [
          {
            "node": "Clear DCFTable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate TTM": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Annual Reports": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Clear DCFTable": {
      "main": [
        [
          {
            "node": "Update DCFTable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DCF Calculator": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear GraphData": {
      "main": [
        [
          {
            "node": "Update GraphData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prep For Sheets": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          },
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Split Out2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update GraphData": {
      "main": [
        []
      ]
    },
    "Clear GrowthTable": {
      "main": [
        [
          {
            "node": "Update Growth Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Quarterly Reports": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Filter Important Financials": {
      "main": [
        [
          {
            "node": "DCF Calculator",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Use if most recent company filing is quarterly report": {
      "main": [
        [
          {
            "node": "Annual Reports",
            "type": "main",
            "index": 0
          },
          {
            "node": "Quarterly Reports",
            "type": "main",
            "index": 0
          },
          {
            "node": "Ratios",
            "type": "main",
            "index": 0
          },
          {
            "node": "MarketCap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Demonstration video

Source: https://n8n.io/workflows/11674/ — 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

Overview 🌐

Form Trigger, HTTP Request, Google Sheets
Data & Sheets

Splitout Code. Uses splitOut, httpRequest, googleSheets, stickyNote. Event-driven trigger; 36 nodes.

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

This n8n workflow is designed for Customer Success Managers (CSM), marketers, sales teams, and data administrators who need to automate the process of uploading and processing CSV data in HubSpot. It

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

The SEO On Page API is a powerful tool for keyword research, competitor analysis, backlink insights, and overall SEO optimization. With multiple endpoints, you can instantly gather actionable SEO data

Form Trigger, HTTP Request, Google Sheets
Data & Sheets

Description: The Spotify Music Downloader is an automation flow that allows users to easily download music from Spotify tracks. By leveraging the powerful Spotify Downloader API, the flow downloads Sp

Form Trigger, HTTP Request, Google Drive +1