AutomationFlowsSocial Media › Send and Track Linkedin Outreach with Airtable, Unipile, and Openrouter

Send and Track Linkedin Outreach with Airtable, Unipile, and Openrouter

BySalman Mehboob @salmanmehboob on n8n.io

This workflow automates LinkedIn outreach by using Airtable as a CRM, Unipile to fetch profiles and send connection requests/messages, and OpenRouter to generate personalized connection notes and follow-ups, while tracking accepts and replies via Unipile webhooks. Runs every…

Cron / scheduled trigger★★★★★ complexityAI-powered62 nodesAirtableHTTP RequestChain LlmOpenRouter ChatOutput Parser Structured
Social Media Trigger: Cron / scheduled Nodes: 62 Complexity: ★★★★★ AI nodes: yes Added:
Send and Track Linkedin Outreach with Airtable, Unipile, and Openrouter — n8n workflow card showing Airtable, HTTP Request, Chain Llm integration

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

This workflow follows the Airtable → Chainllm 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": "hNLQWQnsasikgoM6",
  "meta": {
    "builderVariant": "mcp",
    "aiBuilderAssisted": true
  },
  "name": "LinkedIn Outreach Automation - Personalized Connect, Track & Follow-up (Airtable + Unipile + AI)",
  "tags": [],
  "nodes": [
    {
      "id": "dcb8c985-2e61-41fa-b173-02a4e314ee48",
      "name": "Every Weekday 09:00",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -80,
        400
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f0c684db-af33-4a21-b569-1dabcda3dfa0",
      "name": "Set Config",
      "type": "n8n-nodes-base.set",
      "position": [
        144,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cfg1",
              "name": "accountId",
              "type": "string",
              "value": "REPLACE_WITH_UNIPILE_ACCOUNT_ID"
            },
            {
              "id": "cfg2",
              "name": "dsn",
              "type": "string",
              "value": "YOUR_DSN"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "11d5b7c6-5b8a-48c8-aa70-e10aacb226b8",
      "name": "Fetch New Leads",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        368,
        400
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "limit": 15,
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "options": {},
        "operation": "search",
        "returnAll": false,
        "filterByFormula": "{Connection Status}='New'"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "13b98ea0-72f0-47ff-8999-0acd1bf8194d",
      "name": "All Leads Processed",
      "type": "n8n-nodes-base.noOp",
      "position": [
        832,
        48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "db6c49e7-1447-4aac-9f4d-a9386306ba34",
      "name": "Prepare Identifier",
      "type": "n8n-nodes-base.set",
      "position": [
        848,
        336
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "h1",
              "name": "handle",
              "type": "string",
              "value": "={{ (() => { const pid = ($json[\"Public Identifier\"] || \"\").trim(); if (pid) return pid; const url = ($json[\"LinkedIn URL\"] || \"\"); const seg = url.split(\"/in/\")[1]; return seg ? seg.split(/[/?#]/)[0] : \"\"; })() }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "fb0c1a96-1e52-4151-a196-d54d7d9ff1b0",
      "name": "Get LinkedIn Profile",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        1088,
        336
      ],
      "parameters": {
        "url": "=https://{{ $('Set Config').first().json.dsn }}/api/v1/users/{{ encodeURIComponent($json.handle) }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "account_id",
              "value": "={{ $('Set Config').first().json.accountId }}"
            },
            {
              "name": "linkedin_sections",
              "value": "*"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "nodeCredentialType": "unipileApi"
      },
      "credentials": {
        "unipileApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.4,
      "waitBetweenTries": 5000
    },
    {
      "id": "9fdddee9-f438-44d3-b114-ccc18a985fef",
      "name": "Write Connection Note",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1456,
        192
      ],
      "parameters": {
        "text": "=Prospect details:\nName: {{ $('Prepare Identifier').item.json.Name || $('Get LinkedIn Profile').item.json.first_name || 'there' }}\nHeadline: {{ $('Get LinkedIn Profile').item.json.headline || $('Prepare Identifier').item.json.Headline || '' }}\nAbout: {{ ($('Get LinkedIn Profile').item.json.summary || $('Get LinkedIn Profile').item.json.about || '').slice(0, 500) }}\nCompany: {{ $('Prepare Identifier').item.json.Company || '' }}\n\nWrite the connection note now (max 280 characters, output only the note).",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "You are an expert B2B LinkedIn outreach copywriter writing on behalf of a company that builds done-for-you AI outreach and lead-generation automations for founders, agencies and sales teams.\n\nWrite ONE personalized LinkedIn connection-request note to the prospect described by the user.\n\nHard rules:\n- MAXIMUM 280 characters. This is critical and non-negotiable.\n- Output ONLY the note text. No quotes, no preamble, no sign-off, no emojis.\n- Sound warm, human and peer-to-peer. Never salesy. Avoid buzzwords like synergy, game-changer, revolutionary.\n- Reference something specific from their headline, role or about section so it feels personal.\n- Add one light line hinting you help teams automate their outreach and lead-gen. No hard pitch, no links, no book-a-call ask.\n- If profile info is thin, stay genuine and brief. Never invent facts about them."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "979191bd-8d8e-441f-ab9d-abde15e828d7",
      "name": "Note Writer Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1392,
        384
      ],
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {
          "maxTokens": 400,
          "temperature": 0.6
        }
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a84a9b1e-3965-4a06-a421-9e03d4818360",
      "name": "Note Schema (max 300)",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1520,
        352
      ],
      "parameters": {
        "autoFix": true,
        "schemaType": "manual",
        "inputSchema": "{\"type\":\"object\",\"properties\":{\"note\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":300}},\"required\":[\"note\"],\"additionalProperties\":false}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "42e886ce-63a4-4dbb-a75e-baba617732a8",
      "name": "Note Fixer Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1552,
        544
      ],
      "parameters": {
        "model": "anthropic/claude-sonnet-4.6",
        "options": {
          "maxTokens": 400,
          "temperature": 0.2
        }
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "96cd11b3-fd5a-423e-b68e-45863eaa11c2",
      "name": "Enforce Char Limit",
      "type": "n8n-nodes-base.set",
      "position": [
        1904,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "g1",
              "name": "note",
              "type": "string",
              "value": "={{ (() => { const n = ($json.output && $json.output.note) || $json.note || $json.text || ''; return n.length <= 300 ? n.trim() : n.slice(0, 300).replace(/\\s+\\S*$/, '').trim(); })() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9369ae44-e001-47e2-9e79-77ece51badec",
      "name": "Send Connection Request",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        2160,
        288
      ],
      "parameters": {
        "url": "=https://{{ $('Set Config').first().json.dsn }}/api/v1/users/invite",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { \"account_id\": $('Set Config').first().json.accountId, \"provider_id\": $('Get LinkedIn Profile').item.json.provider_id, \"message\": $json.note } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "nodeCredentialType": "unipileApi"
      },
      "credentials": {
        "unipileApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.4,
      "waitBetweenTries": 5000
    },
    {
      "id": "d61684b6-5b98-453f-af17-cd742ca2c832",
      "name": "Log Request Sent",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        2480,
        176
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "columns": {
          "value": {
            "id": "={{ $('Prepare Identifier').item.json.id }}",
            "Headline": "={{ $('Get LinkedIn Profile').item.json.headline || '' }}",
            "Provider ID": "={{ $('Get LinkedIn Profile').item.json.provider_id || '' }}",
            "About Summary": "={{ $('Get LinkedIn Profile').item.json.summary || '' }}",
            "Invitation ID": "={{ $json.invitation_id || $json.id || '' }}",
            "Campaign Status": "Active",
            "Connection Note": "={{ $('Enforce Char Limit').item.json.note }}",
            "Request Sent At": "={{ $now.toISO() }}",
            "Connection Status": "Request Sent",
            "Public Identifier": "={{ $('Prepare Identifier').item.json.handle }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn URL",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Public Identifier",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Public Identifier",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Provider ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Provider ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "About Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Note",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Note",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Request Sent",
                  "value": "Request Sent"
                },
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "Declined/Expired",
                  "value": "Declined/Expired"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reply Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "No Reply",
                  "value": "No Reply"
                },
                {
                  "name": "Replied",
                  "value": "Replied"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Reply Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Campaign Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Active",
                  "value": "Active"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Stopped (Replied)",
                  "value": "Stopped (Replied)"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Invitation ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Invitation ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Chat ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Chat ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Request Sent At",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Request Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Replied At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Replied At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 1 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 1 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 2 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 2 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up Count",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up Count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Message Received",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Message Received",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Error",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Error",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "bd615ee7-7dc6-4dd8-8ce6-f1e8412f0a54",
      "name": "Human-like Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        2912,
        464
      ],
      "parameters": {
        "amount": "={{ Math.floor(Math.random() * 61) + 30 }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "30e439e7-73a8-4b3c-a2a5-a193722529e8",
      "name": "Log Profile Error",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        2688,
        528
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "columns": {
          "value": {
            "id": "={{ $('Prepare Identifier').item.json.id }}",
            "Last Error": "={{ $json.error && $json.error.message ? $json.error.message : 'Profile fetch failed' }}",
            "Campaign Status": "Error",
            "Connection Status": "Error"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn URL",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Public Identifier",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Public Identifier",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Provider ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Provider ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About Summary",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "About Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Note",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Note",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Request Sent",
                  "value": "Request Sent"
                },
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "Declined/Expired",
                  "value": "Declined/Expired"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reply Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "No Reply",
                  "value": "No Reply"
                },
                {
                  "name": "Replied",
                  "value": "Replied"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Reply Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Campaign Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Active",
                  "value": "Active"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Stopped (Replied)",
                  "value": "Stopped (Replied)"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Invitation ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Invitation ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Chat ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Chat ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Request Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Request Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Replied At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Replied At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 1 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 1 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 2 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 2 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up Count",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up Count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Message Received",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Message Received",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Error",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Last Error",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "62a83c82-9911-43db-9cd9-6c665b2be839",
      "name": "Log Send Error",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        2512,
        368
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "columns": {
          "value": {
            "id": "={{ $('Prepare Identifier').item.json.id }}",
            "Last Error": "={{ $json.error && $json.error.message ? $json.error.message : 'Connection request failed' }}",
            "Campaign Status": "Error",
            "Connection Status": "Error"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn URL",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Public Identifier",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Public Identifier",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Provider ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Provider ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About Summary",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "About Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Note",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Note",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Request Sent",
                  "value": "Request Sent"
                },
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "Declined/Expired",
                  "value": "Declined/Expired"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reply Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "No Reply",
                  "value": "No Reply"
                },
                {
                  "name": "Replied",
                  "value": "Replied"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Reply Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Campaign Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Active",
                  "value": "Active"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Stopped (Replied)",
                  "value": "Stopped (Replied)"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Invitation ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Invitation ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Chat ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Chat ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Request Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Request Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Replied At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Replied At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 1 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 1 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 2 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 2 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up Count",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up Count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Message Received",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Message Received",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Error",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Last Error",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "f7429bda-f1e2-42d9-b12c-ee4df6ce0f7e",
      "name": "Loop Over Leads",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        592,
        400
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "e515b2de-4665-4d24-ae4f-1d7a95a24cd9",
      "name": "New Relation Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -48,
        1216
      ],
      "parameters": {
        "path": "unipile-new-relation",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "39652197-fa63-4574-879e-cec0283ddfef",
      "name": "Extract Relation",
      "type": "n8n-nodes-base.set",
      "position": [
        176,
        1216
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "r1",
              "name": "providerId",
              "type": "string",
              "value": "={{ $json.body?.user_provider_id ?? $json.body?.provider_id ?? $json.body?.data?.user_provider_id ?? $json.body?.data?.provider_id ?? $json.body?.relation?.provider_id ?? $json.user_provider_id ?? $json.provider_id ?? '' }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4ce57f59-8a6e-4290-936f-88064a6c1100",
      "name": "Find Pending Lead",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        400,
        1216
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "limit": 1,
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "options": {},
        "operation": "search",
        "returnAll": false,
        "filterByFormula": "={{ \"AND({Provider ID}='\" + $json.providerId + \"', {Connection Status}='Request Sent')\" }}"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "dc23ac70-3f7a-452e-936c-ecc0fc3e4889",
      "name": "Mark Accepted",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        624,
        1216
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "columns": {
          "value": {
            "id": "={{ $json.id }}",
            "Accepted At": "={{ $now.toISO() }}",
            "Connection Status": "Accepted"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn URL",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Public Identifier",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Public Identifier",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Provider ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Provider ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About Summary",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "About Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Note",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Note",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connection Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Request Sent",
                  "value": "Request Sent"
                },
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "Declined/Expired",
                  "value": "Declined/Expired"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Connection Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reply Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "No Reply",
                  "value": "No Reply"
                },
                {
                  "name": "Replied",
                  "value": "Replied"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Reply Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Campaign Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Active",
                  "value": "Active"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Stopped (Replied)",
                  "value": "Stopped (Replied)"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Invitation ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Invitation ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Chat ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Chat ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Request Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Request Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted At",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Replied At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Replied At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 1 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 1 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up 2 Sent At",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up 2 Sent At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Follow-up Count",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Follow-up Count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Message Received",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Message Received",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Error",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Last Error",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "04ac6a22-1dc8-4ec3-a705-caa85d38322f",
      "name": "Message Received Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        1664
      ],
      "parameters": {
        "path": "unipile-message-received",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "81c79017-bd5c-41c9-8d0b-bf69ff8faaa0",
      "name": "Extract Message",
      "type": "n8n-nodes-base.set",
      "position": [
        144,
        1664
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "m1",
              "name": "senderProviderId",
              "type": "string",
              "value": "={{ $json.body?.sender?.attendee_provider_id ?? $json.body?.sender?.provider_id ?? $json.sender?.attendee_provider_id ?? '' }}"
            },
            {
              "id": "m2",
              "name": "myUserId",
              "type": "string",
              "value": "={{ $json.body?.account_info?.user_id ?? $json.account_info?.user_id ?? '' }}"
            },
            {
              "id": "m3",
              "name": "messageText",
              "type": "string",
              "value": "={{ $json.body?.message ?? $json.message ?? '' }}"
            },
            {
              "id": "m4",
              "name": "chatId",
              "type": "string",
              "value": "={{ $json.body?.chat_id ?? $json.chat_id ?? '' }}"
            },
            {
              "id": "m5",
              "name": "eventType",
              "type": "string",
              "value": "={{ $json.body?.event ?? $json.event ?? '' }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4b314955-778d-4cbd-931c-becc2ce0a69e",
      "name": "Keep Inbound Replies Only",
      "type": "n8n-nodes-base.filter",
      "position": [
        368,
        1664
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f1",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.senderProviderId }}",
              "rightValue": "={{ $json.myUserId }}"
            },
            {
              "id": "f2",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.senderProviderId }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "7285caa8-b1f0-47f9-943a-2d911f7f69c7",
      "name": "Find Lead By Sender",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        624,
        1664
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "appN6QjcbVPERZgtx"
        },
        "limit": 1,
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "tblFuMN1Kx40tKIkY"
        },
        "options": {},
        "operation": "search",
        "returnAll": false,
        "filterByFormula": "={{ \"{Provider ID}='\" + $json.senderProviderId + \"'\" }}"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.

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

This workflow automates LinkedIn outreach by using Airtable as a CRM, Unipile to fetch profiles and send connection requests/messages, and OpenRouter to generate personalized connection notes and follow-ups, while tracking accepts and replies via Unipile webhooks. Runs every…

Source: https://n8n.io/workflows/17178/ — 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

Automatically scrape LinkedIn posts with Apify, transform them into optimized tweets and threads using Claude AI, store them in Airtable for approval, and publish to X on a daily schedule.

@Apify/N8N Nodes Apify, Output Parser Structured, Chain Llm +6
Social Media

This workflow transforms scattered Reddit discussions into a systematic lead generation machine by discovering actual marketing problems businesses face and automatically converting them into authorit

HTTP Request, Tool Serp Api, Google Sheets +5
Social Media

How it works Automates daily LinkedIn post creation from trending AI tweets. Fetches latest tweets, processes content, checks for duplicates, converts to LinkedIn-ready format, schedules, and posts au

HTTP Request, Google Sheets, Agent +5
Social Media

Linkedin Automation. Uses toolHttpRequest, lmChatOpenRouter, agent, httpRequest. Scheduled trigger; 30 nodes.

Tool Http Request, OpenRouter Chat, Agent +7