AutomationFlowsSocial Media › Twitter Keyword & Public-figure Monitor with Automated Airtable Archiving

Twitter Keyword & Public-figure Monitor with Automated Airtable Archiving

ByRoshan Ramani @rawsun007 on n8n.io

Automatically searches Twitter for any keyword/topic (person, brand, hashtag), filters duplicates, and stores new tweets in Airtable with rich metadata - all on a daily schedule. ⏰ Schedule Trigger Runs daily at 8 AM (customizable) 🐦 Twitter Search Fetches 100 latest tweets…

Cron / scheduled trigger★★★★☆ complexity8 nodesTwitterAirtable
Social Media Trigger: Cron / scheduled Nodes: 8 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5006 — we link there as the canonical source.

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
{
  "id": "lPYVaz2xbN5zFDIL",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "temp",
  "tags": [
    {
      "id": "DaQLpYItTEM2y8Gt",
      "name": "Product",
      "createdAt": "2025-06-17T10:48:17.486Z",
      "updatedAt": "2025-06-17T10:48:17.486Z"
    },
    {
      "id": "6X5c5WbCRWtxJbl2",
      "name": "AI",
      "createdAt": "2025-06-17T10:48:17.367Z",
      "updatedAt": "2025-06-17T10:48:17.367Z"
    },
    {
      "id": "ycHNTMiM8vy98zu1",
      "name": "Building blocks",
      "createdAt": "2025-06-17T10:48:17.563Z",
      "updatedAt": "2025-06-17T10:48:17.563Z"
    },
    {
      "id": "UJ6au0mv063gOupq",
      "name": "Finance",
      "createdAt": "2025-06-17T10:48:17.583Z",
      "updatedAt": "2025-06-17T10:48:17.583Z"
    },
    {
      "id": "CaWiGPzJpyfUHdxp",
      "name": "IT Ops",
      "createdAt": "2025-06-17T10:48:17.388Z",
      "updatedAt": "2025-06-17T10:48:17.388Z"
    },
    {
      "id": "6Uolue5XigSZ2IYx",
      "name": "OpenAI",
      "createdAt": "2025-06-17T10:48:17.508Z",
      "updatedAt": "2025-06-17T10:48:17.508Z"
    },
    {
      "id": "nA8GpDM4XoG5aJ0A",
      "name": "Marketing",
      "createdAt": "2025-06-17T10:48:17.532Z",
      "updatedAt": "2025-06-17T10:48:17.532Z"
    },
    {
      "id": "J4gTJX9lSPm3wByF",
      "name": "Support",
      "createdAt": "2025-06-17T10:48:17.464Z",
      "updatedAt": "2025-06-17T10:48:17.464Z"
    },
    {
      "id": "i294x7TPtUQgJkmv",
      "name": "HR",
      "createdAt": "2025-06-17T10:48:17.426Z",
      "updatedAt": "2025-06-17T10:48:17.426Z"
    }
  ],
  "nodes": [
    {
      "id": "e061d33b-2f23-4cf3-9573-5c4d99950f90",
      "name": "Twitter",
      "type": "n8n-nodes-base.twitter",
      "position": [
        380,
        0
      ],
      "parameters": {
        "limit": 100,
        "operation": "search",
        "searchText": "Narendra Modi",
        "additionalFields": {
          "resultType": "mixed"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d83d3421-a750-455b-9414-b1eacf042544",
      "name": "Set_AT_list",
      "type": "n8n-nodes-base.set",
      "position": [
        600,
        200
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "Likes",
              "value": "={{$node[\"Twitter\"].json[\"favorite_count\"] ? $node[\"Twitter\"].json[\"favorite_count\"] : 0 }}"
            }
          ],
          "string": [
            {
              "name": "Tweet",
              "value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet\"]}}"
            },
            {
              "name": "Tweet_id",
              "value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet_id\"]}}"
            },
            {
              "name": "Tweet URL",
              "value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet URL\"]}}"
            },
            {
              "name": "Author",
              "value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Author\"]}}"
            },
            {
              "name": "Time",
              "value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Time\"]}}"
            }
          ]
        },
        "options": {
          "dotNotation": false
        },
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "878b07b3-322c-4a41-bc4f-28f47a62afe2",
      "name": "get airtable list",
      "type": "n8n-nodes-base.airtable",
      "position": [
        380,
        200
      ],
      "parameters": {
        "table": "tbl6rexxFBodzKVoC",
        "operation": "list",
        "application": "app36P08S3Jzki6qJ",
        "additionalOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "9f893824-aad9-44c1-9da2-136959ac09fd",
      "name": "set twitter data",
      "type": "n8n-nodes-base.set",
      "position": [
        600,
        0
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "Likes",
              "value": "={{$node[\"Twitter\"].json[\"favorite_count\"]}}"
            }
          ],
          "string": [
            {
              "name": "Tweet",
              "value": "={{$node[\"Twitter\"].json[\"text\"]}}"
            },
            {
              "name": "Tweet_id",
              "value": "={{$node[\"Twitter\"].json[\"id\"]}}"
            },
            {
              "name": "Tweet URL",
              "value": "=https://twitter.com/{{$node[\"Twitter\"].json[\"user\"][\"screen_name\"]}}/status/{{$node[\"Twitter\"].json[\"id_str\"]}}"
            },
            {
              "name": "Author",
              "value": "={{$node[\"Twitter\"].json[\"in_reply_to_screen_name\"]}}"
            },
            {
              "name": "Time",
              "value": "={{$node[\"Twitter\"].json[\"created_at\"]}}"
            }
          ]
        },
        "options": {
          "dotNotation": false
        },
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "2aee3941-6e08-4893-806e-52b1cd963e68",
      "name": "Leave only new tweets",
      "type": "n8n-nodes-base.merge",
      "position": [
        820,
        100
      ],
      "parameters": {
        "mode": "removeKeyMatches",
        "propertyName1": "Tweet_id",
        "propertyName2": "Tweet_id"
      },
      "typeVersion": 1
    },
    {
      "id": "86cd15e4-621f-48c6-90a8-c4bdf136b75c",
      "name": "Append new tweets to airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1040,
        100
      ],
      "parameters": {
        "table": "tbl6rexxFBodzKVoC",
        "options": {},
        "operation": "append",
        "application": "app36P08S3Jzki6qJ",
        "addAllFields": "={{true}}"
      },
      "typeVersion": 1
    },
    {
      "id": "edfafc16-bd4a-49d8-bf08-8ed4638fc00b",
      "name": "8 AM",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        160,
        100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1fb69414-d14b-42a4-8078-fd69fed9d28d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -420
      ],
      "parameters": {
        "width": 1800,
        "height": 1060,
        "content": "# \ud83d\udc26 Twitter to Airtable Archiver\n\n**Automatically archive fresh tweets about \"Narendra Modi\" to Airtable, eliminating duplicates.**\n\n## \u23f0 Daily Automation\n- **Runs**: Every day at 8 AM (via Schedule Trigger)\n- **Searches**: Latest 100 tweets containing \"Narendra Modi\"\n\n## \ud83d\udd04 Workflow Steps\n1. **Fetch Tweets**  \n   - Retrieve up to 100 tweets using Twitter API\n   - Fields collected:  \n     \ud83d\udcdd Text | \u2764\ufe0f Likes | \ud83c\udd94 ID | \ud83d\udd17 URL | \ud83d\udc64 Author | \ud83d\udcc5 Timestamp\n\n2. **Reformat Data**  \n   - Structure tweet data for Airtable compatibility\n\n3. **Check Existing Records**  \n   - Fetch current records from Airtable table\n   - Compare using Tweet IDs\n\n4. **Filter Duplicates**  \n   - Remove tweets already in Airtable\n\n5. **Append New Tweets**  \n   - Add only brand-new entries to your base\n\n## \u2728 Key Features\n- **Zero Duplicates**: Intelligent ID matching\n- **Always Fresh**: Daily updates with latest content\n- **Complete Context**: Full tweet metadata preserved\n- **Effortless Archiving**: Fully automated pipeline\n\n## \ud83d\udee0\ufe0f Perfect For\n- Political analysts tracking mentions\n- Researchers monitoring public sentiment\n- Journalists following trending topics\n- Archivists preserving digital content\n\n> **Pro Tip**: Change the search term to monitor any topic - politicians, brands, or trends!"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "dd98aabf-f750-41cb-8e26-b2196e794bcc",
  "connections": {
    "8 AM": {
      "main": [
        [
          {
            "node": "Twitter",
            "type": "main",
            "index": 0
          },
          {
            "node": "get airtable list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Twitter": {
      "main": [
        [
          {
            "node": "set twitter data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set_AT_list": {
      "main": [
        [
          {
            "node": "Leave only new tweets",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "set twitter data": {
      "main": [
        [
          {
            "node": "Leave only new tweets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get airtable list": {
      "main": [
        [
          {
            "node": "Set_AT_list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Leave only new tweets": {
      "main": [
        [
          {
            "node": "Append new tweets to airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Automatically searches Twitter for any keyword/topic (person, brand, hashtag), filters duplicates, and stores new tweets in Airtable with rich metadata - all on a daily schedule. ⏰ Schedule Trigger Runs daily at 8 AM (customizable) 🐦 Twitter Search Fetches 100 latest tweets…

Source: https://n8n.io/workflows/5006/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

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

Social Media

Social Media AI Agent - Telegram. Uses httpRequest, markdown, noOp, airtable. Scheduled trigger; 26 nodes.

HTTP Request, Airtable, LinkedIn +3
Social Media

Automate your social media marketing by instantly promoting new Shopify products. This workflow polls your store for new arrivals, generates AI-powered captions, and publishes them across Instagram, F

HTTP Request, Airtable, OpenAI +2
Social Media

Social media managers, creators, and brand accounts that rely on retweets for reach but want an automated, hands-off cleanup after campaigns to keep profiles tidy and on-brand.

HTTP Request, Twitter, Slack +1
Social Media

This workflow monitors brand mentions across multiple platforms (Twitter/X, Reddit, News) and automatically detects reputation crises based on sentiment analysis and trend detection. Multi-platform mo

Twitter, Reddit, HTTP Request +3
Social Media

Convert your customer satisfaction into high-converting social media content with this fully automated social proof pipeline. This workflow scans your database for top-tier reviews, generates a brande

Airtable, HTTP Request, Slack +1