🔬 Prepare store-ready weather alerts with Open-Meteo, Claude, Google Sheets and Slack

⚡ 0 views · 🔬 Document Extraction & Analysis

Description

Quick overview

This workflow runs daily and reads store locations from Google Sheets, fetches multi-day forecasts from Open-Meteo, and uses Anthropic Claude to draft staff prep notes and a customer message for stores with flagged weather, then posts a checked summary to Slack.

How it works

  1. Runs every day at 15:00 (or manually) and loads configurable thresholds such as forecast days, rain/heat/cold limits, language, and message length.
  2. Reads the list of stores (name, latitude, longitude, notes, contact) from a Google Sheets “Stores” tab and stops with an error if required fields are missing or invalid.
  3. Requests a daily forecast for each store from the Open-Meteo API for the configured number of days.
  4. Flags days with rain, heavy rain, heat, or cold based on the configured thresholds and converts the flagged forecast values into numbered “facts” per store.
  5. Sends the facts to Anthropic Claude to generate a short staff prep memo and a customer-ready draft message, each referencing the fact IDs used.
  6. Validates Claude’s output by ensuring it is valid JSON, references at least one fact, contains only forecast numbers, and that the customer message stays within the character limit and avoids banned words.
  7. Posts one Slack message per flagged store that includes the forecast facts plus the validated prep items and customer draft (or warnings if checks fail).

Setup

  1. Create a Google Sheet, run the “Run once: set up the sheet” path to add the “Stores” tab, and paste your spreadsheet ID in the workflow’s Spreadsheet ID configuration.
  2. Add Google Sheets OAuth2 credentials and select your spreadsheet/document in the Google Sheets read step.
  3. Fill the “Stores” tab with columns store, lat, lon, notes, and contact (optionally a Slack @user ID or mention string) for each location you want to monitor.
  4. Add an Anthropic credential for the Claude node and a Slack credential for posting messages, then choose the target Slack channel.
  5. Review and adjust the thresholds, timezone, languages, message length, and banned words in the Config step to match your operating rules.

Requirements

Customization

Additional info

What the checks do and do not prove:

What I tested: the live Open-Meteo API with three made-up stores (Tokyo Shibuya, Sapporo, Naha), with low limits so that days were flagged, one run each, Claude Haiku 4.5. Flagged days matched the forecast (for example Sapporo min 2.8 °C, Naha 65% rain), the prep items and drafts reached Slack, and two texts were stopped by the checks (a count “3 days” and a date range my first version did not recognise, which I then fixed). Plus 12 unit checks of the code (wrong probability, an invented discount hidden behind the month number, banned words, too long, a number from a fact it did not cite, date ranges, unreadable output). This is not a measure of accuracy for your stores: test with your own first.

🔗 Nodes Used

Google Sheets, HTTP Request, Slack, Schedule Trigger, Anthropic

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup