AutomationFlowsGeneral › Automated Replies to X Threads with Airtop Browser Automation

Automated Replies to X Threads with Airtop Browser Automation

ByAirtop @cesar-at-airtop on n8n.io

Automatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.

Event trigger★★★★☆ complexity11 nodesExecute Workflow TriggerAirtopForm Trigger
General Trigger: Event Nodes: 11 Complexity: ★★★★☆ Added:

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

This workflow follows the Execute Workflow Trigger → Form Trigger 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
{
  "id": "62A1O15JXFJXEhYH",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "X - Response in thread",
  "tags": [],
  "nodes": [
    {
      "id": "87c5b743-acfe-4af6-8f35-2166a3e688cc",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -260,
        -280
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "airtop_profile"
            },
            {
              "name": "thread_url"
            },
            {
              "name": "reply_text"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "84aecc2b-8edc-4488-b26c-113f50e86f0d",
      "name": "Session",
      "type": "n8n-nodes-base.airtop",
      "position": [
        180,
        -180
      ],
      "parameters": {
        "profileName": "={{ $('Parameters').item.json.airtop_profile }}"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9a5eb1d6-9a68-43ce-bd7c-a279ab6c12db",
      "name": "Window",
      "type": "n8n-nodes-base.airtop",
      "position": [
        400,
        -280
      ],
      "parameters": {
        "url": "={{ $('Parameters').item.json.thread_url }}",
        "resource": "window",
        "sessionId": "={{ $('Session').item.json.sessionId }}",
        "getLiveView": true,
        "disableResize": true,
        "additionalFields": {
          "waitUntil": "complete"
        },
        "screenResolution": "1300x100"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1e6bada8-3db1-488f-bacd-e1e6727099ef",
      "name": "Type response",
      "type": "n8n-nodes-base.airtop",
      "position": [
        840,
        -280
      ],
      "parameters": {
        "text": "={{ $('Parameters').item.json.reply_text }}",
        "resource": "interaction",
        "windowId": "={{ $('Window').item.json.data.windowId }}",
        "operation": "type",
        "sessionId": "={{ $('Session').item.json.sessionId }}",
        "additionalFields": {
          "visualScope": "scan"
        },
        "elementDescription": "The input field labeled \"Post your reply\" located directly next to the \"Reply\" button"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "406eb773-9f71-4adc-89d1-47f7e4add4ee",
      "name": "Wait 8 secs",
      "type": "n8n-nodes-base.wait",
      "position": [
        620,
        -280
      ],
      "parameters": {
        "amount": 8
      },
      "typeVersion": 1.1
    },
    {
      "id": "136d7419-9445-481c-9d58-937eccdf8bc6",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -260,
        -80
      ],
      "parameters": {
        "options": {},
        "formTitle": "Reply to Thread",
        "formFields": {
          "values": [
            {
              "fieldLabel": "airtop_profile",
              "requiredField": true
            },
            {
              "fieldLabel": "thread_url",
              "requiredField": true
            },
            {
              "fieldLabel": "reply_text",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dcdb51f4-2161-4bb6-b56b-4b901ccd7b37",
      "name": "Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        -40,
        -180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3069dadb-7312-4a34-bfee-cbc921893b8c",
              "name": "airtop_profile",
              "type": "string",
              "value": "={{ $json.airtop_profile }}"
            },
            {
              "id": "22160dd8-ac64-4f95-b946-0d0095607ccd",
              "name": "thread_url",
              "type": "string",
              "value": "={{ $json.thread_url }}"
            },
            {
              "id": "7bced294-83ff-40c7-ab6a-89c5ed759643",
              "name": "reply_text",
              "type": "string",
              "value": "={{ $json.reply_text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "80652bee-1a09-4402-8aaf-61a32b78a4e8",
      "name": "Click Reply button",
      "type": "n8n-nodes-base.airtop",
      "position": [
        1280,
        -280
      ],
      "parameters": {
        "resource": "interaction",
        "windowId": "={{ $('Window').item.json.windowId }}",
        "sessionId": "={{ $('Session').item.json.sessionId }}",
        "additionalFields": {
          "visualScope": "page"
        },
        "elementDescription": "Gray rounded button \"Reply\" located directly below the main tweet"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b23a93df-c297-46b7-b926-21e35966c4ea",
      "name": "Terminate session",
      "type": "n8n-nodes-base.airtop",
      "position": [
        400,
        -80
      ],
      "parameters": {
        "operation": "terminate"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6696dd4b-a13c-4104-9dcb-5e56919e25db",
      "name": "Post-action screenshot",
      "type": "n8n-nodes-base.airtop",
      "position": [
        1060,
        -280
      ],
      "parameters": {
        "resource": "window",
        "operation": "takeScreenshot"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2b6bac96-0f02-4e55-ac54-0cf78e211cd7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1000,
        -540
      ],
      "parameters": {
        "width": 660,
        "height": 800,
        "content": "README\n# Automating X Post Responses\n\n## Use Case\nAutomatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.\n\n## What This Automation Does\nThis automation replies to specified X posts using the following input parameters:\n\n- `airtop_profile`: The name of your [Airtop Profile](https://portal.airtop.ai/browser-profiles) connected to X.\n- `thread_url`: The URL of the X post to reply to. [Example](https://x.com/thepatwalls/status/1921932138401726866)\n- `reply_text`: The message you want to post as a reply.\n\n## How It Works\n1. Creates a browser session using Airtop.\n2. Navigates to the specified X post.\n3. Types and submits the reply text.\n\n## Setup Requirements\n1. [Airtop API Key](https://portal.airtop.ai/api-keys) \u2014 free to generate.\n2. An [Airtop Profile](https://portal.airtop.ai/browser-profiles) connected to X (requires one-time login).\n\n## Next Steps\n- **Combine with X Monitoring**: Use this with the X monitoring automation to create a fully automated engagement pipeline.\n- **Extend to Other Platforms**: Adapt the automation for use on LinkedIn, Reddit, or any web community.\n\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "00e92561-05c3-4ba2-a34f-8b042f71bfb1",
  "connections": {
    "Window": {
      "main": [
        [
          {
            "node": "Wait 8 secs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Session": {
      "main": [
        [
          {
            "node": "Window",
            "type": "main",
            "index": 0
          },
          {
            "node": "Terminate session",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parameters": {
      "main": [
        [
          {
            "node": "Session",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 8 secs": {
      "main": [
        [
          {
            "node": "Type response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Type response": {
      "main": [
        [
          {
            "node": "Post-action screenshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Click Reply button": {
      "main": [
        []
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post-action screenshot": {
      "main": [
        [
          {
            "node": "Click Reply button",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

About this workflow

Automatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.

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

More General workflows → · Browse all categories →

Related workflows

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

General

Post on X. Uses airtop, executeWorkflowTrigger, stickyNote, formTrigger. Event-driven trigger; 9 nodes.

Airtop, Execute Workflow Trigger, Form Trigger
General

Seamlessly automate posting to X using Airtop and Make.

Airtop, Execute Workflow Trigger, Form Trigger
General

This automation scores companies based on their LinkedIn profile using custom Ideal Customer Profile (ICP) criteria. It’s ideal for qualifying B2B leads and prioritizing outreach based on fit.

Form Trigger, Airtop, Execute Workflow Trigger
General

Post on X. Uses airtop, executeWorkflowTrigger, formTrigger, stopAndError. Event-driven trigger; 10 nodes.

Airtop, Execute Workflow Trigger, Form Trigger +1
General

Engaging with conversations on X (formerly Twitter) is critical for brands and individuals monitoring sentiment, leads, or emerging trends. Manually collecting comments is time-consuming—this automati

Airtop, Form Trigger, Execute Workflow Trigger