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 →
{
"name": "Loop 4 \u2014 Enrichment",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 1
}
]
}
},
"id": "node-cron-4",
"name": "Cron Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.1,
"position": [
200,
300
]
},
{
"parameters": {
"operation": "list",
"base": {
"__rl": true,
"value": "YOUR_AIRTABLE_BASE_ID",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Leads",
"mode": "name"
},
"filterByFormula": "AND({status}='active',OR({last_enriched_at}='',IS_BEFORE({last_enriched_at},DATEADD(NOW(),-1,'hours'))))"
},
"id": "node-at-list-4",
"name": "List Unenriched Leads",
"type": "n8n-nodes-base.airtable",
"typeVersion": 2,
"position": [
420,
300
],
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "GET",
"url": "=https://api.apollo.io/v1/people/match?api_key=YOUR_APOLLO_API_KEY&email={{encodeURIComponent($json.fields.email)}}",
"options": {}
},
"id": "node-apollo-4",
"name": "Apollo Enrich",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
640,
300
]
},
{
"parameters": {
"jsCode": "const apollo=$json.person||{};\nconst now=new Date().toISOString();\nconst next=new Date(Date.now()+60*60000).toISOString();\nreturn[{json:{lead_id:$('List Unenriched Leads').item.json.id,company:apollo.organization?.name||'',job_title:apollo.title||'',linkedin_url:apollo.linkedin_url||'',company_size:apollo.organization?.estimated_num_employees||'',last_enriched_at:now,next_enrichment_at:next}}];"
},
"id": "node-map-4",
"name": "Map Fields",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
860,
300
]
},
{
"parameters": {
"operation": "update",
"base": {
"__rl": true,
"value": "YOUR_AIRTABLE_BASE_ID",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Leads",
"mode": "name"
},
"id": "={{$json.lead_id}}",
"fields": {
"fieldMappingMode": "defineBelow",
"value": {
"values": [
{
"fieldId": "company",
"fieldValue": "={{$json.company}}"
},
{
"fieldId": "job_title",
"fieldValue": "={{$json.job_title}}"
},
{
"fieldId": "linkedin_url",
"fieldValue": "={{$json.linkedin_url}}"
},
{
"fieldId": "last_enriched_at",
"fieldValue": "={{$json.last_enriched_at}}"
},
{
"fieldId": "next_enrichment_at",
"fieldValue": "={{$json.next_enrichment_at}}"
}
]
}
}
},
"id": "node-at-update-4",
"name": "Update Lead",
"type": "n8n-nodes-base.airtable",
"typeVersion": 2,
"position": [
1080,
300
],
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "create",
"base": {
"__rl": true,
"value": "YOUR_AIRTABLE_BASE_ID",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Interactions",
"mode": "name"
},
"fields": {
"fieldMappingMode": "defineBelow",
"value": {
"values": [
{
"fieldId": "lead_id",
"fieldValue": "={{$json.lead_id}}"
},
{
"fieldId": "type",
"fieldValue": "enrichment"
},
{
"fieldId": "loop_source",
"fieldValue": "loop_4"
},
{
"fieldId": "created_at",
"fieldValue": "={{$json.last_enriched_at}}"
}
]
}
}
},
"id": "node-at-interact-4",
"name": "Log Interaction",
"type": "n8n-nodes-base.airtable",
"typeVersion": 2,
"position": [
1300,
300
],
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Cron Trigger": {
"main": [
[
{
"node": "List Unenriched Leads",
"type": "main",
"index": 0
}
]
]
},
"List Unenriched Leads": {
"main": [
[
{
"node": "Apollo Enrich",
"type": "main",
"index": 0
}
]
]
},
"Apollo Enrich": {
"main": [
[
{
"node": "Map Fields",
"type": "main",
"index": 0
}
]
]
},
"Map Fields": {
"main": [
[
{
"node": "Update Lead",
"type": "main",
"index": 0
}
]
]
},
"Update Lead": {
"main": [
[
{
"node": "Log Interaction",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
airtableTokenApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Loop 4 — Enrichment. Uses airtable, httpRequest. Scheduled trigger; 6 nodes.
Source: https://gist.github.com/axisassists/ea249e6223c4edebd76f0469ae0293a2 — 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.
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.
Link-By-Reel-Analysis. Uses httpRequest, airtable. Scheduled trigger; 24 nodes.
> Transform your content strategy with automated competitor intelligence