Predict F1 Race Winners with OpenAI GPT-4o, Historical Data & Slack Alerts

Go to Workflow
0 views
Built by Cheng Siong Chin Cheng Siong Chin
Created on June 05, 2026

Description

How It Works
Every day at 8 AM, the workflow automatically retrieves the latest F1 data—including driver standings, qualifying results, race schedules, and circuit information. All sources are merged into a unified dataset, and driver performance metrics are computed using historical trends. An AI agent, enhanced with vectorized race history, evaluates patterns and generates race-winner predictions. When the confidence score exceeds the defined threshold, the system pushes an automated Slack alert and records the full analysis in the database and Google Sheets.

Setup Steps
Update the workflow configuration with: newsApiUrl, weatherApiUrl, historicalYears, and confidenceThreshold.
Connect PostgreSQL using the schema:
prediction_date, predicted_winner, confidence_score, prediction_source, data_version, full_analysis.
Provide the Slack channel ID for sending high-confidence alerts.
Specify the Google Sheets document ID and sheet name for prediction logging.
Test connectivity to the Ergast API (no authentication required).

Prerequisites
OpenAI account (GPT-4o access), Slack workspace admin access, PostgreSQL instance, Google Sheets account, n8n instance with LangChain community nodes enabled.

Customization
Extend by adding constructor predictions (modify AI prompt). Integrate Discord or Teams instead of Slack.

Benefits
Saves time by automating data collection, improves accuracy using multiple performance metrics and historical patterns.

Nodes Used (12)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
Code Tool
@n8n/n8n-nodes-langchain.toolCode
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Postgres
n8n-nodes-base.postgres
Recursive Character Text Splitter
@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter
Simple Vector Store
@n8n/n8n-nodes-langchain.vectorStoreInMemory
Slack
n8n-nodes-base.slack