AutomationFlowsEmail & Gmail › Automate Email Campaigns from LinkedIn Interactions

Automate Email Campaigns from LinkedIn Interactions

Original n8n title: Create Email Campaign From Linkedin Post Interactions

Create Email Campaign From LinkedIn Post Interactions. Uses airtable, lemlist, hubspot, phantombuster. Scheduled trigger; 16 nodes.

Cron / scheduled trigger★★★★☆ complexity16 nodesAirtableLemlistHubSpotPhantomBusterDropcontact
Email & Gmail Trigger: Cron / scheduled Nodes: 16 Complexity: ★★★★☆ Added:

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": 121,
  "name": "Create Email Campaign From LinkedIn Post Interactions",
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "position": [
        280,
        500
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyHour"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Exists ?",
      "type": "n8n-nodes-base.if",
      "position": [
        1700,
        480
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$node[\"Airtable - List\"].json[\"fields\"][\"Email\"]}}",
              "value2": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Airtable - List",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1500,
        480
      ],
      "parameters": {
        "table": "Contacts",
        "operation": "list",
        "additionalOptions": {
          "fields": []
        }
      },
      "credentials": {
        "airtableApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Airtable - Update",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2100,
        400
      ],
      "parameters": {
        "id": "={{$node[\"Airtable - List\"].json[\"id\"]}}",
        "table": "Contacts",
        "options": {
          "typecast": true
        },
        "operation": "update",
        "updateAllFields": false
      },
      "credentials": {
        "airtableApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Airtable - Create",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2100,
        580
      ],
      "parameters": {
        "table": "Contacts",
        "options": {
          "typecast": true
        },
        "operation": "append"
      },
      "credentials": {
        "airtableApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Set - Update",
      "type": "n8n-nodes-base.set",
      "position": [
        1900,
        400
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "=ID",
              "value": "={{$node[\"Airtable - List\"].json[\"id\"]}}"
            },
            {
              "name": "Email",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
            },
            {
              "name": "Phone",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}"
            },
            {
              "name": "LinkedIn",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"linkedin\"]}}"
            },
            {
              "name": "Account",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
            },
            {
              "name": "Company website",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "Set - New",
      "type": "n8n-nodes-base.set",
      "position": [
        1900,
        580
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "Name",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"full_name\"]}}"
            },
            {
              "name": "Account",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
            },
            {
              "name": "Company website",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}"
            },
            {
              "name": "Email",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
            },
            {
              "name": "Phone",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}"
            },
            {
              "name": "LinkedIn",
              "value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"linkedin\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "name": "Lemlist",
      "type": "n8n-nodes-base.lemlist",
      "position": [
        2300,
        480
      ],
      "parameters": {
        "email": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}",
        "resource": "lead",
        "campaignId": "",
        "additionalFields": {
          "lastName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"last_name\"]}}",
          "firstName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"first_name\"]}}",
          "companyName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
        }
      },
      "credentials": {
        "lemlistApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": false,
      "typeVersion": 1,
      "continueOnFail": true
    },
    {
      "name": "Hubspot",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        2700,
        480
      ],
      "parameters": {
        "email": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}",
        "resource": "contact",
        "additionalFields": {
          "city": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"siret_city\"]}}",
          "gender": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"civility\"]}}",
          "lastName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"last_name\"]}}",
          "firstName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"first_name\"]}}",
          "websiteUrl": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}",
          "companyName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}",
          "phoneNumber": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}",
          "originalSource": "SOCIAL_MEDIA"
        }
      },
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "LinkedIn Post Commenters",
      "type": "n8n-nodes-base.phantombuster",
      "position": [
        480,
        400
      ],
      "parameters": {
        "jsonParameters": true,
        "additionalFields": {
          "manualLaunch": true
        }
      },
      "credentials": {
        "phantombusterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Get Comments",
      "type": "n8n-nodes-base.phantombuster",
      "position": [
        880,
        400
      ],
      "parameters": {
        "operation": "getOutput",
        "additionalFields": {}
      },
      "credentials": {
        "phantombusterApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "name": "Dropcontact",
      "type": "n8n-nodes-base.dropcontact",
      "position": [
        1300,
        480
      ],
      "parameters": {
        "options": {},
        "additionalFields": {
          "company": "=",
          "website": "",
          "linkedin": "",
          "last_name": "",
          "first_name": "="
        }
      },
      "credentials": {
        "dropcontactApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Phantombuster",
      "type": "n8n-nodes-base.phantombuster",
      "position": [
        2500,
        480
      ],
      "parameters": {
        "additionalFields": {}
      },
      "credentials": {
        "phantombusterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "LinkedIn Post Liker",
      "type": "n8n-nodes-base.phantombuster",
      "position": [
        480,
        600
      ],
      "parameters": {
        "jsonParameters": true,
        "additionalFields": {
          "manualLaunch": true
        }
      },
      "credentials": {
        "phantombusterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Get Likers",
      "type": "n8n-nodes-base.phantombuster",
      "position": [
        880,
        600
      ],
      "parameters": {
        "operation": "getOutput",
        "additionalFields": {}
      },
      "credentials": {
        "phantombusterApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "name": "Wait 30s",
      "type": "n8n-nodes-base.wait",
      "position": [
        680,
        560
      ],
      "parameters": {
        "unit": "seconds",
        "amount": 30
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {},
  "connections": {
    "Cron": {
      "main": [
        [
          {
            "node": "LinkedIn Post Commenters",
            "type": "main",
            "index": 0
          },
          {
            "node": "LinkedIn Post Liker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lemlist": {
      "main": [
        [
          {
            "node": "Phantombuster",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Exists ?": {
      "main": [
        [
          {
            "node": "Set - Update",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set - New",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30s": {
      "main": [
        [
          {
            "node": "Get Comments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set - New": {
      "main": [
        [
          {
            "node": "Airtable - Create",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Likers": {
      "main": [
        [
          {
            "node": "Dropcontact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Dropcontact": {
      "main": [
        [
          {
            "node": "Airtable - List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Comments": {
      "main": [
        [
          {
            "node": "Dropcontact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set - Update": {
      "main": [
        [
          {
            "node": "Airtable - Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Phantombuster": {
      "main": [
        [
          {
            "node": "Hubspot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable - List": {
      "main": [
        [
          {
            "node": "Exists ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable - Create": {
      "main": [
        [
          {
            "node": "Lemlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable - Update": {
      "main": [
        [
          {
            "node": "Lemlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Post Commenters": {
      "main": [
        [
          {
            "node": "Wait 30s",
            "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

How this works

Transform LinkedIn post interactions into targeted email campaigns effortlessly, saving hours of manual data handling and boosting outreach efficiency for marketers and sales teams. This workflow automatically captures engagement data from LinkedIn using PhantomBuster, enriches it with contact details via Dropcontact, and feeds it into Airtable for organisation before creating personalised sequences in Lemlist. The key step involves updating and creating records in Airtable to segment responders, ensuring your follow-up emails in Lemlist or HubSpot resonate with engaged prospects.

Use this workflow when running regular LinkedIn content campaigns and needing to nurture warm leads through automated emails, particularly for B2B outreach. Avoid it for one-off posts or if you lack API access to LinkedIn via PhantomBuster, as it relies on scheduled triggers for ongoing monitoring. Common variations include swapping Lemlist for direct HubSpot email creation or adding filters in Airtable to prioritise high-engagement interactions like comments over likes.

About this workflow

Create Email Campaign From LinkedIn Post Interactions. Uses airtable, lemlist, hubspot, phantombuster. Scheduled trigger; 16 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

This workflow runs every weekday morning to find HubSpot deals with stale proposal activity, pulls the associated contact email, enforces opt-out and follow-up limits using Google Sheets, sends a valu

HubSpot, Google Sheets, Slack +1
Email & Gmail

Cold Email Automation - Safe Ramp + AI Personalization + Follow-ups. Uses googleSheets, httpRequest, gmail. Scheduled trigger; 34 nodes.

Google Sheets, HTTP Request, Gmail
Email & Gmail

How it works time trigger using the cron format, every weekday at 5pm gets CentralStationCRM people updates of today checks for tag "Outreach" if true, sends message on gmail (predefine in node) waits

Gmail, HTTP Request, Slack
Email & Gmail

Webhook Dropcontact. Uses lemlist, hubspot, dropcontact, slack. Webhook trigger; 18 nodes.

Lemlist, HubSpot, Dropcontact +1
Email & Gmail

This n8n workflow template, "Email Outreach Automation," is designed to help you set up an automated email outreach system using tools you might already be familiar with: Google Sheets and Google Docs

Google Sheets, Google Docs, Gmail