Write multilingual weather articles with Open-Meteo, Claude, and OpenAI
Go to WorkflowDescription
Quick overview
This workflow runs weekly (or manually) to generate multilingual weather-news articles from Open-Meteo forecasts, uses Anthropic Claude for analysis, verification, writing, and QA, creates a matching header image via OpenAI, and uploads CMS-ready JSON and images to S3-compatible storage with Slack alerts and run monitoring.
How it works
Runs on a weekly schedule (Monday 06:00) or manually to start an article-generation batch.
Builds a per-country workload (with cities, language, and locale) and loops through each selected country.
Fetches 3-day city forecasts from the Open-Meteo API and aggregates them into a compact, macro-area-based dataset.
Uses Anthropic Claude to write a structured meteorological summary and optionally cross-checks it against a secondary source URL, posting a Slack warning if that source is unavailable.
Computes deterministic “ground truth” per macro-area (including windiest/wettest/hottest records), then uses Claude to write a short HTML article and extract the final HTML and title.
Uses Claude to QA the article against the ground truth and verification report, rewrites and re-checks once on failures, then applies deterministic guardrails to flag warning-related wording or banned terms.
Generates a calibrated image scene with Claude, creates a header image via the OpenAI Images API (or falls back to a predefined image), then uploads the image and a CMS-agnostic article JSON payload to S3.
Logs a run summary to an n8n Data Table and uses a separate scheduled watchdog plus Slack notifications to alert on workflow failures or missing scheduled runs.
Setup
Add Anthropic credentials for the Claude steps and OpenAI API credentials for image generation.
Add an S3-compatible credential (AWS S3, Cloudflare R2, MinIO, etc.) and set the target bucket name and prefix in the Config values.
Add a Slack credential and select the channel for the “Source Unavailable”, “Error Alert”, and “Run Missing Alert” Slack messages.
Create an n8n Data Table named article_runs with columns runDate, countriesProcessed, countries, completedAt, and mode (all text) for run logging and watchdog checks.
Update the Config values (brand name, countries to run, fallback image URL, optional house rules and banned terms) and, if needed, edit the country/city list and optional secondarySourceUrl entries.
This workflow was created by Gabriele and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.