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 →
{
"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.
airtableApidropcontactApihubspotApilemlistApiphantombusterApi
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
Cold Email Automation - Safe Ramp + AI Personalization + Follow-ups. Uses googleSheets, httpRequest, gmail. Scheduled trigger; 34 nodes.
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
Webhook Dropcontact. Uses lemlist, hubspot, dropcontact, slack. Webhook trigger; 18 nodes.
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