This workflow corresponds to n8n.io template #1838 — we link there as the canonical source.
This workflow follows the HTTP Request → HubSpot 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 →
{
"nodes": [
{
"id": "44b2e0ac-1ec9-4acd-bf00-7e280378b8df",
"name": "Lemlist - Unsubscribe",
"type": "n8n-nodes-base.lemlist",
"position": [
1300,
-180
],
"parameters": {
"email": "={{ $json[\"leadEmail\"] }}",
"resource": "lead",
"operation": "unsubscribe",
"campaignId": "={{$json[\"campaignId\"]}}"
},
"credentials": {
"lemlistApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "75dd6db8-5e59-4521-a4be-2272e2914494",
"name": "follow up task",
"type": "n8n-nodes-base.hubspot",
"position": [
1520,
640
],
"parameters": {
"type": "task",
"metadata": {
"subject": "=OOO - Follow up with {{ $json[\"properties\"][\"firstname\"][\"value\"] }} {{ $json[\"properties\"][\"lastname\"][\"value\"] }}"
},
"resource": "engagement",
"authentication": "oAuth2",
"additionalFields": {
"associations": {
"contactIds": "={{ $json[\"vid\"] }}"
}
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "0ba95d5d-fe73-4687-8e21-02b97b19924f",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
380,
300
],
"parameters": {
"rules": {
"rules": [
{
"value2": "Unsubscribe"
},
{
"output": 1,
"value2": "Interested"
},
{
"output": 2,
"value2": "Out of Office"
}
]
},
"value1": "={{ $json[\"text\"].trim() }}",
"dataType": "string",
"fallbackOutput": 3
},
"typeVersion": 1
},
{
"id": "abdb4925-4b2a-48e0-aa3d-042e1112150a",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
140,
300
],
"parameters": {
"mode": "combine",
"options": {
"clashHandling": {
"values": {
"resolveClash": "preferInput1"
}
}
},
"combinationMode": "mergeByPosition"
},
"typeVersion": 2
},
{
"id": "b911bd29-9141-43ac-87d4-3922be5cbe5c",
"name": "lemlist - Mark as interested",
"type": "n8n-nodes-base.httpRequest",
"position": [
1300,
160
],
"parameters": {
"url": "=https://api.lemlist.com/api/campaigns/YOUR_CAMPAIGN_ID/leads/{{$json[\"leadEmail\"]}}/interested",
"options": {},
"requestMethod": "POST",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "lemlistApi"
},
"credentials": {
"lemlistApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "510adb64-fb3a-4d56-abf3-ab9cc0d3e683",
"name": "HubSpot - Create Deal",
"type": "n8n-nodes-base.hubspot",
"position": [
1520,
380
],
"parameters": {
"stage": "79009480",
"authentication": "oAuth2",
"additionalFields": {
"dealName": "=New Deal with {{ $json[\"identity-profiles\"][0][\"identities\"][0][\"value\"] }}",
"associatedVids": "={{$json[\"canonical-vid\"]}}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "635e40a2-0546-4c3e-8080-26d72fc5ea35",
"name": "HubSpot - Get contact ID",
"type": "n8n-nodes-base.hubspot",
"position": [
1300,
380
],
"parameters": {
"email": "={{ $json[\"leadEmail\"] }}",
"resource": "contact",
"authentication": "oAuth2",
"additionalFields": {
"lastName": "={{ $json[\"leadLastName\"] }}",
"firstName": "={{ $json[\"leadFirstName\"] }}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a072f9bb-09ca-4edb-b4ae-76c768be681f",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
1740,
380
],
"parameters": {
"text": "=Hello a new lead is interested. \n\nMore info in Hubspot here: \nhttps://app-eu1.hubspot.com/contacts/25897606/deal/{{$json[\"dealId\"]}}",
"channel": "Your channel name",
"attachments": [],
"otherOptions": {},
"authentication": "oAuth2"
},
"typeVersion": 1
},
{
"id": "db18ac14-8e18-4d86-853d-19590a09b7cc",
"name": "HubSpot - Get contact ID1",
"type": "n8n-nodes-base.hubspot",
"position": [
1300,
640
],
"parameters": {
"email": "={{ $json[\"leadEmail\"] }}",
"resource": "contact",
"authentication": "oAuth2",
"additionalFields": {
"lastName": "={{ $json[\"leadLastName\"] }}",
"firstName": "={{ $json[\"leadFirstName\"] }}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "9153abd0-4606-423c-8e9b-7cdcf7a9c490",
"name": "Slack1",
"type": "n8n-nodes-base.slack",
"position": [
1300,
900
],
"parameters": {
"text": "=Hello a lead replied to your emails. \n\nMore info in lemlist here: \nhttps://app.lemlist.com/teams/{{$json[\"teamId\"]}}/reports/campaigns/{{$json[\"campaignId\"]}}",
"channel": "Your channel name",
"attachments": [],
"otherOptions": {},
"authentication": "oAuth2"
},
"typeVersion": 1
},
{
"id": "42b93264-df66-4528-ab02-c038ea0d8758",
"name": "Lemlist - Lead Replied",
"type": "n8n-nodes-base.lemlistTrigger",
"position": [
-520,
320
],
"parameters": {
"event": "emailsReplied",
"options": {
"isFirst": true
}
},
"credentials": {
"lemlistApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "c3b52828-e6d6-41a0-b9ca-101cec379dbf",
"name": "OpenAI",
"type": "n8n-nodes-base.openAi",
"position": [
-240,
140
],
"parameters": {
"prompt": "=The following is a list of emails and the categories they fall into:\nCategories=[\"interested\", \"Out of office\", \"unsubscribe\", \"other\"]\n\nInterested is when the reply is positive.\"\n\n{{$json[\"text\"].replaceAll(/^\\s+|\\s+$/g, '').replace(/(\\r\\n|\\n|\\r)/gm, \"\")}}\\\"\nCategory:",
"options": {
"topP": 1,
"maxTokens": 6,
"temperature": 0
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"OpenAI": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Lemlist - Unsubscribe",
"type": "main",
"index": 0
}
],
[
{
"node": "lemlist - Mark as interested",
"type": "main",
"index": 0
},
{
"node": "HubSpot - Get contact ID",
"type": "main",
"index": 0
}
],
[
{
"node": "HubSpot - Get contact ID1",
"type": "main",
"index": 0
}
],
[
{
"node": "Slack1",
"type": "main",
"index": 0
}
]
]
},
"HubSpot - Create Deal": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
},
"Lemlist - Lead Replied": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"HubSpot - Get contact ID": {
"main": [
[
{
"node": "HubSpot - Create Deal",
"type": "main",
"index": 0
}
]
]
},
"HubSpot - Get contact ID1": {
"main": [
[
{
"node": "follow up task",
"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.
hubspotOAuth2ApilemlistApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Use GPT-3 to classify email responses in lemlist.
Source: https://n8n.io/workflows/1838/ — 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.
flujo-captura-emails. Uses lemlist, hubspot, httpRequest, slack. Event-driven trigger; 12 nodes.
This workflow triggers on HubSpot dealstage changes, pulls full deal, contact, and owner details, uses OpenAI to generate a concise Slack-ready update with next steps, notifies the right Slack channel
Analyze incoming support requests, classify intent and priority with AI, create Jira tickets, assign the correct team, send Slack notifications, and track SLA deadlines. Supports Gmail, WhatsApp, form
Automatically detects missed Zoom demos booked via Calendly and triggers AI-powered follow-up sequences.
This workflow automatically turns any audio file uploaded to Google Drive into a complete podcast episode. It handles transcription, content generation, blog drafting, social copy creation, thumbnail