{
  "id": "fGr4EFOk9O11Cs3l",
  "name": "AI Lead Scoring and Auto-Assignment for GoHighLevel Contacts",
  "tags": [],
  "nodes": [
    {
      "id": "ebc88344-2f0b-4be4-bd6b-3e4ecdfafaa0",
      "name": "GHL New Contact Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        624,
        240
      ],
      "parameters": {
        "path": "ghl-new-contact",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "678da6b8-11e1-44ac-86e0-9cfb7ed20c63",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        848,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "ghlApiBaseUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__GoHighLevel API Base URL (e.g., https://rest.gohighlevel.com/v1)__>"
            },
            {
              "id": "id-2",
              "name": "ghlApiKey",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__GoHighLevel API Key__>"
            },
            {
              "id": "id-3",
              "name": "topRepUserId",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Top Sales Rep User ID for Hot Leads__>"
            },
            {
              "id": "id-4",
              "name": "secondaryRepUserId",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Secondary Sales Rep User ID for Warm Leads__>"
            },
            {
              "id": "id-5",
              "name": "nurtureTeamUserId",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Nurture Team User ID for Cold Leads__>"
            },
            {
              "id": "id-6",
              "name": "slackChannel",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Slack Channel ID for Hot Lead Notifications (e.g., #sales)__>"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "7178c526-d24a-4d17-8c52-b2b4c239c4da",
      "name": "GHL Get Contact Details",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1600,
        240
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $('GHL New Contact Trigger').first().json.body.contact_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "c97cd3d4-c870-49c5-a08d-fbcdd688bde8",
      "name": "GHL Fetch Engagement Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1824,
        240
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $('GHL New Contact Trigger').first().json.body.contact_id }}/activities",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "37d1a1ac-309b-4ba3-b987-d41517ae0faa",
      "name": "Clean Contact Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2064,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "contactId",
              "type": "string",
              "value": "={{ $('GHL Get Contact Details').first().json.contact?.id || $('GHL Get Contact Details').first().json.id || '' }}"
            },
            {
              "id": "id-2",
              "name": "name",
              "type": "string",
              "value": "={{ $('GHL Get Contact Details').first().json.name || 'Unknown' }}"
            },
            {
              "id": "id-3",
              "name": "email",
              "type": "string",
              "value": "={{ $('GHL Get Contact Details').first().json.email || '' }}"
            },
            {
              "id": "id-4",
              "name": "phone",
              "type": "string",
              "value": "={{ $('GHL Get Contact Details').first().json.phone || '' }}"
            },
            {
              "id": "id-5",
              "name": "source",
              "type": "string",
              "value": "={{ $('GHL Get Contact Details').first().json.source || 'Unknown' }}"
            },
            {
              "id": "id-6",
              "name": "tags",
              "type": "array",
              "value": "={{ $('GHL Get Contact Details').first().json.tags || [] }}"
            },
            {
              "id": "id-7",
              "name": "customFields",
              "type": "object",
              "value": "={{ $('GHL Get Contact Details').first().json.customFields || {} }}"
            },
            {
              "id": "id-8",
              "name": "engagementData",
              "type": "object",
              "value": "={{ $('GHL Fetch Engagement Data').first().json }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "ca04c9e3-ed83-4f3d-8618-094e4e22f3e8",
      "name": "Prepare AI Input",
      "type": "n8n-nodes-base.set",
      "position": [
        2288,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "leadData",
              "type": "object",
              "value": "={{ { \"demographics\": { \"name\": $json.name, \"email\": $json.email, \"phone\": $json.phone, \"source\": $json.source }, \"behavior\": { \"tags\": $json.tags, \"customFields\": $json.customFields, \"engagementData\": $json.engagementData } } }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "51c119d7-418b-438a-a7a2-581b9a6c3dfa",
      "name": "AI Lead Scoring (GPT-4)",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        608,
        640
      ],
      "parameters": {
        "modelId": {
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "instructions": "You are an expert sales lead scoring assistant. Your task is to analyze lead data and score leads from 1 to 100 based on:\n\n1. Buying Intent: Signals that indicate readiness to purchase\n2. Engagement Level: Email opens, clicks, website visits, form submissions\n3. Behavior Signals: Frequency and recency of interactions\n4. Lead Quality: Completeness of contact information, lead source quality\n5. Urgency: Time-sensitive indicators\n\nProvide your response in the following JSON format:\n{\n  \"score\": <number between 1-100>,\n  \"category\": \"<Hot|Warm|Cold>\",\n  \"reasoning\": \"<brief explanation of the score>\",\n  \"confidence\": \"<high|medium|low>\"\n}\n\nScoring Guidelines:\n- Hot Lead (80-100): High engagement, strong buying signals, quality source\n- Warm Lead (40-79): Moderate engagement, some interest signals\n- Cold Lead (1-39): Low engagement, minimal signals, needs nurturing"
        },
        "responses": {
          "values": [
            {
              "content": "={{ JSON.stringify($json.leadData) }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ca9b2c9b-ac36-4797-b564-b47e31623b4e",
      "name": "Parse Score to Numeric",
      "type": "n8n-nodes-base.code",
      "position": [
        944,
        640
      ],
      "parameters": {
        "jsCode": "const aiResponse = $input.first().json.message;\nlet parsedData;\n\ntry {\n  parsedData = typeof aiResponse === 'string' ? JSON.parse(aiResponse) : aiResponse;\n} catch (e) {\n  const scoreMatch = aiResponse.match(/\"score\"\\s*:\\s*(\\d+)/);\n  const categoryMatch = aiResponse.match(/\"category\"\\s*:\\s*\"([^\"]+)\"/);\n  const confidenceMatch = aiResponse.match(/\"confidence\"\\s*:\\s*\"([^\"]+)\"/);\n  \n  parsedData = {\n    score: scoreMatch ? parseInt(scoreMatch[1]) : 50,\n    category: categoryMatch ? categoryMatch[1] : 'Warm',\n    confidence: confidenceMatch ? confidenceMatch[1] : 'medium',\n    reasoning: 'Parsed from text response'\n  };\n}\n\nconst score = Math.max(1, Math.min(100, parseInt(parsedData.score) || 50));\n\nreturn {\n  json: {\n    score: score,\n    category: parsedData.category || 'Warm',\n    confidence: parsedData.confidence || 'medium',\n    reasoning: parsedData.reasoning || 'No reasoning provided',\n    contactId: $('Clean Contact Data').first().json.contactId,\n    name: $('Clean Contact Data').first().json.name,\n    email: $('Clean Contact Data').first().json.email,\n    source: $('Clean Contact Data').first().json.source\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "4b470389-b753-44a7-a878-94331ab1b466",
      "name": "IF Score >= 80 (Hot)",
      "type": "n8n-nodes-base.if",
      "position": [
        1536,
        816
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.score }}"
            },
            {
              "id": "id-2",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.score }}",
              "rightValue": 80
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "cca339a2-a20b-4f38-aa49-826e777d53da",
      "name": "IF Score >= 40 (Warm)",
      "type": "n8n-nodes-base.if",
      "position": [
        1776,
        960
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.score }}"
            },
            {
              "id": "id-2",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.score }}",
              "rightValue": 40
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f6d6e6ee-751e-4469-b9d0-45bbca1a2338",
      "name": "GHL Tag Hot Lead",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1776,
        640
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "{\n  \"tags\": [\"Hot Lead\"]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "7e6b965a-4674-49d6-b647-08f92865bfc2",
      "name": "GHL Tag Warm Lead",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2000,
        864
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "{\n  \"tags\": [\"Warm Lead\"]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "100d401f-dd79-4c77-a898-d9c35be2a6dc",
      "name": "GHL Tag Cold Lead",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2000,
        1056
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "{\n  \"tags\": [\"Cold Lead\"]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "a729731e-75ca-404b-90c1-65df321d7ebe",
      "name": "GHL Assign Hot to Top Rep",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2000,
        640
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}/assign",
        "method": "PUT",
        "options": {},
        "jsonBody": "={{ { \"userId\": $('Workflow Configuration').first().json.topRepUserId } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "218ac94c-d90c-4e57-817a-a1c17f1b1fb0",
      "name": "GHL Assign Warm to Secondary Rep",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2256,
        864
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}/assign",
        "method": "PUT",
        "options": {},
        "jsonBody": "={{ { \"userId\": $('Workflow Configuration').first().json.secondaryRepUserId } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "920d5d20-6010-498c-ba44-c9367b7d38ee",
      "name": "GHL Assign Cold to Nurture Team",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2256,
        1056
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.ghlApiBaseUrl }}/contacts/{{ $json.contactId }}/assign",
        "method": "PUT",
        "options": {},
        "jsonBody": "={{ { \"userId\": $('Workflow Configuration').first().json.nurtureTeamUserId } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Workflow Configuration').first().json.ghlApiKey }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "6a5266a8-d058-4104-b736-ea883cdc425a",
      "name": "Slack Notify Hot Lead",
      "type": "n8n-nodes-base.slack",
      "position": [
        2256,
        640
      ],
      "parameters": {
        "text": "=\ud83d\udd25 *Hot Lead Alert!*\n\n*Name:* {{ $json.name }}\n*Email:* {{ $json.email }}\n*Score:* {{ $json.score }}/100\n*Source:* {{ $json.source }}\n*Confidence:* {{ $json.confidence }}\n\n*Reasoning:* {{ $json.reasoning }}\n\nThis lead has been assigned to the top sales rep. Follow up immediately!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.slackChannel }}"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "7c000ee2-d5fc-49e0-bff1-283ec806cc94",
      "name": "Webhook Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2736,
        864
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": true, \"message\": \"Lead scored and tagged successfully\", \"contactId\": $json.contactId || 'N/A', \"score\": $json.score || 0, \"category\": $json.category || 'Unknown' } }}"
      },
      "typeVersion": 1.5
    },
    {
      "id": "dc1ed977-f1fa-4eab-a626-639bf126ca5b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        304
      ],
      "parameters": {
        "width": 1328,
        "height": 416,
        "content": "## How it works\nThis workflow scores every new GoHighLevel contact with AI and routes them to the right sales owner.\n\nA webhook trigger fires when a new contact is created in GHL. The workflow fetches full contact and engagement data, cleans it and prepares a compact JSON payload for AI.\n\nAn AI node analyzes demographics, source and engagement, then returns a numeric score (1\u2013100), segment (Hot/Warm/Cold) and short reasoning. That score is parsed and used in two IF checks: \u226580 = Hot, \u226540 = Warm, otherwise Cold.\n\nDepending on the segment, the contact is tagged in GHL and automatically assigned to the top rep, secondary rep, or nurture team. Hot leads also generate a Slack notification so the team can follow up immediately. The workflow ends by sending a simple webhook response back to GHL.\n\n## Setup steps\n1. Create a GHL webhook trigger and point it to this workflow URL.\n2. Add your GHL API key, base URL and user IDs in **Workflow Configuration**.\n3. Connect Slack and choose the channel for Hot lead alerts.\n4. Adjust the AI prompt and score thresholds if needed (80/40 by default).\n5. Send a test contact from GHL, verify tags/owners/Slack, then enable the webhook."
      },
      "typeVersion": 1
    },
    {
      "id": "cc06656c-32c1-4791-9fe9-0b2761495c08",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 352,
        "content": "## Trigger & Config\n\nReceives new contacts from GoHighLevel via webhook and loads core config: API key, base URL, owner IDs, and Slack channel."
      },
      "typeVersion": 1
    },
    {
      "id": "cdf4c58c-361f-4db9-8d5b-623327695eed",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 880,
        "height": 352,
        "content": "## Contact & Engagement Data\n\nPulls full contact details and engagement history from GHL, then cleans and structures the data into a compact JSON payload for AI scoring."
      },
      "typeVersion": 1
    },
    {
      "id": "aaf1107a-c37b-47b2-b268-8b9597354884",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        512
      ],
      "parameters": {
        "color": 7,
        "width": 544,
        "height": 304,
        "content": "## AI Lead Scoring\n\nUses AI to score the lead (1\u2013100) and return segment + reasoning. The parser converts the AI output into numeric fields used for routing."
      },
      "typeVersion": 1
    },
    {
      "id": "9e5550d6-7434-40c2-bdf9-4328227404dd",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 976,
        "height": 752,
        "content": "## Route & Assign\n\nRoutes leads based on score: Hot, Warm, or Cold. Tags the contact, assigns the right owner in GHL, and sends a Slack alert for Hot leads."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0eee500d-3869-4812-a383-36247fc2535b",
  "connections": {
    "GHL Tag Hot Lead": {
      "main": [
        [
          {
            "node": "GHL Assign Hot to Top Rep",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare AI Input": {
      "main": [
        [
          {
            "node": "AI Lead Scoring (GPT-4)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Tag Cold Lead": {
      "main": [
        [
          {
            "node": "GHL Assign Cold to Nurture Team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Tag Warm Lead": {
      "main": [
        [
          {
            "node": "GHL Assign Warm to Secondary Rep",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Contact Data": {
      "main": [
        [
          {
            "node": "Prepare AI Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Score >= 80 (Hot)": {
      "main": [
        [
          {
            "node": "GHL Tag Hot Lead",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "IF Score >= 40 (Warm)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Score >= 40 (Warm)": {
      "main": [
        [
          {
            "node": "GHL Tag Warm Lead",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "GHL Tag Cold Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack Notify Hot Lead": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Score to Numeric": {
      "main": [
        [
          {
            "node": "IF Score >= 80 (Hot)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "GHL Get Contact Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Lead Scoring (GPT-4)": {
      "main": [
        [
          {
            "node": "Parse Score to Numeric",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Get Contact Details": {
      "main": [
        [
          {
            "node": "GHL Fetch Engagement Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL New Contact Trigger": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Assign Hot to Top Rep": {
      "main": [
        [
          {
            "node": "Slack Notify Hot Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Fetch Engagement Data": {
      "main": [
        [
          {
            "node": "Clean Contact Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Assign Cold to Nurture Team": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GHL Assign Warm to Secondary Rep": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}