Automatización del seguimiento de días de puertas abiertas inmobiliarias con SignSnapHome, HubSpot y Twilio

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 32 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, Twilio. Automatizar el seguimiento de días de puertas abiertas inmobiliarias con SignSnapHome, HubSpot y Twilio

Requisitos previos
  • Clave de API de HubSpot
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "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": "Analizar Datos de 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": "¿Tiene Correo Electrónico?",
      "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": "Enviar Correo de Agradecimiento",
      "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": "Registrar en Hoja Maestra",
      "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": "Crear/Actualizar Contacto 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": "Sincronizar con 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": "Sincronizar con 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": "¿Califica para Seguimiento?",
      "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": "Esperar 2 Días",
      "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": "Enviar SMS de Seguimiento (Día 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": "Registrar Actividad de 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": "Esperar 3 Días Más",
      "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": "Enviar Correo de Actualización de Mercado (Día 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": "Registrar Actividad de Correo",
      "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": "Esperar 2 Días Finales",
      "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": "Crear Tarea de Seguimiento (Día 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": "Registrar Correo Faltante",
      "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": "Registrar en Hoja de Errores",
      "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": "Nota Adhesiva",
      "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": "Nota Adhesiva1",
      "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": "Nota Adhesiva2",
      "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": "Nota Adhesiva3",
      "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": "Nota Adhesiva4",
      "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": "Nota Adhesiva5",
      "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": "Nota Adhesiva6",
      "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": "Nota Adhesiva7",
      "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": "Nota Adhesiva8",
      "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": "Nota Adhesiva9",
      "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": "Nota Adhesiva10",
      "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": "Nota Adhesiva11",
      "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": "Nota Adhesiva12",
      "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos32
Categoría2
Tipos de nodos12
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Kaden Reese

Kaden Reese

@kadenreese

I 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 👇🏻

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34