{
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "form-submission",
        "options": {}
      },
      "id": "9ea65e01-3766-4996-907c-ae16a0be6fe5",
      "name": "Form Submission Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -7792,
        1376
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "email",
              "value": "={{ $json.body.email }}",
              "type": "string"
            },
            {
              "id": "id-4",
              "name": "formType",
              "value": "={{ $json.body.formType }}",
              "type": "string"
            },
            {
              "id": "id-5",
              "name": "pagesVisited",
              "value": "={{ $json.body.pagesVisited }}",
              "type": "array"
            },
            {
              "id": "id-6",
              "name": "timeOnSite",
              "value": "={{ $json.body.timeOnSite }}",
              "type": "number"
            },
            {
              "id": "id-7",
              "name": "sessions",
              "value": "={{ $json.body.sessions }}",
              "type": "number"
            }
          ]
        },
        "options": {}
      },
      "id": "2d0ac364-43db-4f26-a3c7-38f21fdbd94a",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -7568,
        1376
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.limadata.com/api/v1/enrich/person",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "LIMADATA_API"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"email\": \"={{ $('Workflow Configuration').item.json.email }}\"\n}",
        "options": {}
      },
      "id": "f6b237db-6ed0-48ea-b505-261b87cdb32a",
      "name": "Limadata Enrichment",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -6896,
        1376
      ]
    },
    {
      "parameters": {
        "jsCode": "const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n  let score = 0;\n  \n  // Get behavioral data from Workflow Configuration node\n  const workflowData = $('Workflow Configuration').first().json;\n  const pagesVisited = workflowData.pagesVisited || [];\n  const timeOnSite = workflowData.timeOnSite || 0;\n  const sessions = workflowData.sessions || 1;\n  const formType = workflowData.formType || '';\n  \n  // Pages visited scoring (max 30 points)\n  score += Math.min(pagesVisited.length * 3, 30);\n  \n  // Time on site scoring (max 20 points)\n  score += Math.min(Math.floor(timeOnSite / 60), 20);\n  \n  // Session frequency (max 15 points)\n  score += Math.min(sessions * 5, 15);\n  \n  // Form type scoring (max 20 points)\n  if (formType === 'demo') score += 20;\n  else if (formType === 'pricing') score += 15;\n  else if (formType === 'content') score += 10;\n  else if (formType === 'newsletter') score += 5;\n  \n  // Enrichment data scoring (max 15 points)\n  const seniority = item.json?.person?.employment?.seniority || '';\n  const companySize = item.json?.company?.employees?.employee_count || 0;\n  \n  let seniorityScore = 0;\n  if (seniority.match(/owner|partner|founder|ceo|cto|cfo|chief/i)) seniorityScore = 10;\n  else if (seniority.match(/director|vp|head/i)) seniorityScore = 7;\n  else if (seniority.match(/manager|lead/i)) seniorityScore = 5;\n  \n  let companySizeScore = 0;\n  if (companySize > 500) companySizeScore = 5;\n  else if (companySize > 100) companySizeScore = 3;\n  else if (companySize > 50) companySizeScore = 1;\n  \n  score += seniorityScore + companySizeScore;\n  results.push({\n    json: {\n      ...item.json,\n      email: workflowData.email,\n      name: item.json?.person?.name || 'Unknown',\n      company: item.json?.company?.name || item.json?.person?.employment?.company_name || 'Unknown',\n      jobTitle: item.json?.person?.employment?.title || 'Unknown',\n      linkedinUrl: item.json?.person?.linkedin?.url || '',\n      companyWebsite: item.json?.company?.website || '',\n      seniority: seniority,\n      companySize: companySize,\n      industry: item.json?.company?.categories?.industry || '',\n      intentScore: Math.min(score, 100),\n      scoringBreakdown: {\n        pages: Math.min(pagesVisited.length * 3, 30),\n        time: Math.min(Math.floor(timeOnSite / 60), 20),\n        sessions: Math.min(sessions * 5, 15),\n        formType: formType === 'demo' ? 20 : formType === 'pricing' ? 15 : formType === 'content' ? 10 : 5,\n        enrichment: seniorityScore + companySizeScore\n      }\n    }\n  });\n}\n\nreturn results;"
      },
      "id": "4641fd0f-c773-4dd4-a322-f158dace898f",
      "name": "Calculate Intent Score",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -6672,
        1376
      ]
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 3
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intentScore }}",
                    "rightValue": 75,
                    "operator": {
                      "type": "number",
                      "operation": "gte"
                    },
                    "id": "2dc19dc0-8953-4936-b337-eb5dc4aeede7"
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "High Intent (75+)"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 3
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intentScore }}",
                    "rightValue": 40,
                    "operator": {
                      "type": "number",
                      "operation": "gte"
                    },
                    "id": "ed3ccb87-d07e-4f0a-b958-b0fc94ddcce5"
                  },
                  {
                    "leftValue": "={{ $json.intentScore }}",
                    "rightValue": 75,
                    "operator": {
                      "type": "number",
                      "operation": "lt"
                    },
                    "id": "2344b598-c5a8-4c8e-af9c-5bc71d8b2d8b"
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Medium Intent (40-74)"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 3
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intentScore }}",
                    "rightValue": 40,
                    "operator": {
                      "type": "number",
                      "operation": "lt"
                    },
                    "id": "57737dd6-38b6-4797-9286-f94e02fdbead"
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Low Intent (<40)"
            }
          ]
        },
        "options": {}
      },
      "id": "bb666110-bde7-461f-b0de-4c19eb81d54c",
      "name": "Route by Intent Score",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.4,
      "position": [
        -6448,
        1360
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "SLACK_CHANNEL_ID"
        },
        "text": "=*HIGH INTENT LEAD ALERT*\n\n\ud83d\udc64 *{{ $json.name }}*\n\ud83d\udce7 {{ $json.email }}\n\ud83c\udfe2 {{ $json.company }}\n\ud83d\udcbc {{ $json.jobTitle }}\n\ud83d\udcca Intent Score: *{{ $json.intentScore }}/100*\n\n*Scoring Breakdown:*\n\u2022 Pages Visited: {{ $json.scoringBreakdown.pages }} pts\n\u2022 Time on Site: {{ $json.scoringBreakdown.time }} pts\n\u2022 Sessions: {{ $json.scoringBreakdown.sessions }} pts\n\u2022 Form Type: {{ $json.scoringBreakdown.formType }} pts\n\u2022 Enrichment: {{ $json.scoringBreakdown.enrichment }} pts\n\n*Action Required:* Reach out within 2 hours\nLinkedIn: {{ $json.linkedinUrl }}",
        "otherOptions": {}
      },
      "id": "57596709-be34-4c5d-a6a2-caa64e56155e",
      "name": "Alert SDR via Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.4,
      "position": [
        -6224,
        992
      ]
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "companyName": "={{ $json.company }}",
          "customPropertiesUi": {
            "customPropertiesValues": [
              {
                "property": "lead_score",
                "value": "={{ $json.intentScore }}"
              },
              {
                "property": "lead_stage",
                "value": "Sales Ready"
              },
              {
                "property": "seniority",
                "value": "={{ $json.seniority }}"
              },
              {
                "property": "company_size",
                "value": "={{ $json.companySize }}"
              },
              {
                "property": "industry",
                "value": "={{ $json.industry }}"
              }
            ]
          },
          "firstName": "={{ $json.name ? $json.name.split(' ')[0] : '' }}",
          "jobTitle": "={{ $json.jobTitle }}",
          "lastName": "={{ $json.name ? $json.name.split(' ').slice(1).join(' ') : '' }}",
          "linkedinUrl": "={{ $json.linkedinUrl }}",
          "websiteUrl": "={{ $json.companyWebsite }}"
        },
        "options": {}
      },
      "id": "8cfe9d4b-c0f4-48cf-8655-e0ad63e31fb5",
      "name": "Create HubSpot Contact - High Intent",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        -6224,
        1184
      ],
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "lead",
        "campaignId": "LEMLIST_CAMPAIGN_ID",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "companyName": "={{ $json.company }}",
          "firstName": "={{ $json.name ? $json.name.split(' ')[0] : '' }}",
          "lastName": "={{ $json.name ? $json.name.split(' ').slice(1).join(' ') : '' }}"
        }
      },
      "id": "b39ec58d-6fa3-4e95-b626-7fd79a5a0f22",
      "name": "Send Personalized SDR Email",
      "type": "n8n-nodes-base.lemlist",
      "typeVersion": 2,
      "position": [
        -6000,
        1184
      ]
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "companyName": "={{ $json.company }}",
          "customPropertiesUi": {
            "customPropertiesValues": [
              {
                "property": "lead_score",
                "value": "={{ $json.intentScore }}"
              },
              {
                "property": "lead_stage",
                "value": "MQL"
              },
              {
                "property": "seniority",
                "value": "={{ $json.seniority }}"
              },
              {
                "property": "company_size",
                "value": "={{ $json.companySize }}"
              }
            ]
          },
          "firstName": "={{ $json.name ? $json.name.split(' ')[0] : '' }}",
          "jobTitle": "={{ $json.jobTitle }}",
          "lastName": "={{ $json.name ? $json.name.split(' ').slice(1).join(' ') : '' }}",
          "linkedinUrl": "={{ $json.linkedinUrl }}"
        },
        "options": {}
      },
      "id": "d1f6413a-c9ef-4122-aa93-2fa196ac5614",
      "name": "Create HubSpot Contact - Medium Intent",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        -6224,
        1472
      ],
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "lead",
        "campaignId": "LEMLIST_CAMPAIGN_ID",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "companyName": "={{ $json.company }}",
          "firstName": "={{ $json.name ? $json.name.split(' ')[0] : '' }}",
          "lastName": "={{ $json.name ? $json.name.split(' ').slice(1).join(' ') : '' }}"
        }
      },
      "id": "cc7e6679-385b-41f5-b285-8bbb7651d73d",
      "name": "Add to Weekly Content Digest",
      "type": "n8n-nodes-base.lemlist",
      "typeVersion": 2,
      "position": [
        -6000,
        1568
      ]
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "companyName": "={{ $json.company }}",
          "customPropertiesUi": {
            "customPropertiesValues": [
              {
                "property": "lead_score",
                "value": "={{ $json.intentScore }}"
              },
              {
                "property": "lead_stage",
                "value": "Nurture"
              },
              {
                "property": "seniority",
                "value": "={{ $json.seniority }}"
              },
              {
                "property": "company_size",
                "value": "={{ $json.companySize }}"
              }
            ]
          },
          "firstName": "={{ $json.name ? $json.name.split(' ')[0] : '' }}",
          "jobTitle": "={{ $json.jobTitle }}",
          "lastName": "={{ $json.name ? $json.name.split(' ').slice(1).join(' ') : '' }}",
          "linkedinUrl": "={{ $json.linkedinUrl }}"
        },
        "options": {}
      },
      "id": "82d9a79c-6045-4c1a-b08f-d9faa3711ed2",
      "name": "Create HubSpot Contact - Low Intent",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        -6224,
        1760
      ],
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "operation": "search",
        "limit": 1,
        "filterGroupsUi": {
          "filterGroupsValues": [
            {
              "filtersUi": {
                "filterValues": [
                  {
                    "propertyName": "email|string",
                    "value": "={{ $json.email }}"
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {}
      },
      "id": "126d2efb-5e8a-46a2-a774-1d95cc5403a5",
      "name": "Check for Duplicates in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        -7344,
        1376
      ],
      "alwaysOutputData": true,
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.limadata.com/api/v1/watch",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "x-api-key",
              "value": "LIMADATA_API"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"name\": \"Medium Intent Lead Watch\",\n  \"type\": \"PersonJobChanges\",\n  \"notification_url\": \"https://your.app.n8n.cloud/webhook/job-change-medium\",\n  \"frequency_days\": 7,\n  \"settings\": {\n    \"people_urls\": [{{ $json.linkedinUrl }}]\n  },\n  \"external_id\": {{ $json.email }}\n}",
        "options": {}
      },
      "id": "a6af3902-ab48-45cd-9245-76c24549755b",
      "name": "Setup Limadata Person Watch - Medium Intent",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -6000,
        1376
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.limadata.com/api/v1/watch",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "x-api-key",
              "value": "LIMADATA_API"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"name\": \"Low Intent Lead Watch\",\n  \"type\": \"PersonJobChanges\",\n  \"notification_url\": \"https://yourapp.app.n8n.cloud/webhook/job-change-low\",\n  \"frequency_days\": 30,\n  \"settings\": {\n    \"people_urls\": [{{ $json.linkedinUrl }}]\n  },\n  \"external_id\": {{ $json.email }}\n}",
        "options": {}
      },
      "id": "4e8bf0ec-4578-4dd0-a9a6-a28625aaada0",
      "name": "Setup Limadata Person Watch - Low Intent",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -6000,
        1760
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "id-1",
              "leftValue": "={{ $json.id }}",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "1cf94326-2946-474c-9182-6e11ea9f272c",
      "name": "Stop if Duplicate Found",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        -7120,
        1376
      ]
    }
  ],
  "connections": {
    "Form Submission Webhook": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Check for Duplicates in HubSpot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limadata Enrichment": {
      "main": [
        [
          {
            "node": "Calculate Intent Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Intent Score": {
      "main": [
        [
          {
            "node": "Route by Intent Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Intent Score": {
      "main": [
        [
          {
            "node": "Alert SDR via Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create HubSpot Contact - High Intent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create HubSpot Contact - Medium Intent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create HubSpot Contact - Low Intent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create HubSpot Contact - High Intent": {
      "main": [
        [
          {
            "node": "Send Personalized SDR Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create HubSpot Contact - Medium Intent": {
      "main": [
        [
          {
            "node": "Setup Limadata Person Watch - Medium Intent",
            "type": "main",
            "index": 0
          },
          {
            "node": "Add to Weekly Content Digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create HubSpot Contact - Low Intent": {
      "main": [
        [
          {
            "node": "Setup Limadata Person Watch - Low Intent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for Duplicates in HubSpot": {
      "main": [
        [
          {
            "node": "Stop if Duplicate Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Stop if Duplicate Found": {
      "main": [
        [
          {
            "node": "Limadata Enrichment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}