From 1ed332280f3e2e90f306d1455d6a9026dff752c9 Mon Sep 17 00:00:00 2001 From: nusquama Date: Wed, 12 Nov 2025 19:55:00 +0100 Subject: [PATCH] creation --- .../readme-9256.md | 460 ++++++++++++++++++ 1 file changed, 460 insertions(+) create mode 100644 workflows/Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio-9256/readme-9256.md diff --git a/workflows/Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio-9256/readme-9256.md b/workflows/Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio-9256/readme-9256.md new file mode 100644 index 000000000..ccb24dc7a --- /dev/null +++ b/workflows/Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio-9256/readme-9256.md @@ -0,0 +1,460 @@ +Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio + +https://n8nworkflows.xyz/workflows/automate-real-estate-open-house-follow-ups-with-signsnaphome--hubspot--and-twilio-9256 + + +# Automate Real Estate Open House Follow-ups with SignSnapHome, HubSpot, and Twilio + +### 1. Workflow Overview + +This workflow automates the follow-up process for real estate open house visitors captured via SignSnap Home. It integrates lead data into multiple CRMs (HubSpot, Follow Up Boss, Monday.com), logs activities in Google Sheets, and executes a timed 7-day communication sequence using emails and SMS powered by Twilio. The workflow is designed to qualify leads based on agent relationships and buyer agreements to optimize follow-up efforts and ensure compliance. + +**Logical Blocks:** + +- **1.1 Input Reception & Data Parsing:** Receives webhook data from SignSnap Home, extracts, enriches, and scores lead information. +- **1.2 Validation & Basic Follow-up:** Checks for valid email, sends an immediate thank-you email, logs leads to Google Sheets and CRMs. +- **1.3 Lead Qualification:** Determines which leads qualify for the full follow-up sequence based on agent/buyer agreement status. +- **1.4 Automated Follow-up Sequence:** For qualified leads, schedules and sends SMS on Day 2, market update email on Day 5, and creates a HubSpot task on Day 7. +- **1.5 Error Handling:** Logs leads missing emails into a dedicated Google Sheets error tab for review. +- **1.6 CRM Synchronization:** Updates or creates contacts in HubSpot, Follow Up Boss, and Monday.com with relevant lead data and notes. + +--- + +### 2. Block-by-Block Analysis + +#### 2.1 Input Reception & Data Parsing + +- **Overview:** +Receives HTTP POST requests from SignSnap Home webhook, extracts visitor information, calculates lead score and status, and prepares enriched data for downstream processing. + +- **Nodes Involved:** + - Webhook: SignSnap Home + - Parse SignSnap Data + +- **Node Details:** + + - **Webhook: SignSnap Home** + - **Type & Role:** Webhook node that triggers workflow on receiving POST data from SignSnap Home. + - **Configuration:** + - HTTP Method: POST + - Path: `signsnap-drip-crm` + - **Input/Output:** Receives raw JSON payload containing open house visitor data. Outputs raw data to next node. + - **Failure Cases:** Missed or malformed POST requests, webhook URL misconfiguration. + - **Notes:** The webhook URL must be configured in SignSnap Home integration settings. + + - **Parse SignSnap Data** + - **Type & Role:** Code node that parses and enriches input data. + - **Configuration:** Custom JavaScript processes input JSON to extract fields such as email, names, phone, property address, visit date, agent status, rating, buyer agreement. + - Calculates a lead score (0-100) based on conditions: no agent +30, high rating +20, low rating -20, no buyer agreement +10. + - Assigns lead status: HOT, WARM, COLD. + - Determines qualification for follow-up sequence. + - Constructs a notes string summarizing key info. + - **Expressions/Variables:** Uses `$input.all()`, `$json` for data extraction and calculations. + - **Input/Output:** Takes webhook JSON, outputs enriched JSON with lead details and computed fields. + - **Failure Cases:** Missing or malformed fields, unexpected data types causing parsing errors. + +--- + +#### 2.2 Validation & Basic Follow-up + +- **Overview:** +Checks if the lead has a valid email; if yes, sends a thank-you email, logs lead to Google Sheets, and syncs with CRMs. If no email, logs the missing email error. + +- **Nodes Involved:** + - Has Email? (IF) + - Send Thank You Email + - Log to Master Sheet + - Create/Update HubSpot Contact + - Sync to Follow Up Boss + - Sync to Monday.com + - Log Missing Email + - Log to Error Sheet + +- **Node Details:** + + - **Has Email?** + - **Type & Role:** IF node verifying presence of a non-empty email field. + - **Configuration:** Checks `$json.email` is not empty. + - **Input/Output:** + - True branch leads to email sending and CRM sync. + - False branch leads to logging missing email error. + - **Failure Cases:** Email field missing or empty. + + - **Send Thank You Email** + - **Type & Role:** Email Send node sending immediate thank-you email to visitor. + - **Configuration:** + - To: lead email + - Subject: "Thank You for Visiting [Property]" + - HTML body includes personalized greeting with first name and property address. + - From email must be replaced with a valid sender address. + - **Failure Cases:** SMTP auth errors, invalid email format, blocked emails. + + - **Log to Master Sheet** + - **Type & Role:** Google Sheets node appending lead info to "Lead Master Log" tab. + - **Configuration:** + - Appends columns: Email, Phone, Property, Names, Lead Score, Status, Follow-up qualification, Timestamp, etc. + - Uses Google Sheets service account OAuth2 credentials. + - Document and sheet IDs configured with target spreadsheet and tab. + - **Failure Cases:** Authentication errors, sheet permissions, rate limits. + + - **Create/Update HubSpot Contact** + - **Type & Role:** HubSpot node to create or update contact record. + - **Configuration:** + - Uses HubSpot API token authentication. + - Sets contact properties: email, first name, last name, phone, notes. + - Lifecycle stage forced to 'lead'. + - **Failure Cases:** API token invalid, rate limits, contact conflicts. + + - **Sync to Follow Up Boss** + - **Type & Role:** HTTP Request node posts lead data to Follow Up Boss API. + - **Configuration:** + - Basic Auth with API key as username, blank password. + - Body includes email, names, phone, source, notes. + - API endpoint: `https://api.followupboss.com/v1/people` (POST). + - **Failure Cases:** Auth failure, invalid API key, network errors. + + - **Sync to Monday.com** + - **Type & Role:** Monday.com node creating a new board item with lead info. + - **Configuration:** + - Board ID and Group ID configured for "Open House Leads". + - Item name combines first name, last name, and property address. + - Requires Monday.com API token credentials. + - **Failure Cases:** Invalid board ID, API token issues, permission problems. + + - **Log Missing Email** + - **Type & Role:** Set node to create error record with reason "No email" and guest name. + - **Configuration:** Assigns error_reason and guest_name variables. + - **Failure Cases:** None intrinsic, depends on input. + + - **Log to Error Sheet** + - **Type & Role:** Google Sheets node appending error information to "Errors" tab. + - **Configuration:** Columns: Timestamp, Guest Name, Error Reason. + - **Failure Cases:** Similar to other Google Sheets nodes. + +--- + +#### 2.3 Lead Qualification + +- **Overview:** +Determines whether the lead qualifies for the full 7-day follow-up sequence based on agent relationship and buyer agreement. + +- **Nodes Involved:** + - Qualifies for Follow-up? (IF) + +- **Node Details:** + + - **Qualifies for Follow-up?** + - **Type & Role:** IF node evaluating boolean `qualifiesForFollowUp` variable. + - **Configuration:** True if visitor has no agent or has agent but no signed buyer agreement. + - **Input/Output:** + - True branch proceeds to the follow-up sequence nodes. + - False branch ends workflow after CRM sync (no further follow-ups). + - **Failure Cases:** Incorrect or missing boolean value. + +--- + +#### 2.4 Automated Follow-up Sequence + +- **Overview:** +Executes a timed 7-day follow-up sequence for qualified leads including SMS, email, and task creation. + +- **Nodes Involved:** + - Wait 2 Days + - Send SMS Follow-up (Day 2) + - Log SMS Activity + - Wait 3 More Days + - Send Market Update Email (Day 5) + - Log Email Activity + - Wait 2 Final Days + - Create Follow-up Task (Day 7) + +- **Node Details:** + + - **Wait 2 Days** + - **Type & Role:** Wait node delaying execution 2 days after initial trigger. + - **Failure Cases:** Workflow must be active; wait state persistence. + + - **Send SMS Follow-up (Day 2)** + - **Type & Role:** Twilio node sending personalized SMS to lead’s phone number. + - **Configuration:** + - From: Twilio phone number (configured in node). + - Message includes personalized greeting, property name, invitation to reply, and STOP instructions for compliance. + - Uses Twilio credentials (SID, Auth Token). + - **Failure Cases:** Invalid phone number format, Twilio API errors, insufficient balance. + + - **Log SMS Activity** + - **Type & Role:** Google Sheets node appending SMS activity log to "Follow-up Activity" tab. + - **Columns:** Timestamp, Contact Email, Name, Activity Type (SMS), Message ("Day 2 SMS"), Property, Notes. + - **Failure Cases:** Google Sheets permissions, API limits. + + - **Wait 3 More Days** + - **Type & Role:** Wait node delaying another 3 days before next email. + - **Failure Cases:** Same as other wait nodes. + + - **Send Market Update Email (Day 5)** + - **Type & Role:** Email Send node sending a market update email. + - **Configuration:** + - Subject: "Market Update" + - Personalized greeting by first name. + - Placeholder for custom message and sender name to be edited. + - From email to be configured. + - **Failure Cases:** SMTP issues, invalid email. + + - **Log Email Activity** + - **Type & Role:** Google Sheets node logging email activity similar to SMS log. + - **Failure Cases:** Same as above. + + - **Wait 2 Final Days** + - **Type & Role:** Wait node delaying 2 days to complete 7-day sequence. + - **Failure Cases:** As above. + + - **Create Follow-up Task (Day 7)** + - **Type & Role:** HubSpot node creating a task associated with the contact for agent follow-up. + - **Configuration:** Uses HubSpot app token credentials. + - **Failure Cases:** API errors, permission issues. + +--- + +#### 2.5 Error Handling + +- **Overview:** +Captures and logs leads that do not have an email address for manual review. + +- **Nodes Involved:** + - Log Missing Email + - Log to Error Sheet + +- **Node Details:** +Covered above in Validation block. + +--- + +#### 2.6 CRM Synchronization + +- **Overview:** +Syncs lead data to three CRMs: HubSpot, Follow Up Boss, and Monday.com. + +- **Nodes Involved:** + - Create/Update HubSpot Contact + - Sync to Follow Up Boss + - Sync to Monday.com + +- **Node Details:** +Covered above in Validation block. + +--- + +### 3. Summary Table + +| Node Name | Node Type | Functional Role | Input Node(s) | Output Node(s) | Sticky Note | +|------------------------------|-----------------------|-----------------------------------------|----------------------------|---------------------------------------|-----------------------------------------------------------------------------------------------| +| Webhook: SignSnap Home | Webhook | Receive POST data from SignSnap Home | - | Parse SignSnap Data | See Sticky Note1: webhook trigger details | +| Parse SignSnap Data | Code | Parse and enrich lead data | Webhook: SignSnap Home | Has Email? | See Sticky Note2: data processing & lead scoring logic | +| Has Email? | IF | Check for valid email | Parse SignSnap Data | Log to Master Sheet, Send Thank You Email, or Log Missing Email | | +| Send Thank You Email | Email Send | Send immediate thank-you email | Has Email? (true) | - | | +| Log to Master Sheet | Google Sheets | Log lead info in master spreadsheet | Has Email? (true) | Create/Update HubSpot Contact | See Sticky Note9: Google Sheets structure and setup | +| Create/Update HubSpot Contact | HubSpot | Create or update contact in HubSpot | Log to Master Sheet | Qualifies for Follow-up? | See Sticky Note3: HubSpot integration setup | +| Sync to Follow Up Boss | HTTP Request | Sync lead to Follow Up Boss CRM | Log to Master Sheet | Qualifies for Follow-up? | See Sticky Note4: Follow Up Boss API setup | +| Sync to Monday.com | Monday.com | Create lead item in Monday.com board | Log to Master Sheet | Qualifies for Follow-up? | See Sticky Note5: Monday.com board setup | +| Log Missing Email | Set | Prepare error data for missing email | Has Email? (false) | Log to Error Sheet | | +| Log to Error Sheet | Google Sheets | Log leads missing email in error tab | Log Missing Email | - | See Sticky Note9: Google Sheets structure and setup | +| Qualifies for Follow-up? | IF | Determine if lead qualifies for follow-up| Create/Update HubSpot Contact, Sync to Follow Up Boss, Sync to Monday.com | Wait 2 Days (true), end (false) | See Sticky Note6: lead qualification logic | +| Wait 2 Days | Wait | Pause 2 days before sending SMS follow-up| Qualifies for Follow-up? (true) | Send SMS Follow-up (Day 2) | See Sticky Note10: 7-day follow-up sequence overview | +| Send SMS Follow-up (Day 2) | Twilio | Send Day 2 SMS follow-up | Wait 2 Days | Log SMS Activity | See Sticky Note8: Twilio SMS setup and compliance | +| Log SMS Activity | Google Sheets | Log SMS activity | Send SMS Follow-up (Day 2) | Wait 3 More Days | See Sticky Note9: Google Sheets structure and setup | +| Wait 3 More Days | Wait | Pause 3 days before sending market update email| Log SMS Activity | Send Market Update Email (Day 5) | See Sticky Note10: 7-day follow-up sequence overview | +| Send Market Update Email (Day 5)| Email Send | Send market update email | Wait 3 More Days | Log Email Activity | See Sticky Note10: 7-day follow-up sequence overview | +| Log Email Activity | Google Sheets | Log email activity | Send Market Update Email (Day 5) | Wait 2 Final Days | See Sticky Note9: Google Sheets structure and setup | +| Wait 2 Final Days | Wait | Pause 2 final days before creating task | Log Email Activity | Create Follow-up Task (Day 7) | See Sticky Note10: 7-day follow-up sequence overview | +| Create Follow-up Task (Day 7) | HubSpot | Create follow-up task in HubSpot | Wait 2 Final Days | - | See Sticky Note3: HubSpot integration setup | +| Sticky Note | Sticky Note | Setup instructions | - | - | Contains detailed setup and integration guidance | +| Sticky Note1 | Sticky Note | Webhook trigger description | - | - | Explains webhook URL setup and trigger | +| Sticky Note2 | Sticky Note | Data processing details | - | - | Details lead scoring and enrichment logic | +| Sticky Note3 | Sticky Note | HubSpot integration description | - | - | Explains HubSpot node setup and behavior | +| Sticky Note4 | Sticky Note | Follow Up Boss API setup instructions | - | - | Details API key setup and custom fields | +| Sticky Note5 | Sticky Note | Monday.com board setup instructions | - | - | Explains board and API token setup | +| Sticky Note6 | Sticky Note | Lead qualification logic | - | - | Explains qualification criteria and workflow branches | +| Sticky Note7 | Sticky Note | General node removal instructions | - | - | Advises on deleting unused nodes | +| Sticky Note8 | Sticky Note | Twilio SMS setup and compliance | - | - | Details SMS requirements and TCPA compliance | +| Sticky Note9 | Sticky Note | Google Sheets structure and setup | - | - | Detailed instructions for Google Sheets tabs and connection methods | +| Sticky Note10 | Sticky Note | 7-day follow-up sequence overview | - | - | Timeline and steps of the automated follow-up sequence | +| Sticky Note11 | Sticky Note | Troubleshooting common errors | - | - | Lists frequent issues and fixes | +| Sticky Note12 | Sticky Note | Pro tips and customization ideas | - | - | Suggestions for extending and customizing workflow | + +--- + +### 4. Reproducing the Workflow from Scratch + +1. **Create Webhook Node** + - Type: Webhook + - Name: "Webhook: SignSnap Home" + - HTTP Method: POST + - Path: `signsnap-drip-crm` + - Purpose: Receive POST requests from SignSnap Home open house sign-ins. + +2. **Add Code Node to Parse Input** + - Type: Code + - Name: "Parse SignSnap Data" + - JavaScript: Extract fields (email, first_name, last_name, phone_number, openHouseTitle, submissionTimestamp, agent status, rating, buyer agreement). + - Calculate leadScore with given rules (base 50, +30 no agent, +20 rating≥4, -20 rating≤2, +10 no buyer agreement). + - Determine leadStatus (HOT ≥70, WARM ≥50, else COLD). + - Set qualifiesForFollowUp boolean accordingly. + - Output enriched JSON with all fields plus notes summary. + +3. **Add IF Node to Check Email Presence** + - Type: IF + - Name: "Has Email?" + - Condition: `$json.email` is not empty. + +4. **On True Branch: Send Thank You Email Node** + - Type: Email Send + - Name: "Send Thank You Email" + - To: `{{$json.email}}` + - From: Your verified sender email (e.g., YOUR_EMAIL@DOMAIN.COM) + - Subject: "Thank You for Visiting {{$json.propertyAddress}}!" + - HTML Body: Personalized greeting with first name and property address. + +5. **Log Lead to Google Sheets Master Log** + - Type: Google Sheets + - Name: "Log to Master Sheet" + - Operation: Append + - Sheet: "Lead Master Log" tab in your configured Google Sheet + - Map columns: Email, Phone, Property, Last Name, Timestamp, First Name, Lead Score, Lead Status, Qualifies for Follow-up, etc. + - Use Google Sheets OAuth2 credentials with access to the sheet. + +6. **Sync Lead to HubSpot** + - Type: HubSpot + - Name: "Create/Update HubSpot Contact" + - Authentication: OAuth2 or API Token + - Email: `{{$json.email}}` + - Additional fields: firstName, lastName, phoneNumber, membershipNote (notes) + - Lifecycle stage set to 'lead'. + +7. **Sync Lead to Follow Up Boss** + - Type: HTTP Request + - Name: "Sync to Follow Up Boss" + - URL: `https://api.followupboss.com/v1/people` + - Method: POST + - Authentication: HTTP Basic Auth + - Username: Follow Up Boss API Key + - Password: blank + - Body Parameters: email, firstName, lastName, phones[0].value (phone), phones[0].type mobile, source, notes. + +8. **Sync Lead to Monday.com** + - Type: Monday.com + - Name: "Sync to Monday.com" + - Board ID: Your Monday.com board ID for leads + - Group ID: e.g., "topics" + - Item Name: `{{$json.firstname}} {{$json.lastname}} - {{$json.propertyAddress}}` + - Authentication: Monday.com API token. + +9. **On False Branch of Has Email? Node:** + - Add Set node "Log Missing Email" to assign `error_reason` = "No email" and `guest_name` = `{{$json.firstname}} {{$json.lastname}}`. + - Connect to Google Sheets node "Log to Error Sheet" appending to "Errors" tab with Timestamp, Guest Name, Error Reason. + +10. **Add IF Node to Check Follow-up Qualification** + - Type: IF + - Name: "Qualifies for Follow-up?" + - Condition: `{{$json.qualifiesForFollowUp}}` is true. + +11. **On True Branch, Add Wait Node (2 Days)** + - Type: Wait + - Name: "Wait 2 Days" + - Amount: 2 days. + +12. **Send SMS Follow-up via Twilio** + - Type: Twilio + - Name: "Send SMS Follow-up (Day 2)" + - To: `{{$json.phone}}` + - From: Your Twilio SMS-enabled phone number + - Message: Personalized SMS including first name, property address, question prompt, STOP instruction. + - Setup Twilio credentials with SID and Auth Token. + +13. **Log SMS Activity to Google Sheets** + - Type: Google Sheets + - Name: "Log SMS Activity" + - Append to "Follow-up Activity" tab + - Map columns for timestamp, contact email, name, activity type ("SMS"), message ("Day 2 SMS"), property, notes. + +14. **Add Wait Node (3 More Days)** + - Type: Wait + - Name: "Wait 3 More Days" + - Amount: 3 days. + +15. **Send Market Update Email** + - Type: Email Send + - Name: "Send Market Update Email (Day 5)" + - To: `{{$json.email}}` + - Subject: "Market Update" + - HTML Body: Personalized greeting with customizable message and sender name. + - From: Your verified sender email. + +16. **Log Email Activity** + - Type: Google Sheets + - Name: "Log Email Activity" + - Append to "Follow-up Activity" tab with appropriate columns as for SMS log. + +17. **Add Wait Node (2 Final Days)** + - Type: Wait + - Name: "Wait 2 Final Days" + - Amount: 2 days. + +18. **Create Follow-up Task in HubSpot** + - Type: HubSpot + - Name: "Create Follow-up Task (Day 7)" + - Resource: Task + - Auth: HubSpot credentials + - Configure task assignment and priority as needed. + +19. **On False Branch of Qualifies for Follow-up? Node:** + - No further action; workflow ends after CRM sync. + +20. **Activate Workflow** + - Ensure the workflow is active/running in n8n. + +21. **Configure Credentials:** + - HubSpot OAuth2 or API Token + - Follow Up Boss API Key (HTTP Basic Auth) + - Monday.com API Token + - Twilio SID & Auth Token + - SMTP email credentials + - Google Sheets OAuth2 or Service Account with access to the spreadsheet. + +22. **Configure Google Sheets:** + - Create a Google Sheet with 3 tabs: + - "Lead Master Log" + - "Follow-up Activity" + - "Errors" + - Add column headers exactly as specified in Sticky Note9. + +23. **Configure Webhook URL in SignSnap Home:** + - Copy webhook URL from "Webhook: SignSnap Home" node. + - Paste into SignSnapHome.com → Settings → Integrations for open house sign-ins. + +24. **Update placeholders:** + - YOUR_EMAIL@DOMAIN.COM (email nodes) + - YOUR_TWILIO_PHONE_NUMBER (Twilio node) + - YOUR_MONDAY_BOARD_ID (Monday.com node) + - Google Sheet IDs or use manual selection in Google Sheets nodes. + +--- + +### 5. General Notes & Resources + +| Note Content | Context or Link | +|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| +| Enhanced Multi-CRM + Auto Follow-up Workflow with SignSnap, HubSpot, Follow Up Boss, Monday.com, Twilio | Workflow purpose and setup overview (Sticky Note) | +| Webhook URL must be configured in SignSnap Home integration settings | SignSnapHome.com | +| Lead scoring logic: base 50, +30 no agent, +20 rating≥4, -20 rating≤2, +10 no buyer agreement | See Sticky Note2 | +| HubSpot OAuth2 or API Token required for contact creation/update | HubSpot API documentation | +| Follow Up Boss API key is used as HTTP Basic Auth username, password left blank | https://docs.followupboss.com | +| Monday.com board setup: create board with columns, get board ID, generate API token | https://developer.monday.com | +| Twilio SMS compliance: includes STOP instructions, consent via open house sign-in, activity logged | https://www.twilio.com/docs/sms | +| Google Sheets manual selection recommended for easier setup | See Sticky Note9 | +| 7-day follow-up sequence timeline: Day 0 thank-you email, Day 2 SMS, Day 5 market update email, Day 7 HubSpot task | See Sticky Note10 | +| Troubleshooting tips: check credentials, verify API keys, validate email/phone formats, enable workflow | See Sticky Note11 | +| Customization ideas: add more CRMs, customize content, adjust timing, add error alerts, reporting | See Sticky Note12 | + +--- + +This document provides a comprehensive understanding of the workflow structure, logic, configurations, and setup instructions to enable reproduction, modification, and troubleshooting for advanced users and AI agents. \ No newline at end of file