🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + EODHD: stock signals in one tab

Lisa Granqvist Partner Workflow Automation Expert

Your watchlist is sitting in a spreadsheet. The market data is somewhere else. The “analysis” is split across tabs, bookmarks, and half-finished notes you’ll never trust again.

Sheets stock signals automation hits hardest when you’re trying to move fast without getting sloppy. A marketing lead managing a founder’s portfolio updates, an agency owner building weekly investor-style briefs, and a small business operator tracking a few long-term positions all run into the same issue: the process doesn’t scale.

This workflow pulls EODHD market data into Google Sheets, calculates indicators, and uses AI to write consistent BUY/WATCH/SELL notes with entry, stop-loss, and take-profit levels. You’ll see how it works, what you need, and where teams usually trip up.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + EODHD: stock signals in one tab

The Problem: Stock reviews take too long to trust

Manual stock review sounds simple until you do it consistently. You start by copying tickers from a sheet, then you open a market data site, then you grab fundamentals, then you check price action, then you calculate a few indicators (or you eyeball them, which is worse). After that you try to write a clean “here’s the plan” note, but your wording changes every time, and so does your risk logic. A few stocks are manageable. A real watchlist becomes a weekly time sink, plus a breeding ground for small errors that quietly ruin decisions.

It adds up fast. Here’s where it breaks down in real life.

  • You end up re-checking the same numbers on two different sites because you don’t fully trust the first copy-paste.
  • Indicator calculations drift over time, which means your “RSI” isn’t the same definition week to week.
  • Notes get inconsistent, so “WATCH” can mean “buy next week” or “avoid entirely,” depending on your mood.
  • Trade levels live in someone’s head, not in the spreadsheet where the team actually looks.

The Solution: EODHD + Google Sheets signals, generated automatically

This n8n workflow turns a plain Google Sheet of tickers into a repeatable stock analysis pipeline. You keep your list in a column named ticker. When the workflow runs, it reads those rows and processes them one by one, pulling both fundamentals (valuation, growth, profitability) and OHLCV price data from the EODHD APIs. Next, it computes the technical indicators that usually take the most time to calculate correctly: RSI, moving averages (20/50/200), volatility, and simple support and resistance levels. Finally, an AI agent takes the structured fundamentals and indicators and produces consistent outputs you can actually compare across tickers: BUY/WATCH/SELL, entry, stop-loss, take-profit, a thesis, pros and cons, and a 1–10 fundamental quality score. Everything lands back in your Google Sheet in a dedicated Signals tab.

The workflow starts with a manual run in n8n, which is perfect for weekly reviews or “run it now” moments. It then loops through each ticker, merges the data streams, normalizes the price payload, and asks the AI to return structured JSON. After parsing, it maps each field into clean columns and appends a new row to your Signals tab.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you track 25 tickers and do a weekly review. Manually, if you spend about 8 minutes per ticker pulling fundamentals, checking prices, calculating a couple indicators, and writing a quick note, that’s roughly 3+ hours. With this workflow, you update the ticker list in Google Sheets (maybe 2 minutes), run the automation, and let it process in the background; even if it averages about 1 minute per ticker end-to-end, you’re done in around half an hour of total “hands-on” effort. The sheet fills itself, and your Signals tab becomes the place you actually work from.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store tickers and output signals
  • EODHD for fundamentals and OHLCV market data
  • OpenAI API key (get it from your OpenAI dashboard)

Skill level: Intermediate. You’ll connect accounts, paste an API token, and be comfortable checking a few mapped fields in the sheet.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A manual run kicks things off. You launch the workflow in n8n when you want a fresh batch of signals, which is great for weekly routines or a pre-market check.

Your watchlist comes from Google Sheets. The workflow reads every row in your input sheet (using a column called ticker) and then iterates through them in batches, so it doesn’t choke on longer lists.

EODHD data is pulled and prepared. It requests fundamentals first, then OHLC price history. After that, it computes indicators and normalizes the price payload so the AI gets consistent inputs instead of messy arrays.

AI writes the signal, then Sheets becomes your dashboard. The AI agent returns structured JSON (signal, trade levels, thesis, pros/cons, and a fundamental score). n8n parses that JSON, maps the fields into your column layout, and appends a new row to the Signals tab.

You can easily modify the AI prompt to match your risk rules based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually so you can run stock analysis on demand.

  1. Add the Manual Launch Trigger node as the workflow trigger.
  2. Leave all fields at their defaults in Manual Launch Trigger.

Step 2: Connect Google Sheets

Configure the spreadsheet input and output used for tickers and AI results.

  1. Open Retrieve Sheet Rows and set Document ID to [YOUR_ID].
  2. Set Sheet Name to Sheet1 in Retrieve Sheet Rows.
  3. Open Append Sheet Row and set Document ID to [YOUR_ID] and Sheet Name to Sheet1.
  4. Keep Operation set to append in Append Sheet Row.
  5. Verify the column mappings use expressions like {{ $json.ticker }}, {{ $json.entry }}, and {{ $json.would_enter }}.

Credential Required: Connect your Google Sheets credentials

⚠️ Common Pitfall: If [YOUR_ID] is not replaced with a real spreadsheet ID, Retrieve Sheet Rows and Append Sheet Row will fail.

