{
 "name": "New lead to HubSpot + owner email (AutomateRecipes)",
 "nodes": [
  {
   "parameters": {
    "httpMethod": "POST",
    "path": "new-lead",
    "responseMode": "onReceived",
    "options": {}
   },
   "id": "e51744a7-cc47-5b82-aa9a-c831a7c12cff",
   "name": "Form webhook",
   "type": "n8n-nodes-base.webhook",
   "typeVersion": 2,
   "position": [
    0,
    0
   ],
   "webhookId": "new-lead"
  },
  {
   "parameters": {},
   "id": "17ef7b1a-39a9-5cd2-a758-16f72393456d",
   "name": "Run manually (test)",
   "type": "n8n-nodes-base.manualTrigger",
   "typeVersion": 1,
   "position": [
    0,
    200
   ]
  },
  {
   "parameters": {
    "jsCode": "return [{json:{body:{name:'Sara Ahmed',email:'sara@example.com',phone:'+966500000000',message:'Need a quote for 3 rooms'}}}];"
   },
   "id": "7f4eb55a-d191-5a1b-8af4-53cc20da0686",
   "name": "Sample lead",
   "type": "n8n-nodes-base.code",
   "typeVersion": 2,
   "position": [
    220,
    200
   ]
  },
  {
   "parameters": {
    "jsCode": "return $input.all().map(i=>{const b=i.json.body||i.json;const email=String(b.email||'').trim().toLowerCase();if(!/^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/.test(email))throw new Error('Lead has no valid email');const [first,...rest]=String(b.name||'').trim().split(/\\s+/);return {json:{email,firstName:first||'',lastName:rest.join(' '),phone:String(b.phone||''),message:String(b.message||'').slice(0,2000)}}});"
   },
   "id": "4214a899-12f5-5d66-a9e2-c1e80453411a",
   "name": "Normalize lead",
   "type": "n8n-nodes-base.code",
   "typeVersion": 2,
   "position": [
    440,
    100
   ]
  },
  {
   "parameters": {
    "authentication": "appToken",
    "resource": "contact",
    "operation": "upsert",
    "email": "={{ $json.email }}",
    "additionalFields": {
     "firstName": "={{ $json.firstName }}",
     "lastName": "={{ $json.lastName }}",
     "phoneNumber": "={{ $json.phone }}",
     "message": "={{ $json.message }}"
    }
   },
   "id": "cc6fa7fa-b46d-5e83-963a-6031b415f96c",
   "name": "HubSpot: create/update contact",
   "type": "n8n-nodes-base.hubspot",
   "typeVersion": 2.1,
   "position": [
    660,
    100
   ]
  },
  {
   "parameters": {
    "sendTo": "YOU@yourbusiness.com",
    "subject": "=New lead: {{ $('Normalize lead').item.json.firstName }} {{ $('Normalize lead').item.json.lastName }}",
    "emailType": "text",
    "message": "=Email: {{ $('Normalize lead').item.json.email }}\nPhone: {{ $('Normalize lead').item.json.phone }}\n\n{{ $('Normalize lead').item.json.message }}",
    "options": {}
   },
   "id": "9eb1ffe5-12b2-53af-8762-167c619a2632",
   "name": "Gmail: alert owner",
   "type": "n8n-nodes-base.gmail",
   "typeVersion": 2.1,
   "position": [
    880,
    100
   ]
  }
 ],
 "connections": {
  "Form webhook": {
   "main": [
    [
     {
      "node": "Normalize lead",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "Sample lead": {
   "main": [
    [
     {
      "node": "Normalize lead",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "Normalize lead": {
   "main": [
    [
     {
      "node": "HubSpot: create/update contact",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "HubSpot: create/update contact": {
   "main": [
    [
     {
      "node": "Gmail: alert owner",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "Run manually (test)": {
   "main": [
    [
     {
      "node": "Sample lead",
      "type": "main",
      "index": 0
     }
    ]
   ]
  }
 },
 "active": false,
 "settings": {
  "executionOrder": "v1"
 },
 "pinData": {}
}