This workflow corresponds to n8n.io template #1461 — we link there as the canonical source.
This workflow follows the HubSpot → 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 →
{
"id": 88,
"name": "Check for valid Hubspot contact email",
"nodes": [
{
"name": "When contact created",
"type": "n8n-nodes-base.hubspotTrigger",
"position": [
540,
480
],
"parameters": {
"eventsUi": {
"eventValues": [
{}
]
},
"additionalFields": {}
},
"credentials": {
"hubspotDeveloperApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Get contact email address",
"type": "n8n-nodes-base.hubspot",
"position": [
720,
480
],
"parameters": {
"resource": "contact",
"contactId": "={{$json[\"contactId\"] ? 151 : 151}}",
"operation": "get",
"additionalFields": {
"properties": [
"email"
],
"propertyMode": "valueOnly"
}
},
"credentials": {
"hubspotApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "validate the email",
"type": "n8n-nodes-base.oneSimpleApi",
"position": [
900,
480
],
"parameters": {
"resource": "utility",
"emailAddress": "={{$json[\"properties\"][\"email\"][\"value\"]}}"
},
"credentials": {
"oneSimpleApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "If email is suspicious",
"type": "n8n-nodes-base.if",
"notes": "IF\ndeliverability is not good\nOR\nDomain is not valid\nOR\nEmail is Disposable",
"position": [
1080,
480
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"deliverability\"]}}",
"value2": "GOOD",
"operation": "notEqual"
}
],
"boolean": [
{
"value1": "={{$json[\"is_domain_valid\"]}}"
},
{
"value1": "={{$json[\"is_email_disposable\"]}}",
"value2": true
}
]
},
"combineOperation": "any"
},
"typeVersion": 1
},
{
"name": "Send to Slack",
"type": "n8n-nodes-base.slack",
"position": [
1280,
460
],
"parameters": {
"text": "=:warning: New Contact with Suspicious Email :warning:\n*Name: * {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"firstname\"][\"normalizedValue\"]}} {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"lastname\"][\"normalizedValue\"]}}\n*Email: * {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"email\"][\"normalizedValue\"]}}\n*Creator: * {{$node[\"Item Lists\"].json[\"contact\"][\"createdByUser\"]}}",
"channel": "#hubspot-alerts",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"validate the email": {
"main": [
[
{
"node": "If email is suspicious",
"type": "main",
"index": 0
}
]
]
},
"When contact created": {
"main": [
[
{
"node": "Get contact email address",
"type": "main",
"index": 0
}
]
]
},
"If email is suspicious": {
"main": [
[
{
"node": "Send to Slack",
"type": "main",
"index": 0
}
]
]
},
"Get contact email address": {
"main": [
[
{
"node": "validate the email",
"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.
hubspotApihubspotDeveloperApioneSimpleApislackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow uses a Hubspot Trigger to check for new contacts. It then validates the contacts' email using OneSimpleAPI. If there are any a message will be sent to Slack.
Source: https://n8n.io/workflows/1461/ — 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.
Check for valid Hubspot contact email. Uses hubspotTrigger, hubspot, oneSimpleApi, slack. Event-driven trigger; 5 nodes.
Triggers when a contact property changes in HubSpot (e.g., added to a sequence) Lusha enriches the contact with verified email, direct phone, and seniority A prospect record is built and validated — c
Googleslides Slack. Uses hubspot, slack, airtable, googleSlides. Event-driven trigger; 10 nodes.
Http Slack. Uses slack, hubspotTrigger, hubspot, httpRequest. Event-driven trigger; 5 nodes.
This workflow uses a Hubspot Trigger to check for new companies. It then checks the companies website exists using the HTTP node. If it doesn't, a message is sent to Slack.