Step 3: Set Up Batch Processing and Market Data Fetching

This step iterates tickers and fetches fundamentals and OHLC data in parallel.

  1. Connect Retrieve Sheet Rows to Iterate Records to process one ticker per batch.
  2. In Request Fundamentals Data, set URL to =https://eodhd.com/api/fundamentals/{{ $json.ticker }}.US.
  3. In Request Fundamentals Data, set query parameters: filter = General,Highlights,Valuation,Technicals, api_token = [CONFIGURE_YOUR_API_KEY], and fmt = json.
  4. In Request OHLC Prices, set URL to =https://eodhd.com/api/eod/{{ $json.General.Code }}.US.
  5. In Request OHLC Prices, set query parameters: from = 2023-01-01, to = 2025-12-30, period = d, fmt = json, and api_token = [CONFIGURE_YOUR_API_KEY].
  6. Keep the JavaScript in Compute Metrics & Growth and Normalize Price Payload unchanged to calculate technicals and growth scores.

Request Fundamentals Data outputs to both Request OHLC Prices and Combine Data Streams in parallel.

Tip: Use the same EODHD API token in both HTTP nodes to avoid inconsistent rate limits.

Step 4: Set Up AI Analysis and Parsing

The AI agent generates structured analysis from normalized fundamentals and technical metrics.

  1. Open Generate AI Analysis and keep Prompt Type as define.
  2. Set Text in Generate AI Analysis to =Analyze the following stock data and return the output strictly following the defined JSON schema. INPUT DATA: {{ JSON.stringify($json) }}.
  3. Ensure OpenAI Chat Engine is connected as the language model for Generate AI Analysis and set the Model to gpt-4.1-nano.
  4. Keep Parse AI JSON to transform the AI response string into JSON.
  5. Keep Map Sheet Output to reshape AI results into spreadsheet columns.

Credential Required: Connect your OpenAI credentials

OpenAI Chat Engine is connected as the language model for Generate AI Analysis — ensure credentials are added to OpenAI Chat Engine.

⚠️ Common Pitfall: If the AI returns non-JSON text, Parse AI JSON will fail. Keep the system message intact to enforce strict JSON output.

Step 5: Configure Output and Looping

The workflow writes results back to the sheet and loops to the next ticker.

  1. Confirm Map Sheet Output connects to Append Sheet Row to append the analysis data.
  2. Verify Append Sheet Row maps fields like ENTRY to {{ $json.entry }} and ENTER(YES/NO) to {{ $json.would_enter }}.
  3. Ensure Append Sheet Row connects back to Iterate Records to process all rows in the input sheet.

Step 6: Test and Activate Your Workflow

Run a full test to validate data fetching, AI output, and spreadsheet writes.

  1. Click Execute Workflow from Manual Launch Trigger to start a manual run.
  2. Check Request Fundamentals Data and Request OHLC Prices for valid API responses.
  3. Confirm Generate AI Analysis outputs a JSON string and Parse AI JSON converts it into structured fields.
  4. Verify new rows appear in your Google Sheet from Append Sheet Row with populated analysis fields.
  5. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • EODHD credentials can expire or need specific permissions. If things break, check your EODHD API token and plan limits in your EODHD account settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Sheets stock signals automation?

About 30 minutes if your APIs are ready.

Do I need coding skills to automate stock signals in Google Sheets?

No. You’ll paste API keys, connect Google Sheets, and confirm your output columns line up.

Is n8n free to use for this Sheets stock signals workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs (often just a few dollars a month at small volumes) and your EODHD plan.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Sheets stock signals workflow for a different scoring model?

Yes, and it’s the first thing I’d tweak, honestly. Update the instructions inside the Generate AI Analysis node so the model weights what you care about (value, momentum, dividend safety, whatever). You can also change the Map Sheet Output step to add new columns like “risk category” or “time horizon.” If you want to swap providers, the OpenAI Chat Engine node can be replaced with another compatible chat model and the rest of the flow stays largely the same.

Why is my Google Sheets connection failing in this workflow?

Most of the time it’s expired Google OAuth or the spreadsheet permissions changed. Reconnect Google Sheets in n8n credentials, then confirm the exact spreadsheet and tab names still match what the nodes reference. Also check that your service account or user has edit access, because the Append Sheet Row node needs write permissions. If it fails only on some rows, look for empty tickers or extra spaces in the ticker column.

How many tickers can this Sheets stock signals automation handle?

Dozens to a few hundred per run is realistic for most setups, as long as you’re not hitting API rate limits.

Is this Sheets stock signals automation better than using Zapier or Make?

For this use case, usually yes. You’re combining multiple API calls, doing indicator calculations, merging data streams, and forcing the AI to return structured JSON that you then parse and map. n8n is simply more comfortable with that kind of multi-step logic, and it won’t punish you for branching or batching. Zapier or Make can still work, but you often end up paying more as the workflow grows, and complex transformations get awkward. Talk to an automation expert if you want a quick recommendation based on your volume and tools.

Once this is running, your sheet stops being a static list and becomes a signal engine. Set it up, run it when you need it, and use the time you get back for the decisions that actually matter.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal