{
  "name": "Automated sales follow-up system using HighLevel, Gmail, Slack & Google Sheets",
  "nodes": [
    {
      "id": "5f8b2f26-9f5d-40be-baad-51f65e9eb357",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -832,
        -16
      ]
    },
    {
      "id": "c014b22a-fc48-4f32-94e2-72e7ce3cf3f9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -400
      ],
      "parameters": {
        "width": null,
        "height": 352,
        "content": "## Node Name: Fetch Contacts from HighLevel\n**Action**: Retrieves all contacts from the HighLevel CRM.\n**Description**:\nThis node connects to the HighLevel API using OAuth credentials and fetches all "
      }
    },
    {
      "id": "2fa119c2-8252-480e-b7b6-964e04100266",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        176
      ],
      "parameters": {
        "width": null,
        "height": 272,
        "content": "## Node Name: Validate Deal Fetch Success\n**Action**: Validates if the deal fetch was successful or not.\n**Description**:\nThis node checks whether the fetched data (deal or contact) exists. If the dat"
      }
    },
    {
      "id": "7c00102b-0b79-498a-b8ec-e1b9f2488392",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        608
      ],
      "parameters": {
        "width": null,
        "height": 336,
        "content": "## Node Name: Log Errors in Google Sheets\n**Action**: Logs any errors encountered during data fetching or validation.\n**Description**:\nThis node logs any errors or issues that occur during the fetchin"
      }
    },
    {
      "id": "65e796c2-8e01-4009-b900-c523a669657a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -400
      ],
      "parameters": {
        "width": null,
        "height": 352,
        "content": "## Node Name: Filter Contacts with No Response\n**Action**: Filters contacts who have not responded in the last 24 hours.\n**Description**:\nThis node processes the input contacts and filters out those w"
      }
    },
    {
      "id": "d1f3ba19-cfb4-4845-b628-cff0f4238c65",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        144
      ],
      "parameters": {
        "width": null,
        "height": 336,
        "content": "## Node Name: Get Most Recent Contact\n**Action**: Retrieves the most recent contact based on the last updated date.\n**Description**:\nThis node sorts the contacts by their most recent update and select"
      }
    },
    {
      "id": "723f4c58-76e0-4cf2-ae04-88c3820e7d15",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        -352
      ],
      "parameters": {
        "width": null,
        "height": 320,
        "content": "## Node Name: Send Follow-Up Email to Contact\n**Action**: Sends a follow-up email to a contact.\n**Description**:\nThis node sends a personalized follow-up email to the selected contact. The email asks "
      }
    },
    {
      "id": "8ee4227f-f4b3-4bcb-a154-cf316050baef",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        160
      ],
      "parameters": {
        "width": null,
        "height": 304,
        "content": "## Node Name: Wait for 24 Hours Before Next Action\n**Action**: Pauses the workflow for 24 hours before continuing.\n**Description**:\nThis node introduces a 24-hour delay in the workflow. It is typicall"
      }
    },
    {
      "id": "f1211abc-1883-4c50-b75c-0a835a549ae5",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        -432
      ],
      "parameters": {
        "width": null,
        "height": 368,
        "content": "## Node Name: Retrieve Email Thread for Response\n**Action**: Fetches the email thread based on the provided thread ID.\n**Description**:\nThis node retrieves the most recent email thread from Gmail usin"
      }
    },
    {
      "id": "796c98f8-270a-46e7-8f95-4b35ebce2a4d",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        144
      ],
      "parameters": {
        "width": null,
        "height": 384,
        "content": "## Node Name: Check If Contact Responded with 'Yes'\n**Action**: Evaluates if the email response contains the word \"yes\".\n**Description**:\nThis node checks the email response content for the keyword \"y"
      }
    },
    {
      "id": "01d082d9-9575-4287-af57-ec6f7b85e5e0",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        304
      ],
      "parameters": {
        "width": null,
        "height": 400,
        "content": "## Node Name: Notify Sales Team in Slack if No Response\n**Action**: Sends a notification to Slack if no response has been received from the contact.\n**Description**:\nIf no response has been received f"
      }
    },
    {
      "id": "b7874a2b-ce74-4492-8623-37d0689dfbf8",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -640
      ],
      "parameters": {
        "width": null,
        "height": 384,
        "content": "## Node Name: Notify Sales Team in Slack if Response Received\n**Action**: Sends a notification to Slack if a response is received from the contact.\n**Description**:\nIf the contact responds positively "
      }
    },
    {
      "id": "9e35ac7e-8c3c-4821-bbba-a5b5fbf3f8c8",
      "name": "Fetch Contacts from HighLevel",
      "type": "n8n-nodes-base.highLevel",
      "position": [
        -576,
        -16
      ]
    },
    {
      "id": "7fdab81f-d78c-4ed3-887b-d28092afde3a",
      "name": "Validate Deal Fetch Success",
      "type": "n8n-nodes-base.if",
      "position": [
        -304,
        -16
      ]
    },
    {
      "id": "8ef5a95b-518d-42e9-9cf1-d0f84232f8e0",
      "name": "Log Errors in Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        416
      ]
    },
    {
      "id": "6285af42-d462-460d-90dc-853899d8486d",
      "name": "Filter Contacts with No Response",
      "type": "n8n-nodes-base.code",
      "position": [
        32,
        -16
      ]
    },
    {
      "id": "971be9a4-415a-4fca-8a70-ed7d528f4d72",
      "name": "Get Most Recent Contact",
      "type": "n8n-nodes-base.code",
      "position": [
        288,
        -16
      ]
    },
    {
      "id": "e70e4622-1756-4e65-a5a2-13ba657be75f",
      "name": "Send Follow-Up Email to Contact",
      "type": "n8n-nodes-base.gmail",
      "position": [
        544,
        -16
      ]
    },
    {
      "id": "a41f8e94-b84f-45e4-a968-f3f865b0ec09",
      "name": "Wait for 24 Hours Before Next Action",
      "type": "n8n-nodes-base.wait",
      "position": [
        784,
        -16
      ]
    },
    {
      "id": "cfe934cb-4747-4162-a4c0-e130d013e172",
      "name": "Retrieve Email Thread for Response",
      "type": "n8n-nodes-base.gmail",
      "position": [
        992,
        -16
      ]
    },
    {
      "id": "f9c94301-54c7-40e8-b5c0-75146fa7dab1",
      "name": "Check If Contact Responded with 'Yes'",
      "type": "n8n-nodes-base.if",
      "position": [
        1200,
        -16
      ]
    },
    {
      "id": "d254c041-3f7e-4c12-9df5-7a996c97f938",
      "name": "Notify Sales Team in Slack if No Response",
      "type": "n8n-nodes-base.slack",
      "position": [
        1520,
        128
      ]
    },
    {
      "id": "a1659ee2-859a-4540-9470-3d0b5a464dbe",
      "name": "Notify Sales Team in Slack if Response Received",
      "type": "n8n-nodes-base.slack",
      "position": [
        1520,
        -224
      ]
    }
  ],
  "connections": {
    "Get Most Recent Contact": {
      "main": [
        [
          {
            "node": "Send Follow-Up Email to Contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Deal Fetch Success": {
      "main": [
        [
          {
            "node": "Filter Contacts with No Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Log Errors in Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Contacts from HighLevel": {
      "main": [
        [
          {
            "node": "Validate Deal Fetch Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Follow-Up Email to Contact": {
      "main": [
        [
          {
            "node": "Wait for 24 Hours Before Next Action",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Contacts with No Response": {
      "main": [
        [
          {
            "node": "Get Most Recent Contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Email Thread for Response": {
      "main": [
        [
          {
            "node": "Check If Contact Responded with 'Yes'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for 24 Hours Before Next Action": {
      "main": [
        [
          {
            "node": "Retrieve Email Thread for Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Fetch Contacts from HighLevel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Contact Responded with 'Yes'": {
      "main": [
        [
          {
            "node": "Notify Sales Team in Slack if Response Received",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Sales Team in Slack if No Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}