AutomationFlowsGeneral › 17 - AI LinkedIn Responder

17 - AI LinkedIn Responder

17 - AI LinkedIn Responder. Uses httpRequest, openAi, stickyNote, scheduleTrigger. Scheduled trigger; 13 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered13 nodesHttp RequestOpen AiGoogle Sheets
General Trigger: Cron / scheduled Nodes: 13 Complexity: ★★★★☆ AI nodes: yes

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": "PUBLIC_LINKEDIN_WORKFLOW_ID",
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "name": "17 - AI LinkedIn Responder",
  "tags": [],
  "nodes": [
    {
      "id": "9760b272-ad71-47ec-aab8-51eb8b937bb7",
      "name": "\ud83d\udce5 Fetch LinkedIn Comments",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        900,
        320
      ],
      "parameters": {
        "url": "https://api.linkedin.com/v2/socialActions/urn:li:share:YOUR_POST_ID/comments",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "3a82041d-b02f-4431-97f2-c6760a96324e",
      "name": "\ud83d\udcca Set Last Timestamp",
      "type": "n8n-nodes-base.set",
      "position": [
        1120,
        220
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "6d88d258-ff26-41df-814d-e237f1061dbc",
      "name": "\ud83d\udd0d Filter New Comments",
      "type": "n8n-nodes-base.if",
      "position": [
        1340,
        220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "comment-filter-condition",
              "operator": {
                "type": "dateTime",
                "operation": "after",
                "rightType": "manual"
              },
              "leftValue": "={{ $json.created.time }}",
              "rightValue": "={{ $node[\"\ud83d\udcca Set Last Timestamp\"].json.lastCommentTimestamp }}"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "1e19adac-640f-4583-bc80-e9a4e4c8210a",
      "name": "\ud83e\udd16 Generate AI Reply",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1560,
        220
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-3.5-turbo",
          "cachedResultName": "GPT-3.5-TURBO"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "You are a helpful social media manager. Generate a professional and engaging reply to the following LinkedIn comment. Keep it concise, positive, and appropriate for business networking.\n\nOriginal comment: {{ $json.message.text }}\n\nReply should be:\n- Professional but friendly\n- Maximum 2-3 sentences\n- Thank the commenter or acknowledge their input\n- Add value or continue the conversation naturally"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "abe4892d-9908-4794-ae53-befbdaaacf75",
      "name": "\ud83d\udcac Post LinkedIn Reply",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1940,
        220
      ],
      "parameters": {
        "url": "=https://api.linkedin.com/v2/socialActions/{{ $json.id }}/comments",
        "options": {},
        "jsonBody": "={\n  \"actor\": \"urn:li:person:YOUR_ACTOR_URN\",\n  \"message\": {\n    \"text\": \"{{ $node[\"\ud83e\udd16 Generate AI Reply\"].json.response }}\"\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "dcaef8a6-4d04-4eac-b01b-f03984556e34",
      "name": "\ud83d\udccb Workflow Notes2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        -200
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 740,
        "content": "## Nodes Covered: LinkedIn API, Scheduling, Google Sheet\n\n\ud83d\udcc5 Note:\n\nAUTOMATED LINKEDIN COMMENT MONITORING\n\n*Fetches comments from a specific LinkedIn post every 10 minutes using LinkedIn's API. It authenticates via header-based token access and ensures updated responses by scheduling regular runs.*\n\n*And also reads timestamps of the comments from the sheet*"
      },
      "typeVersion": 1
    },
    {
      "id": "226eb70b-6529-48fe-9c60-872eb15a59e4",
      "name": "\u23f0 Runs Every 10 Mins",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        680,
        220
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 10
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "65caa63a-15c2-4ff1-9917-ff5e6f0789d2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        -200
      ],
      "parameters": {
        "width": 420,
        "height": 740,
        "content": "## Nodes Covered: Data Filtering\n\n\ud83d\udcca Note:\n\nDYNAMIC COMMENT FILTERING\n\n*Retrieves the timestamp of the last processed comment from a Google Sheet, and filters out already-handled entries to focus only on newly received comments.*"
      },
      "typeVersion": 1
    },
    {
      "id": "d30d1fda-a75d-4017-bec8-8eb02541be05",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -200
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 740,
        "content": "## Nodes Covered: OpenAI Analysis\n\n\ud83e\udde0 Note:\n\nAI-GENERATED LINKEDIN ENGAGEMENT\n\n*Uses OpenAI (GPT-3.5 Turbo) to generate friendly and professional replies to new LinkedIn comments. Prompts are structured to ensure tone, brevity, and contextual relevance for networking.*"
      },
      "typeVersion": 1
    },
    {
      "id": "5885c2a3-43db-4184-af9b-759ba9d7cc99",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        -200
      ],
      "parameters": {
        "color": 4,
        "width": 220,
        "height": 740,
        "content": "## Nodes Covered: LinkedIn API, AI Output Delivery\n\n\ud83d\udcac Note:\n\nAUTOMATED COMMENT REPLY POSTING\n\n*Takes AI-generated replies and posts them back to LinkedIn as responses under the original comment thread, maintaining the actor identity and message formatting.*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c50f65cb-00d1-40e4-b5a0-5640c25edb79",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2120,
        -200
      ],
      "parameters": {
        "color": 6,
        "width": 220,
        "height": 740,
        "content": "## Nodes Covered: Google Sheets (Write)\n\n\ud83d\udcbe Note:\n\nCOMMENT DATA ARCHIVAL\n\n*Appends processed LinkedIn comments and associated metadata into a structured Google Sheet for tracking, review, or future analytics.*"
      },
      "typeVersion": 1
    },
    {
      "id": "6c6ccc12-0678-4cec-9257-97a9b1c67022",
      "name": "\ud83d\udcca Get Last Comment Timestamp",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        900,
        140
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SHEET_NAME_OR_GID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_DOCUMENT_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "93407535-d411-4407-800c-df6930304cb3",
      "name": "\ud83d\udcbe Store Comment Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2160,
        220
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SHEET_NAME_OR_GID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_DOCUMENT_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.4
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "PUBLIC_VERSION_ID",
  "connections": {
    "\u23f0 Runs Every 10 Mins": {
      "main": [
        [
          {
            "node": "\ud83d\udce5 Fetch LinkedIn Comments",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udcca Get Last Comment Timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 Generate AI Reply": {
      "main": [
        [
          {
            "node": "\ud83d\udcac Post LinkedIn Reply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcca Set Last Timestamp": {
      "main": [
        [
          {
            "node": "\ud83d\udd0d Filter New Comments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcac Post LinkedIn Reply": {
      "main": [
        [
          {
            "node": "\ud83d\udcbe Store Comment Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd0d Filter New Comments": {
      "main": [
        [
          {
            "node": "\ud83e\udd16 Generate AI Reply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udce5 Fetch LinkedIn Comments": {
      "main": [
        [
          {
            "node": "\ud83d\udcca Set Last Timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcca Get Last Comment Timestamp": {
      "main": [
        [
          {
            "node": "\ud83d\udcca Set Last Timestamp",
            "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.

About this workflow

17 - AI LinkedIn Responder. Uses httpRequest, openAi, stickyNote, scheduleTrigger. Scheduled trigger; 13 nodes.

Source: https://github.com/ScraperNode/awesome-n8n-templates/blob/main/templates/ai-and-llm/7806-automate-linkedin-comment-replies-with-gpt-35-track-in-google-sheets/workflow.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →