This workflow corresponds to n8n.io template #4458 — we link there as the canonical source.
This workflow follows the OpenAI → Slack 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "df9b404e-90d7-4f66-bcd4-9d64595e7b88",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1320,
1360
],
"parameters": {
"color": 7,
"content": "Image Generator\n\nSends your prompt to OpenAI\u2019s image endpoint (or your chosen image API)."
},
"typeVersion": 1
},
{
"id": "e0eae618-d330-4b74-b5a4-528a28ec91c6",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1260,
220
],
"parameters": {
"color": 4,
"width": 480,
"height": 740,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "fc6691ad-c031-40ce-bffc-ec3495db40cb",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
280
],
"parameters": {
"color": 7,
"width": 400,
"content": "Form-to-Slack AI Triager\n\nThis workflow captures every new contact-form submission, picks out your lead\u2019s name, email, and message, asks GPT-4 to rate their interest as Hot/Warm/Cold, then posts a neat summary into Slack so your team can jump on the best leads instantly.\n\n"
},
"typeVersion": 1
},
{
"id": "05fd07c8-02c0-4f52-b8c3-fc2ea20cba9c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
900
],
"parameters": {
"color": 7,
"width": 400,
"height": 140,
"content": "Receive Form Submission\n\n\u2022 Listens for incoming POSTs at /form-submission \n\u2022 Triggers whenever someone hits your contact form \n\u2022 Passes the raw payload downstream\n"
},
"typeVersion": 1
},
{
"id": "3a7b8e7f-6269-4640-8d0a-068ba14077a5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
520
],
"parameters": {
"color": 7,
"width": 400,
"content": "Extract Lead Details\n\n\u2022 Extracts only what we need: \n \u2013 name \n \u2013 email \n \u2013 message \n\u2022 Drops all other fields for a clean payload\n"
},
"typeVersion": 1
},
{
"id": "cc22b2aa-8841-4f92-9377-63ad8aaf7689",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
840,
1160
],
"parameters": {
"color": 7,
"width": 360,
"height": 140,
"content": " Rate Lead Interest\n\n\u2022 Uses GPT-4.1 to read the message text \n\u2022 Replies with exactly one word: \n \u201cHot\u201d, \u201cWarm\u201d, or \u201cCold\u201d \n\u2022 Auto-rates how eager the lead is\n"
},
"typeVersion": 1
},
{
"id": "24c0a6aa-68fa-4d7f-90d4-067fe86318b8",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1440,
580
],
"parameters": {
"color": 7,
"width": 560,
"height": 200,
"content": "Send Lead Alert to Slack\n\n\u2022 Sends a formatted alert into #social \n\u2022 Includes: \n \u2013 \ud83d\udd25 Interest level (Hot/Warm/Cold) \n \u2013 \ud83e\uddd1 Name \n \u2013 \ud83d\udce7 Email \n \u2013 \ud83d\udcac Original message \n\u2022 Lets your team see new leads in real time\n"
},
"typeVersion": 1
},
{
"id": "9fe6e672-9a36-49eb-8612-7285dee6336d",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1560,
1080
],
"parameters": {
"color": 7,
"width": 420,
"height": 140,
"content": "Connection Overview\n\nWebhook \u2192 Set \u2192 OpenAI \u2192 Slack \n(Triggers \u2192 Clean data \u2192 Classify \u2192 Notify team)\n"
},
"typeVersion": 1
},
{
"id": "510a7d97-6508-4f37-90a1-33b0b194b02c",
"name": "Receive Form Submission",
"type": "n8n-nodes-base.webhook",
"position": [
-80,
740
],
"parameters": {
"path": "/form-submission",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "7f4f555f-9488-4e05-a78f-7a48533e857b",
"name": "Extract Lead Details",
"type": "n8n-nodes-base.set",
"position": [
480,
740
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "18ff8ecc-6647-416a-89e0-468b186bbf20",
"name": "body.name",
"type": "string",
"value": "={{ $json[\"body\"][\"name\"] }}"
},
{
"id": "cae1ea20-c589-4f38-acf3-c61c062f129d",
"name": "body.email",
"type": "string",
"value": "={{ $json[\"body\"][\"email\"] }}"
},
{
"id": "da5da857-c6b2-45f3-ac13-53aed74c8e37",
"name": "body.message",
"type": "string",
"value": "={{ $json[\"body\"][\"message\"] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "579e6686-7b86-45aa-a7b8-204fc7982fad",
"name": "Rate Lead Interest",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
900,
960
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-2025-04-14",
"cachedResultName": "GPT-4.1-2025-04-14"
},
"options": {},
"messages": {
"values": [
{
"content": "=Classify the following contact form message as \"Hot\", \"Warm\", or \"Cold\" based on how serious the user is about the product:\n\n\"{{ $json[\"message\"] }}\"\n\nRespond only with one word: Hot, Warm, or Cold.\n"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "d2a23b3f-9a0c-4567-a179-60395e80119c",
"name": "Send Lead Alert to Slack",
"type": "n8n-nodes-base.slack",
"position": [
1480,
400
],
"parameters": {
"text": "={{\n ($json[\"message\"][\"content\"] === \"Hot\" ? \"\ud83d\udd25\" : \n $json[\"message\"][\"content\"] === \"Warm\" ? \"\ud83c\udf24\" : \"\u2744\ufe0f\") +\n \" New Lead: \" + $node[\"Extract Lead Details\"].json[\"body\"][\"name\"] + \n \" (\" + $node[\"Extract Lead Details\"].json[\"body\"][\"email\"] + \")\\n\\n\" +\n \"Message: \" + $node[\"Extract Lead Details\"].json[\"body\"][\"message\"] + \"\\n\\n\" +\n \"Triage: \" + \n ($json[\"message\"][\"content\"] === \"Hot\" ? \"\ud83d\udd25 Hot\" : \n $json[\"message\"][\"content\"] === \"Warm\" ? \"\ud83c\udf24 Warm\" : \"\u2744\ufe0f Cold\")\n}}\n",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "name",
"value": "social"
},
"otherOptions": {}
},
"typeVersion": 2.3
}
],
"connections": {
"Rate Lead Interest": {
"main": [
[
{
"node": "Send Lead Alert to Slack",
"type": "main",
"index": 0
}
]
]
},
"Extract Lead Details": {
"main": [
[
{
"node": "Rate Lead Interest",
"type": "main",
"index": 0
}
]
]
},
"Receive Form Submission": {
"main": [
[
{
"node": "Extract Lead Details",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically score every contact form lead as Hot/Warm/Cold and alert your sales team instantly.
Source: https://n8n.io/workflows/4458/ — 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.
AI-Powered Fake Review Detection Workflow Using n8n & Airtable. Uses httpRequest, airtable, openAi, slack. Webhook trigger; 27 nodes.
Transform customer feedback into actionable insights automatically with AI analysis, professional PDF reports, personalized emails, and real-time team notifications. Overview Features Demo Prerequisit
Content creators, trainers, and educators who need to convert lengthy documents into digestible micro-learning experiences.
This workflow automates the end-to-end process of scheduling technical or behavioral interviews. It captures interview data via Webhook, creates a Google Calendar event with an integrated Google Meet
Transform your webinar registrations from basic form submissions into a verified, personalized, and premium attendee experience.