SignSnapHome, HubSpot, Twilio를 사용한 부동산 오픈하우스 후속 작업 자동화
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 32개의 노드를 포함합니다.주로 If, Set, Code, Wait, Twilio 등의 노드를 사용하며. SignSnapHome, HubSpot 및 Twilio를 통한 부동산 오픈하우스 후속 조치 자동화
사전 요구사항
- •HubSpot API Key
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "105694f414213a0eca348284005921253960bd1b0223294a4970522d0da53055"
},
"nodes": [
{
"id": "306d7ce6-9e54-49a0-8fbd-5ace7fab8d18",
"name": "웹훅: 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 데이터 파싱",
"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": "이메일 있음?",
"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": "감사 이메일 전송",
"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": "마스터 시트에 기록",
"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 연락처 생성/업데이트",
"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": "Follow Up Boss에 동기화",
"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": "Monday.com에 동기화",
"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": "후속 자격 있음?",
"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일 대기",
"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 후속 전송 (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 활동 기록",
"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일 대기",
"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": "시장 업데이트 이메일 전송 (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": "이메일 활동 기록",
"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일 대기",
"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": "후속 작업 생성 (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": "누락된 이메일 기록",
"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": "오류 시트에 기록",
"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": "스티키 노트",
"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": "스티키 노트1",
"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": "스티키 노트2",
"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": "스티키 노트3",
"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": "스티키 노트4",
"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": "스티키 노트5",
"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": "스티키 노트6",
"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": "스티키 노트7",
"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": "스티키 노트8",
"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": "스티키 노트9",
"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": "스티키 노트10",
"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": "스티키 노트11",
"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": "스티키 노트12",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
SignSnapHome, Discord 및 Twilio를 사용한 오픈하우스 잠재 고객 관리 자동화
SignSnapHome, Discord 및 Twilio를 사용한 오픈하우스 리드 관리 자동화
If
Code
Twilio
+
If
Code
Twilio
13 노드Kaden Reese
콘텐츠 제작
코치 온보딩 및 교육 자동화
문자 메시지, Twilio 및 Google 시트를 사용한 30일 코칭 트레이닝 자동화
If
Set
Code
+
If
Set
Code
36 노드Ronnie Craig
콘텐츠 제작
fraud 방지 잠재 고객 캡처 및 성장 시스템
AI 평점, 테이블 추적, 다중 채널 알림을 통해防欺诈 잠재 고객을捕获하고 키우습니다.
If
Set
Code
+
If
Set
Code
28 노드Jitesh Dugar
콘텐츠 제작
09 - 잠재 리드 프로필 강화기
잠재 고객 정보 보강 및 개인화 아웃리치 자동화: HubSpot, Phantombuster 및 GPT
If
Set
Code
+
If
Set
Code
30 노드Avkash Kakdiya
리드 육성
AI 기반 동영상 제작 및 Instagram, TikTok, YouTube 업로드
클라우드 드라이브 기반 AI 기반 비디오 제작 및 Instagram, TikTok, YouTube 업로드
If
Set
Code
+
If
Set
Code
53 노드DevCode Journey
콘텐츠 제작
트렌드 스프레드시트에서 SEO 콘텐츠를 스토리지(SharePoint/Drive/Dropbox)로 생성
GPT-4o, FAL AI 및 다중 저장소 지원을 사용하여 트렌드에서 SEO 콘텐츠 자동 생성
If
Set
Code
+
If
Set
Code
47 노드plemeo
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수32
카테고리2
노드 유형12
저자
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 👇🏻
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유