Automatisierte Nachbearbeitung von Immobilien-Öffnungstagen mit SignSnapHome, HubSpot und Twilio
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 32 Nodes. Hauptsächlich werden If, Set, Code, Wait, Twilio und andere Nodes verwendet. Automatisierung der Immobilien-Besichtigungs-Nachbereitung mit SignSnapHome, HubSpot und Twilio
- •HubSpot API Key
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (32)
Kategorie
{
"meta": {
"instanceId": "105694f414213a0eca348284005921253960bd1b0223294a4970522d0da53055"
},
"nodes": [
{
"id": "306d7ce6-9e54-49a0-8fbd-5ace7fab8d18",
"name": "Webhook: SignSnap Home",
"type": "n8n-nodes-base.webhook",
"position": [
-944,
-144
],
"webhookId": "89c63504-3651-4865-a2f3-b187cf22e255",
"parameters": {
"path": "signsnap-drip-crm",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "b84af1e1-e49f-4fa9-8ec2-1d3b6b9cbd81",
"name": "SignSnap-Daten parsen",
"type": "n8n-nodes-base.code",
"position": [
-736,
-144
],
"parameters": {
"jsCode": "const items = $input.all();\nconst guestData = items[0].json.body;\nconst email = guestData.email || null;\nconst firstName = guestData.first_name || '';\nconst lastName = guestData.last_name || '';\nconst phone = guestData.phone_number || null;\nconst propertyAddress = guestData.openHouseTitle || '';\nconst visitDate = guestData.submissionTimestamp || new Date().toISOString();\nconst hasAgent = guestData.are_you_currently_working_with_an_agent || 'Not specified';\nconst rating = guestData.what_did_you_rate_the_house || null;\nconst buyerAgreement = guestData.do_you_have_a_signed_buyer_agreement || null;\nlet leadScore = 50;\nif (hasAgent === 'No' || hasAgent === 'no') leadScore += 30;\nif (rating && parseInt(rating) >= 4) leadScore += 20;\nif (rating && parseInt(rating) <= 2) leadScore -= 20;\nif (buyerAgreement === 'No' || buyerAgreement === 'no') leadScore += 10;\nleadScore = Math.max(0, Math.min(100, leadScore));\nlet leadStatus = 'OPEN';\nif (leadScore >= 70) leadStatus = 'HOT';\nelse if (leadScore >= 50) leadStatus = 'WARM';\nelse if (leadScore < 40) leadStatus = 'COLD';\nconst qualifiesForFollowUp = (hasAgent.toLowerCase() === 'no' || (hasAgent.toLowerCase() === 'yes' && buyerAgreement && buyerAgreement.toLowerCase() === 'no'));\nconst notes = `Property: ${propertyAddress}\\nVisit: ${visitDate}\\nHas Agent: ${hasAgent}\\nLead Score: ${leadScore}\\nStatus: ${leadStatus}`;\nreturn [{json: {email, firstname: firstName, lastname: lastName, phone, propertyAddress: propertyAddress, visitDate, hasAgent, rating, buyerAgreement, leadScore, leadStatus, qualifiesForFollowUp, notes, lifecyclestage: 'lead', _raw: guestData}}];"
},
"typeVersion": 2
},
{
"id": "f8b4dbf0-111e-4324-bcdc-a168e15d79c3",
"name": "E-Mail vorhanden?",
"type": "n8n-nodes-base.if",
"position": [
-512,
-144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1",
"operator": {
"type": "string",
"operation": "notEmpty"
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "37eea75a-1562-40b9-b5e8-b9f86b9dd804",
"name": "Dankes-E-Mail senden",
"type": "n8n-nodes-base.emailSend",
"position": [
-304,
-400
],
"webhookId": "726c63db-812e-43ff-9a85-a7055fe50ace",
"parameters": {
"html": "=Hi {{ $json.firstname }}!\n\nThank you for visiting {{ $json.propertyAddress }} today.\n\nBest regards,\nYour Real Estate Team",
"options": {},
"subject": "=Thank You for Visiting {{ $json.propertyAddress }}!",
"toEmail": "={{ $json.email }}",
"fromEmail": "YOUR_EMAIL@DOMAIN.COM"
},
"typeVersion": 2.1
},
{
"id": "af2b0a12-b231-4e74-b988-51b3a909ab6d",
"name": "In Master-Tabelle protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
-304,
-144
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $json.email }}",
"Phone": "={{ $json.phone }}",
"Property": "={{ $json.propertyAddress }}",
"Last Name": "={{ $json.lastname }}",
"Timestamp": "={{ $json.visitDate }}",
"First Name": "={{ $json.firstname }}",
"Lead Score": "={{ $json.leadScore }}",
"Lead Status": "={{ $json.leadStatus }}",
"Qualifies for Follow-up": "={{ $json.qualifiesForFollowUp ? 'YES' : 'NO' }}"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Property",
"type": "string",
"display": true,
"required": false,
"displayName": "Property",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Lead Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Lead Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Lead Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Lead Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Has Agent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Has Agent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Buyer Agreement",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Buyer Agreement",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Qualifies for Follow-up",
"type": "string",
"display": true,
"required": false,
"displayName": "Qualifies for Follow-up",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Source",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Source",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 490817884,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit#gid=490817884",
"cachedResultName": "SignSnap Log Test"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit?usp=drivesdk",
"cachedResultName": "Agent Google Maps Scrape n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "Rcg87wOoQqOfBbHi",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "0c10f03a-1bd4-42aa-b2cb-db1442bf603f",
"name": "HubSpot Kontakt erstellen/aktualisieren",
"type": "n8n-nodes-base.hubspot",
"position": [
-64,
-336
],
"parameters": {
"email": "={{ $('Parse SignSnap Data').item.json.email }}",
"options": {},
"authentication": "appToken",
"additionalFields": {
"lastName": "={{ $json['Last Name'] }}",
"firstName": "={{ $json['First Name'] }}",
"phoneNumber": "={{ $('Parse SignSnap Data').item.json.phone }}",
"membershipNote": "={{ $('Parse SignSnap Data').item.json.notes }}"
}
},
"credentials": {
"hubspotAppToken": {
"id": "XUCfDvhuGiD9t0za",
"name": "HubSpot account"
}
},
"typeVersion": 2.2
},
{
"id": "b7e1cdb0-507d-4ddd-8fb5-58f2b3fec618",
"name": "Mit Follow Up Boss synchronisieren",
"type": "n8n-nodes-base.httpRequest",
"position": [
-64,
-144
],
"parameters": {
"url": "https://api.followupboss.com/v1/people",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.email }}"
},
{
"name": "firstName",
"value": "={{ $json.firstname }}"
},
{
"name": "lastName",
"value": "={{ $json.lastname }}"
},
{
"name": "phones[0].value",
"value": "={{ $json.phone }}"
},
{
"name": "phones[0].type",
"value": "mobile"
},
{
"name": "source",
"value": "=SignSnap Home {{ json.propertyAddress }}"
},
{
"name": "notes",
"value": "={{ $json.notes }}"
}
]
},
"genericAuthType": "httpBasicAuth"
},
"typeVersion": 4.2
},
{
"id": "26b97759-43bd-4046-a118-8ea7df44471f",
"name": "Mit Monday.com synchronisieren",
"type": "n8n-nodes-base.mondayCom",
"position": [
-64,
32
],
"parameters": {
"name": "={{ $json.firstname }} {{ $json.lastname }} - {{ $json.propertyAddress }}",
"boardId": "YOUR_MONDAY_BOARD_ID",
"groupId": "topics",
"resource": "boardItem",
"additionalFields": {}
},
"typeVersion": 1
},
{
"id": "c06c92c0-ddf0-490a-b846-b8ba32ba51fe",
"name": "Für Nachverfolgung qualifiziert?",
"type": "n8n-nodes-base.if",
"position": [
160,
-144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1",
"operator": {
"type": "boolean",
"operation": "true"
},
"leftValue": "={{ $('Parse SignSnap Data').item.json.qualifiesForFollowUp }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.2
},
{
"id": "819cec37-f9d3-4362-81d9-9e7153483b2a",
"name": "2 Tage warten",
"type": "n8n-nodes-base.wait",
"position": [
384,
-144
],
"webhookId": "d0b0689b-eac5-44db-90b6-d0195c78b84c",
"parameters": {
"amount": 2
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "7df4434d-196d-465f-8f84-2c790e9fbe23",
"name": "SMS-Nachverfolgung senden (Tag 2)",
"type": "n8n-nodes-base.twilio",
"position": [
592,
-144
],
"parameters": {
"to": "={{ $('Parse SignSnap Data').item.json.phone }}",
"from": "YOUR_TWILIO_PHONE_NUMBER",
"message": "=Hi {{ $('Parse SignSnap Data').item.json.firstname }}! Great meeting you at {{ $('Parse SignSnap Data').item.json.propertyAddress }}. Any questions? Reply to this text!\n\nReply STOP to unsubscribe",
"options": {}
},
"typeVersion": 1
},
{
"id": "3369be2a-2dd5-489c-9b75-90827583c441",
"name": "SMS-Aktivität protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
816,
-144
],
"parameters": {
"columns": {
"value": {
"Notes": "={{ $('Parse SignSnap Data').item.json.notes }}",
"Message": "Day 2 SMS",
"Property": "={{ $('Parse SignSnap Data').item.json.propertyAddress }}",
"Timestamp": "={{ $now.toISO() }}",
"Contact Name": "={{ $('Parse SignSnap Data').item.json.firstname }} {{ $('Parse SignSnap Data').item.json.lastname }}",
"Activity Type": "SMS",
"Contact Email": "={{ $('Parse SignSnap Data').item.json.email }}"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contact Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Contact Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contact Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Contact Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Activity Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Activity Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Message",
"type": "string",
"display": true,
"required": false,
"displayName": "Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Property",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Property",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Success",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Success",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 288628652,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit#gid=288628652",
"cachedResultName": "SMS SignSnap Log Test"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit?usp=drivesdk",
"cachedResultName": "Agent Google Maps Scrape n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "Rcg87wOoQqOfBbHi",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "d4e56171-d817-479c-802e-dd6c9131fff3",
"name": "3 weitere Tage warten",
"type": "n8n-nodes-base.wait",
"position": [
1040,
-144
],
"webhookId": "5f4dbdfe-4e5d-4eeb-8597-8fc7b8d1c574",
"parameters": {
"unit": "days",
"amount": 3
},
"typeVersion": 1.1
},
{
"id": "3540a701-4bdb-4e0f-ba3f-9e793294c47e",
"name": "Marktupdate-E-Mail senden (Tag 5)",
"type": "n8n-nodes-base.emailSend",
"position": [
1264,
-144
],
"webhookId": "8ee59399-1d42-4990-afb6-32f77ea0ea2e",
"parameters": {
"html": "=Hi {{ $('Parse SignSnap Data').item.json.firstname }},\n\nYOUR_MESSAGE_HERE.\n\nBest regards\nYOUR_NAME_HERE",
"options": {},
"subject": "=Market Update",
"toEmail": "={{ $json.email }}",
"fromEmail": "YOUR_EMAIL@DOMAIN.COM"
},
"typeVersion": 2.1
},
{
"id": "0d1452f4-6e0c-4e1b-b99b-847fc966afc0",
"name": "E-Mail-Aktivität protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
1472,
-144
],
"parameters": {
"columns": {
"value": {
"Notes": "={{ $('Parse SignSnap Data').item.json.notes }}",
"Message": "Day 5 Email",
"Property": "={{ $('Parse SignSnap Data').item.json.propertyAddress }}",
"Timestamp": "={{ $now.toISO() }}",
"Contact Name": "={{ $('Parse SignSnap Data').item.json.firstname }} {{ $('Parse SignSnap Data').item.json.lastname }}",
"Activity Type": "Email",
"Contact Email": "={{ $json.email }}"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contact Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Contact Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contact Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Contact Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Activity Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Activity Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Message",
"type": "string",
"display": true,
"required": false,
"displayName": "Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Property",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Property",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Success",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Success",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 288628652,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit#gid=288628652",
"cachedResultName": "SMS SignSnap Log Test"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit?usp=drivesdk",
"cachedResultName": "Agent Google Maps Scrape n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "Rcg87wOoQqOfBbHi",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "cd4c3e51-cdb3-4869-9357-89fd3113130d",
"name": "2 letzte Tage warten",
"type": "n8n-nodes-base.wait",
"position": [
1696,
-144
],
"webhookId": "b62e73a2-fb7e-477d-a553-ff5c140c8924",
"parameters": {
"unit": "days",
"amount": 2
},
"typeVersion": 1.1
},
{
"id": "4bb2f67f-a640-4daf-850e-0c6ac7c206a1",
"name": "Nachverfolgungsaufgabe erstellen (Tag 7)",
"type": "n8n-nodes-base.hubspot",
"position": [
1920,
-144
],
"parameters": {
"resource": "task",
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "XUCfDvhuGiD9t0za",
"name": "HubSpot account"
}
},
"typeVersion": 2.2
},
{
"id": "5ca2bf5a-57a8-4972-9300-10b95c5d4a86",
"name": "Fehlende E-Mail protokollieren",
"type": "n8n-nodes-base.set",
"position": [
-304,
144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1",
"name": "error_reason",
"type": "string",
"value": "No email"
},
{
"id": "2",
"name": "guest_name",
"type": "string",
"value": "={{ $json.firstname }} {{ $json.lastname }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "23890819-d826-4c9a-9391-3755eada8049",
"name": "In Fehler-Tabelle protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
-64,
320
],
"parameters": {
"columns": {
"value": {
"Timestamp": "={{ $now.toISO() }}",
"Guest Name": "={{ $json.guest_name }}",
"Error Reason": "={{ $json.error_reason }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"mode": "list",
"value": "Errors"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xWqUC4fGVpjB7c2rYnosAn1mKShs3SKizgA-M8P9tZg/edit?usp=drivesdk",
"cachedResultName": "Agent Google Maps Scrape n8n"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "Rcg87wOoQqOfBbHi",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "5710d148-ccb0-4324-9f41-3de8a547a8f7",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1504,
-928
],
"parameters": {
"color": 5,
"width": 352,
"height": 736,
"content": "## 📋 SETUP INSTRUCTIONS\n\n**Enhanced Multi-CRM + Auto Follow-up Workflow**\n\n### Quick Setup:\n1. **Configure Credentials:**\n - HubSpot OAuth2 or API Token\n - Follow Up Boss API Key\n - Monday.com API Token\n - Twilio Account (SID + Auth Token)\n - SMTP for emails\n - Google Sheets OAuth2\n\n2. **Create Google Sheet with 3 tabs:**\n - \"Lead Master Log\"\n - \"Follow-up Activity\"\n - \"Errors\"\n\n3. **Update placeholders in nodes:**\n - YOUR_GOOGLE_SHEET_ID_HERE\n - YOUR_EMAIL@DOMAIN.COM\n - YOUR_TWILIO_PHONE_NUMBER\n - YOUR_MONDAY_BOARD_ID\n\n4. Activate workflow\n5. Copy webhook URL\n6. Paste into SignSnapHome.com → Settings → Integrations\n\n✅ Done! Leads auto-sync to 3 CRMs with 7-day follow-up!"
},
"typeVersion": 1
},
{
"id": "13fe6aaa-dc6a-4495-ae62-504d3515857f",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1072,
-640
],
"parameters": {
"width": 224,
"height": 384,
"content": "## 🎯 WEBHOOK TRIGGER\n\n**Receives POST data from SignSnap Home**\n\nURL Format:\n`https://your-n8n.com/webhook/signsnap-drip-crm`\n\nAdd this URL to SignSnapHome.com automation settings.\n\n⚡ Triggers on every open house sign-in!"
},
"typeVersion": 1
},
{
"id": "3158bc54-e489-4466-af5b-ce0bc9bb0670",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-768
],
"parameters": {
"height": 496,
"content": "## ⚙️ DATA PROCESSING\n\n**Extracts & enriches all data:**\n\n✅ Contact info\n✅ Property & visit details\n✅ Lead score (0-100)\n✅ Lead status (HOT/WARM/COLD)\n✅ Follow-up qualification\n\n**Lead Scoring:**\n- Base: 50 points\n- No agent: +30\n- Rating 4-5: +20\n- Rating 1-2: -20\n- No buyer agreement: +10\n\n**Follow-up Logic:**\nQualifies if NO agent OR (has agent BUT no agreement)"
},
"typeVersion": 1
},
{
"id": "5a6fd21b-1bc1-45b4-ade3-af26679eb627",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
-1456
],
"parameters": {
"color": 4,
"height": 368,
"content": "## 🎯 HUBSPOT\n\nIf contact exists:\n→ Updates information\n→ Adds new visit to timeline\n→ Updates lead score\n\nIf contact is new:\n→ Creates new contact\n→ Sets all properties\n→ Marks as 'Lead'\n\n✨ Prevents duplicates!\n\n🔧 **Setup:**\nConfigure OAuth2 or API Token in credentials"
},
"typeVersion": 1
},
{
"id": "f6a03f6a-df91-4fc8-8b99-17fd12715a04",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
-1456
],
"parameters": {
"color": 4,
"height": 608,
"content": "## 🔑 FOLLOW UP BOSS\n\n**API Setup:**\n1. Login to Follow Up Boss\n2. Settings → API\n3. Generate API Key\n4. Copy key\n\n**n8n Credential:**\n1. Click credential in this node\n2. Create \"HTTP Basic Auth\"\n3. Username: Your API Key\n4. Password: Leave blank\n\n**Optional Custom Fields:**\nAdd in FUB Settings first:\n- property_visited\n- lead_score\n- visit_date\n\nThen add to body parameters.\n\n📚 https://docs.followupboss.com"
},
"typeVersion": 1
},
{
"id": "c1454018-03d8-463f-870a-27595fda1d8e",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
-1456
],
"parameters": {
"color": 4,
"height": 688,
"content": "## 📋 MONDAY.COM\n\n**Board Setup:**\n1. Create board: \"Open House Leads\"\n2. Add columns:\n - Name (text)\n - Email (email)\n - Phone (phone)\n - Property (text)\n - Lead Status (status)\n - Lead Score (numbers)\n - Visit Date (date)\n\n**Get Board ID:**\n1. Open board URL\n2. Look for: monday.com/boards/1234567890\n3. Copy the number (1234567890)\n4. Paste into this node\n\n**Get API Token:**\n1. Avatar → Admin → API\n2. Generate token\n3. Save in n8n credentials\n\n📚 https://developer.monday.com"
},
"typeVersion": 1
},
{
"id": "2cad509e-ec9a-4972-b090-894fa95a410a",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
128,
-736
],
"parameters": {
"color": 5,
"width": 336,
"height": 496,
"content": "## 🎯 SMART QUALIFICATION\n\n**Who gets full follow-up sequence?**\n\n✅ **QUALIFIED LEADS:**\n- Visitor said \"No\" to having agent\n- Visitor has agent BUT no buyer agreement\n\n❌ **BASIC ONLY:**\n- Has agent + signed buyer agreement\n- (Gets email + CRM sync, no SMS/sequence)\n\n**Why this matters:**\n- Respects existing relationships\n- Focuses energy on available buyers\n- Compliance with agent ethics\n- Higher conversion on qualified leads\n\n**TRUE Path:** Full 7-day sequence\n**FALSE Path:** Workflow ends (already in CRMs)"
},
"typeVersion": 1
},
{
"id": "ea992704-fe3a-4830-9cca-e0d716f19bc9",
"name": "Haftnotiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
-576
],
"parameters": {
"color": 4,
"height": 128,
"content": "## See Above for Individual setups\nDelete/ disconnect the nodes you dont use\n"
},
"typeVersion": 1
},
{
"id": "c97076de-ae72-418e-bbaa-fb5b6d723c8f",
"name": "Haftnotiz8",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-768
],
"parameters": {
"width": 352,
"height": 528,
"content": "## 📱 TWILIO SMS (DAY 2)\n\n**Requirements:**\n- Twilio account\n- SMS-enabled phone number\n- Account SID + Auth Token\n\n**Setup:**\n1. Console → Get SID & Token\n2. Buy phone number (+15551234567)\n3. Configure n8n credential\n4. Update phone number in node\n\n**TCPA Compliance:**\n✅ Consent via open house sign-in\n✅ \"Reply STOP\" included\n✅ Activity logged automatically\n✅ Business relationship established\n\n**Cost:** ~$0.0079 per SMS\n\n**Message Logic:**\nDifferent text if no agent vs has agent\n\n📚 https://www.twilio.com/docs/sms"
},
"typeVersion": 1
},
{
"id": "5f585c80-1984-4505-a408-08f697b9ef69",
"name": "Haftnotiz9",
"type": "n8n-nodes-base.stickyNote",
"position": [
272,
48
],
"parameters": {
"color": 5,
"width": 720,
"height": 1008,
"content": "## 📊 GOOGLE SHEETS STRUCTURE + Setup\n\n**Create ONE Google Sheet with 3 tabs:**\n\n### Tab 1: \"Lead Master Log\"\n**Column Headers (Row 1):**\nTimestamp | First Name | Last Name | Email | Phone | Property | Lead Score | Lead Status | Has Agent | Buyer Agreement | Qualifies for Follow-up | Source\nCOPY/PASTE:\nTimestamp\tFirst Name\tLast Name\tEmail\tPhone\tProperty\tLead Score\tLead Status\tHas Agent\tBuyer Agreement\tQualifies for Follow-up\tSource\n\n### Tab 2: \"Follow-up Activity\"\n**Column Headers (Row 1):**\nTimestamp | Contact Email | Contact Name | Activity Type | Message | Property | Success | Notes\n\nCOPY/PASTE:\nTimestamp\tContact Email\tContact Name\tActivity Type\tMessage\tProperty\tSuccess\tNotes\n\n### Tab 3: \"Errors\"\n**Column Headers (Row 1):**\nTimestamp | Guest Name | Property | Phone | Error Reason\n\nCOPY/PASTE:\n\nTimestamp\tGuest Name\tProperty\tPhone\tError Reason\n\n\n**TWO WAYS TO CONNECT:**\n\n### Option 1: Manual Selection (EASIER)\n1. Configure Google Sheets OAuth2 credential in n8n\n2. In each Google Sheets node, click \"Document\" dropdown\n3. Select your sheet from the list\n4. Click \"Sheet\" dropdown and select tab name\n5. Done! No IDs needed.\n\n### Option 2: Direct ID Method\n1. Open your Google Sheet\n2. Copy URL: `docs.google.com/spreadsheets/d/`**`SHEET_ID_HERE`**`/edit`\n3. Copy the ID between `/d/` and `/edit`\n4. Paste into \"Document ID\" field in nodes\n5. Type tab names manually\n\n💡 **Recommended:** Use Option 1 (Manual Selection) - it's easier and less error-prone!"
},
"typeVersion": 1
},
{
"id": "f28a2b08-52e1-43ab-bc68-c86f6e54ef15",
"name": "Haftnotiz10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
-1040
],
"parameters": {
"color": 4,
"width": 448,
"height": 784,
"content": "## ⏱️ 7-DAY FOLLOW-UP SEQUENCE\n\n**Only for qualified leads:**\n✅ No agent OR has agent but no buyer agreement\n\n**Timeline:**\n\n📅 **Day 0** (Immediate):\n- ✉️ Thank you email\n- 📊 Logged to all 3 CRMs\n- 📋 Master log updated\n\n📅 **Day 2** (48 hours):\n- 📱 SMS follow-up\n- 📊 Activity logged\n- Different message if no agent\n\n📅 **Day 5** (3 more days):\n- ✉️ Market update email\n- 📊 Activity logged\n- Includes consultation offer\n\n📅 **Day 7** (2 final days):\n- 📋 Task created in HubSpot\n- 🎯 Assigned to agent\n- 📊 Activity logged\n- Priority based on lead score\n\n**Total Touchpoints:** 4\n**Manual Work:** Zero\n**Conversion Rate:** 📈\n\n**Non-qualified leads get:**\n- Thank you email only\n- CRM sync\n- No automated follow-up"
},
"typeVersion": 1
},
{
"id": "9138414d-76a4-4d31-9c18-d91ba2f67404",
"name": "Haftnotiz11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
96
],
"parameters": {
"color": 3,
"width": 368,
"height": 928,
"content": "## 🔧 TROUBLESHOOTING\n\n**Common Issues:**\n\n🔴 **\"Invalid email\"**\n→ Check email format in SignSnap\n→ Enable validation in form\n\n🔴 **\"Authentication failed\"**\n→ Reconnect credentials\n→ Check token expiration\n→ Verify API permissions\n\n🔴 **\"Follow Up Boss 401 error\"**\n→ Verify API key in credential\n→ API key goes in Username field\n→ Leave Password blank\n\n🔴 **\"Monday.com board not found\"**\n→ Verify Board ID is correct\n→ Check API token permissions\n→ Ensure board exists\n\n🔴 **\"Twilio SMS failed\"**\n→ Verify phone number format: +15551234567\n→ Check Twilio account balance\n→ Verify phone number is SMS-capable\n\n🔴 **\"Google Sheets permission denied\"**\n→ Share sheet with service account\n→ Or use OAuth2 credential\n→ Verify Sheet ID is correct\n\n🔴 **\"Wait node not resuming\"**\n→ Ensure workflow is ACTIVE\n→ Check n8n queue is running\n\n**Testing Tips:**\n→ Test each CRM individually\n→ Check execution logs\n→ Verify all credentials\n→ Test with sample data\n\n**Need help?**\n→ n8n community forum\n→ CRM API documentation"
},
"typeVersion": 1
},
{
"id": "10db297e-9808-48bf-a230-eba11e372253",
"name": "Haftnotiz12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-64
],
"parameters": {
"color": 5,
"width": 400,
"height": 880,
"content": "## 💡 PRO TIPS & CUSTOMIZATION\n\n**Easy Customizations:**\n\n**1. Add More CRMs**\n- Salesforce: Use HTTP Request node\n- Pipedrive: Native node available\n- Zoho CRM: Native node available\n\n**2. Customize Email Content**\n- Edit email nodes directly\n- Add property photos\n- Include market stats\n- Add agent bio/headshot\n\n**3. Adjust Timing**\n- Change Wait node durations\n- Day 2 SMS → Day 1?\n- Test what works best\n\n**4. Lead Scoring Adjustments**\n- Modify scoring in Parse node\n- Add new criteria\n- Change threshold values\n\n**5. Add More Touchpoints**\n- Day 10: Final check-in\n- Day 30: Monthly market update\n- Clone Wait → Email → Log pattern\n\n**6. Error Handling**\n- Add Slack notifications\n- Email alerts for failures\n- Retry logic for API errors\n\n**7. Reporting Dashboard**\n- Connect Google Sheets to Data Studio\n- Create conversion funnel reports\n- Track touchpoint effectiveness"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"f8b4dbf0-111e-4324-bcdc-a168e15d79c3": {
"main": [
[
{
"node": "af2b0a12-b231-4e74-b988-51b3a909ab6d",
"type": "main",
"index": 0
},
{
"node": "37eea75a-1562-40b9-b5e8-b9f86b9dd804",
"type": "main",
"index": 0
}
],
[
{
"node": "5ca2bf5a-57a8-4972-9300-10b95c5d4a86",
"type": "main",
"index": 0
}
]
]
},
"819cec37-f9d3-4362-81d9-9e7153483b2a": {
"main": [
[
{
"node": "7df4434d-196d-465f-8f84-2c790e9fbe23",
"type": "main",
"index": 0
}
]
]
},
"3369be2a-2dd5-489c-9b75-90827583c441": {
"main": [
[
{
"node": "d4e56171-d817-479c-802e-dd6c9131fff3",
"type": "main",
"index": 0
}
]
]
},
"d4e56171-d817-479c-802e-dd6c9131fff3": {
"main": [
[
{
"node": "3540a701-4bdb-4e0f-ba3f-9e793294c47e",
"type": "main",
"index": 0
}
]
]
},
"5ca2bf5a-57a8-4972-9300-10b95c5d4a86": {
"main": [
[
{
"node": "23890819-d826-4c9a-9391-3755eada8049",
"type": "main",
"index": 0
}
]
]
},
"cd4c3e51-cdb3-4869-9357-89fd3113130d": {
"main": [
[
{
"node": "4bb2f67f-a640-4daf-850e-0c6ac7c206a1",
"type": "main",
"index": 0
}
]
]
},
"0d1452f4-6e0c-4e1b-b99b-847fc966afc0": {
"main": [
[
{
"node": "cd4c3e51-cdb3-4869-9357-89fd3113130d",
"type": "main",
"index": 0
}
]
]
},
"26b97759-43bd-4046-a118-8ea7df44471f": {
"main": [
[
{
"node": "c06c92c0-ddf0-490a-b846-b8ba32ba51fe",
"type": "main",
"index": 0
}
]
]
},
"af2b0a12-b231-4e74-b988-51b3a909ab6d": {
"main": [
[
{
"node": "0c10f03a-1bd4-42aa-b2cb-db1442bf603f",
"type": "main",
"index": 0
},
{
"node": "b7e1cdb0-507d-4ddd-8fb5-58f2b3fec618",
"type": "main",
"index": 0
},
{
"node": "26b97759-43bd-4046-a118-8ea7df44471f",
"type": "main",
"index": 0
}
]
]
},
"b84af1e1-e49f-4fa9-8ec2-1d3b6b9cbd81": {
"main": [
[
{
"node": "f8b4dbf0-111e-4324-bcdc-a168e15d79c3",
"type": "main",
"index": 0
}
]
]
},
"b7e1cdb0-507d-4ddd-8fb5-58f2b3fec618": {
"main": [
[
{
"node": "c06c92c0-ddf0-490a-b846-b8ba32ba51fe",
"type": "main",
"index": 0
}
]
]
},
"306d7ce6-9e54-49a0-8fbd-5ace7fab8d18": {
"main": [
[
{
"node": "b84af1e1-e49f-4fa9-8ec2-1d3b6b9cbd81",
"type": "main",
"index": 0
}
]
]
},
"c06c92c0-ddf0-490a-b846-b8ba32ba51fe": {
"main": [
[
{
"node": "819cec37-f9d3-4362-81d9-9e7153483b2a",
"type": "main",
"index": 0
}
],
[]
]
},
"7df4434d-196d-465f-8f84-2c790e9fbe23": {
"main": [
[
{
"node": "3369be2a-2dd5-489c-9b75-90827583c441",
"type": "main",
"index": 0
}
]
]
},
"0c10f03a-1bd4-42aa-b2cb-db1442bf603f": {
"main": [
[
{
"node": "c06c92c0-ddf0-490a-b846-b8ba32ba51fe",
"type": "main",
"index": 0
}
]
]
},
"3540a701-4bdb-4e0f-ba3f-9e793294c47e": {
"main": [
[
{
"node": "0d1452f4-6e0c-4e1b-b99b-847fc966afc0",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Kaden Reese
@kadenreeseI started automating with Python in 2020 and still use it in workflows when needed, but I’ve recently leaned into n8n for client-facing solutions. Lately I’ve focused on real estate automations, though I also build workflows for email, scraping, and other use cases. Currently Building 👇🏻
Diesen Workflow teilen