Objective:
I am trying to create a fully automated editorial calendar generator for a sports betting site using Make.com.
The system should run every Thursday morning and populate an Airtable base with relevant sports events for the following week, enriched with betting content suggestions.
Workflow Overview:
1. Trigger (Scheduled)
- The scenario should run every Thursday at 07:00 AM GMT (configurable in Make).
- Trigger type: Scheduled recurrence
2. Step 1: Get Events from Perplexity (via OpenRouter)
- Send a prompt to Perplexity (via OpenRouter API) requesting a list of international sports events taking place the upcoming Monday to Sunday.
- Sports to include:
- Soccer, Tennis, Golf, Basketball, Cricket, Baseball, American Football, Formula 1, UFC/MMA, Boxing, Horse Racing, Rugby, Ice Hockey, MotoGP, Cycling, Snooker, Darts, Athletics
I have the prompt ready to achieve this
- Expected output: a JSON array of objects, each with:
event_name
date
sport
main_matchups
(teams or key players)
3. Step 2: Parse the JSON
- Use the JSON parsing module to extract the array of events from the Perplexity response.
4. Step 3: Iterate Over Events
- For each event in the array:
- Extract the basic details:
event_name
,date
,sport
,main_matchups
- Extract the basic details:
5. Step 4: Enrich with Claude 4 Opus (via OpenRouter)
- Send another OpenRouter request to Claude 4 Opus, with a structured prompt that includes:
- Event name, date, sport, and matchup
- Claude should return:
suggested_markets
(e.g. winner, over/under, first goalscorer)suggested_title
(for the article)editorial_brief
(2–3 sentence content summary)recommended_format
(e.g. Betting Tips, Match Preview, Quick Hits, etc.)priority
(High, Medium, Low)
6. Step 5: Fallback to GPT-4o if Claude Fails
- If the Claude response is empty or malformed, automatically fallback to GPT-4o using the same prompt structure.
7. Step 6: Parse and Format Claude/GPT Response
- Parse the JSON string returned from Claude/GPT.
- Extract and structure the values to use in Airtable.
8. Step 7: Create a New Record in Airtable
- Airtable table:
Events
- Fields to populate:
Event Name
Date
Sport
Main Matchups
Suggested Markets
Suggested Title
Editorial Brief
Recommended Format
(Single select)Priority
(Single select)Status
=Pending Approval
(Single select)Assigned To
=Giovanni Angioni
(Single select)
Requirements:
- Fully working blueprint
- Claude fallback to GPT-4o must be functional
- Correct OpenRouter API integration
- Clean Airtable structure, field-mapping must match exactly
- Scenario should be ready to scale (support dozens of events per week)
Tools Used:
- Make.com
- OpenRouter API (for Perplexity, Claude, GPT-4o)
- Airtable (custom editorial table)
Deliverables:
- A fully importable
.json
Make.com blueprint - Instructions for how to set API keys and schedule
- One test run showing records created in Airtable