This workflow corresponds to n8n.io template #2121 — we link there as the canonical source.
This workflow follows the Form Trigger → HTTP Request 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": "d7ba34e4-5f98-4a32-abe7-1ed1a3d30410",
"name": "n8n Form Trigger",
"type": "n8n-nodes-base.formTrigger",
"position": [
-800,
840
],
"parameters": {
"path": "0bf8840f-1cc4-46a9-86af-a3fa8da80608",
"options": {},
"formTitle": "Contact us",
"formFields": {
"values": [
{
"fieldLabel": "What's your business email?"
}
]
},
"formDescription": "We'll get back to you soon"
},
"typeVersion": 2
},
{
"id": "4e91bf1d-ff5b-4a5c-805e-08c930e8dbe9",
"name": "Check if the email is valid",
"type": "n8n-nodes-base.if",
"position": [
-380,
840
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "54d84c8a-63ee-40ed-8fb2-301fff0194ba",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "valid"
}
]
}
},
"typeVersion": 2
},
{
"id": "d27ef50a-a80d-4f27-bd94-0c354f71fad1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-800,
620
],
"parameters": {
"color": 5,
"width": 545.9804141018467,
"height": 183.48964745383324,
"content": "### \ud83d\udc68\u200d\ud83c\udfa4 Setup\n1. Add you **MadKudu**, **Hunter**, and **Telegram** credentials \n2. Set the chat id in Telegram\n3. Click the Test Workflow button, enter your email and check your Telegram chat\n4. Activate the workflow and use the form trigger production URL to collect your leads in a smart way "
},
"typeVersion": 1
},
{
"id": "ba0f2f9f-c95f-43a2-9f79-1f6b15f3cd5f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-800,
980
],
"parameters": {
"color": 7,
"width": 162,
"height": 139,
"content": "\ud83d\udc46 You can exchange this with any form you like (*e.g. Typeform, Google forms, Survey Monkey...*)"
},
"typeVersion": 1
},
{
"id": "e74306a7-f430-4d00-80e1-3dd13ccd456a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
900
],
"parameters": {
"color": 7,
"width": 162,
"height": 84,
"content": "\ud83d\udc46 Adjust the fit as you see necessary"
},
"typeVersion": 1
},
{
"id": "a1c972d5-1455-48d8-9f6d-053147db5db2",
"name": "Email is not valid, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-40,
980
],
"parameters": {},
"typeVersion": 1
},
{
"id": "84f0521d-38e8-4ef4-b590-5ef6d06ebfa2",
"name": "Score lead with MadKudu",
"type": "n8n-nodes-base.httpRequest",
"position": [
-40,
740
],
"parameters": {
"url": "=https://api.madkudu.com/v1/persons?email={{ $json.email }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.1
},
{
"id": "f9553935-ca49-43d5-b3a5-d469edac5e83",
"name": "Verify email with Hunter",
"type": "n8n-nodes-base.hunter",
"position": [
-580,
840
],
"parameters": {
"email": "={{ $json['What\\'s your business email?'] }}",
"operation": "emailVerifier"
},
"typeVersion": 1
},
{
"id": "4f3de033-8936-44f0-9a07-e21f98f6811b",
"name": "Not interesting enough",
"type": "n8n-nodes-base.noOp",
"position": [
520,
880
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f6b6829a-7bc7-4145-8933-db1ce965c1c9",
"name": "if customer fit score > 60",
"type": "n8n-nodes-base.if",
"position": [
200,
740
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c23d7b34-a4ae-421f-bd7a-6a3ebb05aafe",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.properties.customer_fit.score }}",
"rightValue": 60
}
]
}
},
"typeVersion": 2
},
{
"id": "7e739bf6-1786-49b4-80d3-eeef406d7a6e",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
460,
460
],
"parameters": {
"color": 7,
"width": 162,
"height": 84,
"content": "\ud83d\udc47\ud83c\udffd Update the chat id to send to"
},
"typeVersion": 1
},
{
"id": "fd0e1600-b1d9-4829-a86b-2cccc6a565f2",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
500,
560
],
"parameters": {
"text": "=\u2b50 New hot lead: {{ $json.email }}... \n\n{{ $json.properties.customer_fit.top_signals_formatted }}",
"chatId": "123456789",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
}
],
"connections": {
"n8n Form Trigger": {
"main": [
[
{
"node": "Verify email with Hunter",
"type": "main",
"index": 0
}
]
]
},
"Score lead with MadKudu": {
"main": [
[
{
"node": "if customer fit score > 60",
"type": "main",
"index": 0
}
]
]
},
"Verify email with Hunter": {
"main": [
[
{
"node": "Check if the email is valid",
"type": "main",
"index": 0
}
]
]
},
"if customer fit score > 60": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
],
[
{
"node": "Not interesting enough",
"type": "main",
"index": 0
}
]
]
},
"Check if the email is valid": {
"main": [
[
{
"node": "Score lead with MadKudu",
"type": "main",
"index": 0
}
],
[
{
"node": "Email is not valid, do nothing",
"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.
telegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
If you have a form where potential leads reach out, then you probably want to analyze those leads and send a notification if certain requirements are met, e.g. employee number is high enough. MadKudu is built exactly to solve this problem. We use it along with Hunter and…
Source: https://n8n.io/workflows/2121/ — 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.
If you have a form where potential leads reach out, then you probably want to analyze those leads and send a notification if certain requirements are met, e.g. employee number is high enough. MadKudu
If you have a form where potential leads reach out, then you probably want to analyze those leads and send a notification if certain requirements are met, e.g. employee number is high enough. MadKudu
This LinkedIn automation workflow monitors post comments for specific trigger words and automatically sends direct messages with lead magnets to engaged users. The system checks connection status, han
This workflow implements a subscription gate for a Telegram lead magnet campaign. Users must subscribe to a Telegram channel before they can access the lead magnet (e.g., a free resource, discount cod
🎯 Telegram Lead Magnet - Subscription Gate with Upsell Branch. Uses telegram, httpRequest, telegramTrigger. Event-driven trigger; 23 nodes.