πŸ“ˆ Automated daily stock market report with Bright Data, GPT-4.1, Airtable/Gmail

⚑ 1,783 views Β· πŸ“ˆ Crypto Trading & Stock Market

πŸ’‘ Pro Tip β€” HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it β€” it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.

View All Scrapers

Description

πŸ“˜ Workflow Documentation – Stock Market Daily Digest

automatisationrapportboursierquotidienbaptistefort.png

πŸ‘‹ Introduction

Wake up to a clean, analyst-style stock digest in your inboxβ€”top gainers/losers, a readable performance table, 3–5 insights, and upcoming eventsβ€”no spreadsheets, no manual scraping, no copy-paste.
This article explains, step by step, how to build a robust, daily, end-to-end automation that collects market data (Bright Data), waits until scraping is done, aggregates results, asks an AI model (OpenAI) to draft a styled HTML email, logs everything to Airtable, and finally sends the report via Gmail.

You’ll find a friendly but technical tour of every single node, so you can rebuild or adapt the same pipeline with confidence.


🎯 Who is this workflow for?


🧰 Tools you’ll need

Example Airtable Table: Daily Stocks

TickerCompanyPriceChange %SentimentDate
AAPLApple Inc.225.80+1.4%🟒 Positive2025-09-18 09:00
MSFTMicrosoft Corporation415.20-0.7%πŸ”΄ Negative2025-09-18 09:00
NVDANVIDIA Corporation124.55+2.1%🟒 Positive2025-09-18 09:00
TSLATesla Inc.260.00-3.0%πŸ”΄ Negative2025-09-18 09:00
METAMeta Platforms Inc.310.45+0.5%🟑 Neutral2025-09-18 09:00

> Keep API keys in n8n Credentials (never hard-code secrets).


πŸ—ΊοΈ Architecture at a glance

  1. Schedule fires daily
  2. Seed list of tickers
  3. Split into one item per stock
  4. Prepare keyword for scraping
  5. Launch Bright Data job
  6. Poll progress with a wait-loop
  7. Fetch snapshot data
  8. Aggregate for the AI
  9. Generate HTML summary (GPT)
  10. Save rows to Airtable
  11. Send email via Gmail

βš™οΈ Step-by-step β€” Every node explained

⏰ Daily Run Trigger (Schedule Trigger)

baptistefortautomatisationscrapingboursierbrightdata.png

Purpose

Start the automation at a precise time each day so nobody needs to push a button.

Parameters (English)


πŸ“ Set Stock List (Set Node – SAMPLE DATA)

Purpose

Define the universe of stocks to monitor. This acts as the seed data for scraping.

Parameters


πŸ”€ Split Stocks (Split Out)

Purpose

Turn the array into individual items so each ticker is processed independently (scraping, polling, results).

Parameters


🏷 Prepare Stock Keyword (Set Node)

Purpose

Create a keyword field (typically equal to ticker) for Bright Data discovery.

Parameters


πŸ•Έ Bright Data Scraper (HTTP Request)

Purpose

Trigger the Bright Data dataset to start collecting information for the keyword. Returns a snapshot_id to poll later.

Parameters

> Add a retry/backoff policy on 429/5xx in node options.


πŸ”„ Check Scraper Progress (HTTP Request)

baptistefortautomatisationdigestboursier.png

Purpose

Poll Bright Data to see whether the snapshot is running or ready.

Parameters


⏳ Wait for Data (Wait Node)

Purpose

Pause between progress checks to avoid rate limits and give Bright Data time to finish.

Parameters


πŸ”€ Scraper Status Switch (Switch Node)

Purpose

Route logic based on the polled status.

Parameters

> Loop pattern: Check β†’ Wait β†’ Check, until ready.


πŸ“₯ Fetch Scraper Results (HTTP Request)

Purpose

Download the completed snapshot data once Bright Data marks it ready.

Parameters

> Normalize fields with a Set/Code node if needed.


πŸ“Š Aggregate Stock Data (Aggregate Node)

Purpose

Combine all individual items into one consolidated object so the AI can analyze the entire market snapshot.

Parameters


πŸ€– Generate Daily Summary (AI Node – OpenAI)

Purpose

Ask the model to convert raw data into a styled HTML email: headline, top movers, table, insights, and (optional) upcoming events.

Parameters


πŸ—‚ Save to Airtable (Airtable – Create Record)

Purpose

Log each item (or the roll-up) to Airtable for history, filtering, and dashboards.

Parameters

> Use a Single-Select for Sentiment (🟒 / 🟑 / πŸ”΄) to build clean Airtable views.


πŸ“§ Send Report via Gmail (Gmail Node)

automatisationenvoiemailrapportboursierbaptistefort.png

Purpose

Deliver the AI-generated HTML digest to your recipients.

Parameters

> Test in Gmail, Outlook, and mobile to validate inline CSS.


πŸ§ͺ Error handling & reliability tips


🧩 Customization ideas


βœ… Why this workflow is powerful

For advanced no-code & AI projects, see 0vni – Agence automatisation.

πŸ”— Nodes Used

Airtable, HTTP Request, Schedule Trigger, AI Agent, OpenAI Chat Model, Simple Memory

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup