AutomationFlowsData & Sheets › Automated Instagram Reels Analysis

Automated Instagram Reels Analysis

Original n8n title: Link by Reel Analysis

Link-By-Reel-Analysis. Uses httpRequest, airtable. Scheduled trigger; 24 nodes.

Cron / scheduled trigger★★★★☆ complexity24 nodesHTTP RequestAirtable
Data & Sheets Trigger: Cron / scheduled Nodes: 24 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "nodes": [
    {
      "parameters": {
        "amount": 30
      },
      "id": "1d4b92e6-801f-4d1d-ab50-2d220810cc0e",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1460,
        400
      ],
      "typeVersion": 1.1
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "a21fe2d1-533b-4f09-94aa-9312c3dd05b8",
              "name": "=prompt",
              "type": "string",
              "value": "=Analyze the Reels video: 1. What is the video about, in one sentence 2. What is the hook of the video - e.g. first 5 seconds usually, maybe the first text on the screen, maybe the first words of the author - this is the thing that is made to grab attention of the viewer, also capture any sound effect possible, transition effect also. 3. What is going on in the video - write me a whole script, that I can easily replicate, include the whole text of the author (if there is any text at all), include all the important details. Structure your output like this: 1. Idea: ..., 2. Hook: ..., 3. Script: ... - WRITE NOTHING ELSE EXCEPT FOR THIS 3 BULLETS, NO EXTRA WORDS AT THE BEGINNING."
            }
          ]
        },
        "options": {}
      },
      "id": "4f39c448-9381-4e2a-bbbc-a9bb845fd03f",
      "name": "Set Prompt",
      "type": "n8n-nodes-base.set",
      "position": [
        1620,
        400
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://generativelanguage.googleapis.com/upload/v1beta/files",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "YOUR_GOOGLE_API_KEY"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Goog-Upload-Protocol",
              "value": "resumable"
            },
            {
              "name": "X-Goog-Upload-Command",
              "value": "start"
            },
            {
              "name": "X-Goog-Upload-Header-Content-Length",
              "value": "={{ $json.Video[0].size }}"
            },
            {
              "name": "X-Goog-Upload-Header-Content-Type",
              "value": "={{ $json.Video[0].type }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n\"file\": {\n\"display_name\": \"{{ $json.Video[0].filename }}\"\n}\n}",
        "options": {
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        }
      },
      "id": "c0003b9f-f5d0-4a17-96b4-7c29b4fb1a7e",
      "name": "Gemini - Generate Upload URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        380
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $('Gemini - Generate Upload URL').item.json.headers['x-goog-upload-url'] }}",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "YOUR_GOOGLE_API_KEY"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Length",
              "value": "={{ $('Get Video').item.json.Video[0].size }}"
            },
            {
              "name": "X-Goog-Upload-Offset",
              "value": "0"
            },
            {
              "name": "X-Goog-Upload-Command",
              "value": "upload, finalize"
            }
          ]
        },
        "sendBody": true,
        "contentType": "binaryData",
        "inputDataFieldName": "data",
        "options": {
          "response": {}
        }
      },
      "id": "d35b76f5-a96b-4d34-85db-682347a752c1",
      "name": "Gemini - Upload File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1040,
        400
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "YOUR_GOOGLE_API_KEY"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n   \"contents\": [\n      {\n         \"parts\": [\n            {\n               \"text\": \"{{ $json.prompt }}\"\n            },\n            {\n               \"file_data\": {\n                  \"mime_type\": \"{{ $('Save Values').item.json.mimeType }}\",\n                  \"file_uri\": \"{{ $('Save Values').item.json.gemini_file_url }}\"\n               }\n            }\n         ]\n      }\n   ]\n}\n",
        "options": {
          "response": {}
        }
      },
      "id": "0d4a451e-9090-4baa-9951-c1437b09f1b8",
      "name": "Gemini - Ask Questions",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1820,
        400
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "4fb7b732-17f9-41a2-986d-5d62b1331242",
              "name": "gemini_file_url",
              "type": "string",
              "value": "={{ $json.file.uri }}"
            },
            {
              "id": "5f3018b4-571f-433c-a07b-2fb86f63b9b6",
              "name": "mimeType",
              "type": "string",
              "value": "={{ $json.file.mimeType }}"
            },
            {
              "id": "c5532f11-ec31-49f8-aa26-7f42b7d24fa4",
              "name": "airtable_rec_id",
              "type": "string",
              "value": "={{ $('Get Video').item.json.id }}"
            }
          ]
        },
        "options": {}
      },
      "id": "73481305-c7bc-40ab-a342-081ddd1cafa6",
      "name": "Save Values",
      "type": "n8n-nodes-base.set",
      "position": [
        1300,
        400
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.apify.com/v2/acts/apify~instagram-scraper/run-sync-get-dataset-items",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "token",
              "value": "YOUR_APIFY_API_TOKEN"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n    \"directUrls\": [\n        \"{{ $('Search Creators').item.json['Instagram url'] }}\"\n    ],\n    \"resultsType\": \"posts\",\n    \"resultsLimit\": 1\n}",
        "options": {}
      },
      "id": "eca2b89d-9064-41bf-95b0-b6232c507cec",
      "name": "Apify - Fetch Reels",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        60,
        100
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={\n  \"url\": {{ JSON.stringify($('Apify - Fetch Reels').item.json.videoUrl) }}\n,\n  \"views\": {{ $json.videoViewCount }},\n\"caption\": {{ JSON.stringify($json.caption) }}\n,\n\"hashtags\": {{ JSON.stringify($json.hashtags) }},\n\"creator\": {{ JSON.stringify($json.ownerUsername) }},\n\"audio\": {{ JSON.stringify($('Apify - Fetch Reels').item.json.musicInfo.audio_id) }}\n}",
        "options": {}
      },
      "id": "bf62bd3a-55ce-48cf-babe-3bfc3ff546fd",
      "name": "Save Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        100
      ],
      "typeVersion": 3.4
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "d084fb1f-e772-4f09-a29d-9f66c8edbd52",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -200,
        100
      ],
      "typeVersion": 3
    },
    {
      "parameters": {
        "url": "={{ $('Get Video').item.json.Video[0].url }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "id": "f8ac73f7-9740-45a3-9f41-50c1a5fb3592",
      "name": "Download File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        400
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "base": {
          "__rl": true,
          "value": "app9jtyfU8a2tj2Pg",
          "mode": "list",
          "cachedResultName": "Instagram Liked reels concept",
          "cachedResultUrl": "https://airtable.com/app9jtyfU8a2tj2Pg"
        },
        "table": {
          "__rl": true,
          "value": "tbllWMXkRYTI9WiFW",
          "mode": "list",
          "cachedResultName": "Videos",
          "cachedResultUrl": "https://airtable.com/appvVxU9AsFfIqtVR/tbllWMXkRYTI9WiFW"
        },
        "id": "={{ $json.id }}",
        "options": {}
      },
      "id": "cad4dd59-fbb0-4334-9e32-b302334e9828",
      "name": "Get Video",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -80,
        380
      ],
      "typeVersion": 2.1,
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "base": {
          "__rl": true,
          "value": "app9jtyfU8a2tj2Pg",
          "mode": "list",
          "cachedResultName": "Instagram Liked reels concept",
          "cachedResultUrl": "https://airtable.com/app9jtyfU8a2tj2Pg"
        },
        "table": {
          "__rl": true,
          "value": "tbllWMXkRYTI9WiFW",
          "mode": "list",
          "cachedResultName": "Videos",
          "cachedResultUrl": "https://airtable.com/appvVxU9AsFfIqtVR/tbllWMXkRYTI9WiFW"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "id": "={{ $('Get Video').first().json.id }}",
            "Guideline": "={{ $json.candidates[0].content.parts[0].text }}"
          },
          "matchingColumns": [
            "id"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "readOnly": true
            },
            {
              "id": "Caption",
              "displayName": "Caption",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Instagram Url",
              "displayName": "Instagram Url",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Video",
              "displayName": "Video",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Creation Date",
              "displayName": "Creation Date",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "dateTime",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Views",
              "displayName": "Views",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "audio id",
              "displayName": "audio id",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "hashtags",
              "displayName": "hashtags",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "creator",
              "displayName": "creator",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Guideline",
              "displayName": "Guideline",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "39bd5bd6-23d6-4099-935b-7f12493d6df8",
      "name": "Set Guideline",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2000,
        400
      ],
      "typeVersion": 2.1,
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "search",
        "base": {
          "__rl": true,
          "value": "app9jtyfU8a2tj2Pg",
          "mode": "list",
          "cachedResultName": "Instagram Liked reels concept",
          "cachedResultUrl": "https://airtable.com/app9jtyfU8a2tj2Pg"
        },
        "table": {
          "__rl": true,
          "value": "tblp31TvkFft8LGhP",
          "mode": "list",
          "cachedResultName": "Creators",
          "cachedResultUrl": "https://airtable.com/appvVxU9AsFfIqtVR/tblp31TvkFft8LGhP"
        },
        "returnAll": false,
        "limit": {},
        "options": {}
      },
      "id": "6b35d608-4c50-4493-a60e-8444542e7477",
      "name": "Search Creators",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -420,
        100
      ],
      "typeVersion": 2.1,
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtHour": 5
            }
          ]
        }
      },
      "id": "17ec411d-d7e6-49cf-a0df-b5a70e4da0d6",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -640,
        100
      ],
      "typeVersion": 1.2
    },
    {
      "parameters": {
        "content": "### Replace Apify token",
        "height": 80,
        "width": 220,
        "color": 6
      },
      "id": "f9319452-919d-4a3d-baa9-eb3d2412cf6f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "### Replace Google token",
        "height": 80,
        "width": 200,
        "color": 6
      },
      "id": "bdb39c66-7789-4178-b4ac-228ecf68e304",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        300
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "### Replace Google token",
        "height": 80,
        "width": 200,
        "color": 6
      },
      "id": "996d02cd-99d7-4078-a080-ffc96a1457eb",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        300
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "### Replace Google token",
        "height": 80,
        "width": 200,
        "color": 6
      },
      "id": "9dce8d53-a0a1-4f8d-b270-b8016c82d822",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        300
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "### Set your own prompt for analysis",
        "height": 80,
        "width": 200,
        "color": 6
      },
      "id": "16922954-6974-4a46-904a-ee89433def91",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        300
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "options": {
          "reset": "={{ $node['Loop Over Items1'].context[\"done\"] }}"
        }
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        -540,
        380
      ],
      "id": "16f539ed-13f3-41ca-955e-07c197a6c076",
      "name": "Loop Over Items1"
    },
    {
      "parameters": {
        "amount": 15
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        520,
        400
      ],
      "id": "c306986a-9355-4c53-a0cb-435f2ebf6736",
      "name": "Wait1"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        860,
        400
      ],
      "id": "4f881796-7bb5-4b17-98f0-1ec772c198ca",
      "name": "Wait2"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "f85d9e06-6bcd-4649-8f2b-73eb73e84ce3",
              "leftValue": "={{ $json.error }}",
              "rightValue": "no_items",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        280,
        100
      ],
      "id": "f9450682-827e-4739-b2e6-22c4df5a9ca1",
      "name": "If"
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "app9jtyfU8a2tj2Pg",
          "mode": "list",
          "cachedResultName": "Instagram Liked reels concept",
          "cachedResultUrl": "https://airtable.com/app9jtyfU8a2tj2Pg"
        },
        "table": {
          "__rl": true,
          "value": "tbllWMXkRYTI9WiFW",
          "mode": "list",
          "cachedResultName": "Videos",
          "cachedResultUrl": "https://airtable.com/app9jtyfU8a2tj2Pg/tbllWMXkRYTI9WiFW"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Views": "={{ $json.views }}",
            "Caption": "={{ $json.caption }}",
            "Video": "={{ [ {\"url\":$json.url} ] }}",
            "Creation Date": "={{ new Date().toISOString().split('T')[0] }}",
            "Instagram Url": "={{ $json.url }}",
            "hashtags": "={{ $json.hashtags }}{{ $json.hashtags }}",
            "audio id": "={{ $('Save Fields').item.json.audio }}",
            "creator": "={{ $('Save Fields').item.json.creator }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Caption",
              "displayName": "Caption",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Instagram Url",
              "displayName": "Instagram Url",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Video",
              "displayName": "Video",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Creation Date",
              "displayName": "Creation Date",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "dateTime",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Views",
              "displayName": "Views",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "audio id",
              "displayName": "audio id",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "hashtags",
              "displayName": "hashtags",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "creator",
              "displayName": "creator",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Guideline",
              "displayName": "Guideline",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        }
      },
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        -280,
        380
      ],
      "id": "838cdc6f-a789-4cd9-a171-001384ff5cd3",
      "name": "Put the segregated data",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Set Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Prompt": {
      "main": [
        [
          {
            "node": "Gemini - Ask Questions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini - Generate Upload URL": {
      "main": [
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini - Upload File": {
      "main": [
        [
          {
            "node": "Save Values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini - Ask Questions": {
      "main": [
        [
          {
            "node": "Set Guideline",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Values": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Apify - Fetch Reels": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Fields": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Apify - Fetch Reels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File": {
      "main": [
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Video": {
      "main": [
        [
          {
            "node": "Gemini - Generate Upload URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Guideline": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Creators": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Search Creators",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Put the segregated data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Download File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait2": {
      "main": [
        [
          {
            "node": "Gemini - Upload File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Save Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Put the segregated data": {
      "main": [
        [
          {
            "node": "Get Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

How this works

This workflow automates the analysis of Instagram Reels to extract actionable insights, helping content creators and marketers identify trends, engagement drivers, and optimisation opportunities without manual effort. It fetches reel data via Apify, uploads it to Gemini for intelligent questioning on performance metrics, and stores results in Airtable for easy tracking and reporting. The key step involves the AI-powered query chain, which transforms raw reel information into structured feedback, saving hours of review time.

Use this workflow for regular, scheduled audits of your Instagram content strategy, particularly if you manage multiple accounts or need data-driven tweaks to boost reach. Avoid it for one-off analyses or when real-time processing is essential, as the cron trigger suits periodic runs like weekly summaries. Common variations include adapting the questions for specific goals, such as audience sentiment, or integrating additional sources like YouTube for cross-platform insights.

About this workflow

Link-By-Reel-Analysis. Uses httpRequest, airtable. Scheduled trigger; 24 nodes.

Source: https://github.com/proSamik/n8n-automation-json/blob/main/instagram-reel-analysis/link-by-reel-analysis.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

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.

Crypto, HTTP Request, Airtable
Data & Sheets

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**.

Airtable, HTTP Request
Data & Sheets

Reel-Analysis-Of-Favourite-Content-Creator. Uses httpRequest, airtable. Scheduled trigger; 26 nodes.

HTTP Request, Airtable
Data & Sheets

&gt; Transform your content strategy with automated competitor intelligence

HTTP Request, Airtable, Notion +2
Data & Sheets

If you’ve ever downloaded CSV files from Google Search Console, opened them in Excel, cleaned the weird formatting, and pasted them into a sheet just to get a simple report… this workflow is made for

HTTP Request, Airtable