This workflow follows the Airtable → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"parameters": {
"interval": "hours",
"value": 3,
"mode": "every",
"hour": [
3
]
},
"name": "Cron Trigger",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"resource": "table",
"operation": "getAll",
"baseId": "appAm1k33bkcyaV2y",
"tableId": "Clients",
"authentication": "apiKey",
"credential": "airtableApi",
"options": {
"fields": [
"Client Name",
"Podcasts Searches",
"Client Profile"
]
}
},
"name": "Airtable (Read Clients)",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [
500,
300
]
},
{
"parameters": {},
"name": "Loop Over Clients",
"type": "n8n-nodes-base.loopOverItems",
"typeVersion": 1,
"position": [
750,
300
]
},
{
"parameters": {
"authentication": "apiKey",
"url": "https://listen-api.listennotes.com/api/v2/search",
"query": {
"param": [
{
"name": "q",
"value": "={{$json[\"Podcasts Searches\"]}}"
},
{
"name": "type",
"value": "podcast"
},
{
"name": "offset",
"value": "0"
}
]
},
"options": {
"authentication": "headerAuth",
"headerAuth": {
"name": "X-ListenAPI-Key",
"value": "={{$credentials.listenNotesApi.apiKey}}"
}
},
"sendHeaders": true
},
"name": "HTTP Request (Listen Notes)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1000,
150
]
},
{
"parameters": {
"authentication": "apiKey",
"url": "https://www.googleapis.com/youtube/v3/search",
"query": {
"param": [
{
"name": "part",
"value": "snippet"
},
{
"name": "q",
"value": "={{$json[\"Podcasts Searches\"]}}"
},
{
"name": "type",
"value": "channel"
},
{
"name": "maxResults",
"value": "50"
},
{
"name": "key",
"value": "={{$credentials.youtubeDataApiV3.apiKey}}"
}
]
},
"options": {}
},
"name": "HTTP Request (YouTube)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1000,
300
]
},
{
"parameters": {
"url": "https://example.com/rssfeed"
},
"name": "RSS Feed Reader",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [
1000,
450
]
},
{
"parameters": {},
"name": "Merge Data Sources",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1250,
300
]
},
{
"parameters": {
"mode": "merge",
"values": {
"string": [
{
"name": "podcastName",
"value": "={{$json.title || $json.snippet.title}}"
},
{
"name": "podcastDescription",
"value": "={{$json.description || $json.snippet.description}}"
},
{
"name": "podcastUrl",
"value": "={{$json.website || $json.url || $json.link || $json.id}}"
}
]
}
},
"name": "Set Podcast Data",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
1500,
300
]
},
{
"parameters": {
"resource": "table",
"operation": "getAll",
"baseId": "appAm1k33bkcyaV2y",
"tableId": "Podcasts",
"authentication": "apiKey",
"credential": "airtableApi",
"options": {
"fields": [
"Podcast Name",
"Podcast URL"
]
}
},
"name": "Airtable (Read Existing Podcasts)",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [
1750,
300
]
},
{
"parameters": {
"operation": "findUniqueInSource1",
"source1Key": "podcastUrl",
"source2Key": "Podcast URL"
},
"name": "Compare Datasets",
"type": "n8n-nodes-base.compareDatasets",
"typeVersion": 1,
"position": [
2000,
300
]
},
{
"parameters": {
"batchSize": 10
},
"name": "Split in Batches",
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 1,
"position": [
2250,
300
]
},
{
"parameters": {
"model": "gemini-pro",
"instruction": "You are a PR Scout for my client {{ $json[\"Client Name\"] }}, a {{ $json[\"Client Profile\"] }}. Based on the following podcast data {Podcast Name: {{ $json.podcastName }}, Description: {{ $json.podcastDescription }}, Podcast URL: {{ $json.podcastUrl }}, Latest Episodes: {{ $json.latestEpisodes || 'N/A' }}}, does this podcast align with their goal of reaching [Target Audience]? Score its relevance from 1-10 and provide a one-sentence \u2018AI justification\u2019. Output clean JSON: {relevance_score: 8, justification: 'Focuses on B2B SaaS founders, matching the target audience.'}\n\nRules for Relevance Scoring:\nScore 9-10: Perfect fit. High audience overlap, host aligns with client's expertise, recent episodes highly relevant.\nScore 7-8: Strong fit. Good audience, some relevant topics, potential for alignment with specific angles.\nScore 5-6: Moderate fit. General relevance, but may require a very specific pitch angle.\nScore <5: Low fit. Not suitable, clearly explain why (e.g., wrong audience, irrelevant topics, low engagement).\n\nInformation to Prioritize: Focus on topic depth, audience demographics, host's interviewing style, and recent guest profiles. Consider the 'thought leadership' aspect.",
"jsonParameters": true
},
"name": "LLM (Scout Brain)",
"type": "n8n-nodes-base.chatLlm",
"typeVersion": 1,
"position": [
2500,
300
]
},
{
"parameters": {
"conditions": {
"value1": "={{$json.relevance_score}}",
"value2": "7",
"options": {
"type": "number"
},
"function": "greaterThan"
}
},
"name": "IF (Relevance Score > 7)",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
2750,
300
]
},
{
"parameters": {
"resource": "table",
"operation": "create",
"baseId": "appAm1k33bkcyaV2y",
"tableId": "Podcasts",
"authentication": "apiKey",
"credential": "airtableApi",
"data": {
"record": [
{
"fields": {
"Podcast Name": "={{$json.podcastName}}",
"Podcast URL": "={{$json.podcastUrl}}",
"Relevance Score [Rating 1-10]": "={{$json.relevance_score}}",
"AI Justification": "={{$json.justification}}",
"Status": "Discovered"
}
}
]
}
},
"name": "Airtable (Create Qualified)",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [
3000,
300
]
}
],
"connections": {
"Cron Trigger": {
"main": [
[
{
"node": "Airtable (Read Clients)",
"index": 0
}
]
]
},
"Airtable (Read Clients)": {
"main": [
[
{
"node": "Loop Over Clients",
"index": 0
}
]
]
},
"Loop Over Clients": {
"main": [
[
{
"node": "HTTP Request (Listen Notes)",
"index": 0
},
{
"node": "HTTP Request (YouTube)",
"index": 0
},
{
"node": "RSS Feed Reader",
"index": 0
}
]
]
},
"HTTP Request (Listen Notes)": {
"main": [
[
{
"node": "Merge Data Sources",
"index": 0
}
]
]
},
"HTTP Request (YouTube)": {
"main": [
[
{
"node": "Merge Data Sources",
"index": 0
}
]
]
},
"RSS Feed Reader": {
"main": [
[
{
"node": "Merge Data Sources",
"index": 0
}
]
]
},
"Merge Data Sources": {
"main": [
[
{
"node": "Set Podcast Data",
"index": 0
}
]
]
},
"Set Podcast Data": {
"main": [
[
{
"node": "Airtable (Read Existing Podcasts)",
"index": 0
}
]
]
},
"Airtable (Read Existing Podcasts)": {
"main": [
[
{
"node": "Compare Datasets",
"index": 0
}
]
]
},
"Compare Datasets": {
"main": [
[
{
"node": "Split in Batches",
"index": 0
}
]
]
},
"LLM (Scout Brain)": {
"main": [
[
{
"node": "IF (Relevance Score > 7)",
"index": 0
}
]
]
},
"Split in Batches": {
"main": [
[
{
"node": "LLM (Scout Brain)",
"index": 0
}
]
]
},
"IF (Relevance Score > 7)": {
"main": [
[
{
"node": "Airtable (Create Qualified)",
"index": 0
}
]
]
}
},
"active": false,
"nodesPositions": {
"Cron Trigger": [
250,
300
],
"Airtable (Read Clients)": [
500,
300
],
"Loop Over Clients": [
750,
300
],
"HTTP Request (Listen Notes)": [
1000,
150
],
"HTTP Request (YouTube)": [
1000,
300
],
"RSS Feed Reader": [
1000,
450
],
"Merge Data Sources": [
1250,
300
],
"Set Podcast Data": [
1500,
300
],
"Airtable (Read Existing Podcasts)": [
1750,
300
],
"Compare Datasets": [
2000,
300
],
"Split in Batches": [
2250,
300
],
"LLM (Scout Brain)": [
2500,
300
],
"IF (Relevance Score > 7)": [
2750,
300
],
"Airtable (Create Qualified)": [
3000,
300
]
},
"flowName": "Workflow 1: The Scout (Opportunity Sourcing & Qualification)"
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
The-Scout-Workflow. Uses airtable, loopOverItems, httpRequest, rssFeedRead. Scheduled trigger; 14 nodes.
Source: https://gist.github.com/WhitneyFloat/2c951f97af9cc9c2c3846cd998afb97c — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
The-Scout-Workflow01. Uses airtable, loopOverItems, httpRequest, rssFeedRead. Scheduled trigger; 14 nodes.
Collects crypto and/or stock market headlines from multiple sources: CoinDesk, CoinTelegraph, Google News, and X (via an RSS proxy). Normalizes all items into a consistent structure with fields like ,
I prepared a detailed guide that showed the whole process of integrating the Binance API and storing data in Airtable to manage funding statements associated with tokens in a wallet.
Stop wasting hours on manual dialing and listening to ringtones. This workflow transforms your Airtable into a high-velocity AI Call Center using Vapi AI**.
Reel-Analysis-Of-Favourite-Content-Creator. Uses httpRequest, airtable. Scheduled trigger; 26 nodes.