Automatisation des alertes de prospects à forte valeur ajoutée de GoHighLevel vers Slack, Sheets et Calendar

Avancé

Ceci est unLead Generationworkflow d'automatisation du domainecontenant 17 nœuds.Utilise principalement des nœuds comme If, Code, Slack, HighLevel, GoogleSheets. Envoyer automatiquement des alertes sur des prospects précieux de GoHighLevel vers Slack, Sheets et Calendar

Prérequis
  • Token Bot Slack ou URL Webhook
  • Informations d'identification Google Sheets API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "S65jfvMZZfPk7EKf",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate High-Value Lead Alerts from GoHighLevel to Slack ,Sheets and Calender",
  "tags": [],
  "nodes": [
    {
      "id": "6539d6c2-4beb-42db-af71-48fa1853d0aa",
      "name": "Vue d'ensemble du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2608,
        -320
      ],
      "parameters": {
        "color": 4,
        "width": 390,
        "height": 464,
        "content": "## 🎯 High-Value Lead Scoring & Alert System\n\nThis workflow automatically:\n- Fetches contacts from HighLevel CRM daily at 8 AM\n- Calculates lead scores from custom fields\n- Alerts sales team via Slack for leads scoring >80\n- Logs high-priority leads to Google Sheets\n- Creates follow-up calendar events automatically\n\n**Setup Required:**\n1. Connect HighLevel OAuth2 credentials\n2. Connect Slack API credentials\n3. Connect Google Sheets OAuth2\n4. Connect Google Calendar OAuth2\n5. Update Slack channel ID with your channel\n6. Update Google Sheet ID with your tracking sheet\n7. Map custom field IDs to match your CRM setup"
      },
      "typeVersion": 1
    },
    {
      "id": "c922fb0a-b1fd-468f-90e5-4aa414efc93c",
      "name": "Note de configuration de la planification",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2176,
        -304
      ],
      "parameters": {
        "width": 280,
        "height": 220,
        "content": "## ⏰ Daily Trigger\n\nRuns every day at 8:00 AM to check for new high-value leads.\n\n**Customization:**\nAdjust the trigger time in node settings to match your team's schedule."
      },
      "typeVersion": 1
    },
    {
      "id": "5180b1c3-1f23-4101-918e-cf970e5a19ac",
      "name": "Note de configuration HighLevel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1872,
        -368
      ],
      "parameters": {
        "width": 300,
        "height": 280,
        "content": "## 📥 Fetch All Contacts\n\n**Before Using:**\n1. Connect your HighLevel OAuth2 credentials\n2. Ensure API access is enabled in your HighLevel account\n3. Test with a small batch first\n\n**Note:** This retrieves ALL contacts. Consider adding filters if you have a large database."
      },
      "typeVersion": 1
    },
    {
      "id": "ff5451e2-b740-4c16-a7b9-879083678689",
      "name": "Note de logique de filtre",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1712,
        80
      ],
      "parameters": {
        "width": 280,
        "height": 220,
        "content": "## 🔍 Filter Contacts with Custom Fields\n\nOnly processes contacts that have custom fields populated.\n\nThis prevents errors when trying to extract lead scores from incomplete data."
      },
      "typeVersion": 1
    },
    {
      "id": "51cf93d7-a03e-4eed-b4c2-0cf0821d8536",
      "name": "Note de configuration du code",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1472,
        -384
      ],
      "parameters": {
        "width": 300,
        "height": 300,
        "content": "## ⚙️ Transform Contact Data\n\n**Custom Field IDs to Update:**\n- Lead Score Field: `sEic9OWa5yndTAitjgoe`\n- Assigned Rep Field: `YHJqNOSAvMbI08mnabNb`\n\n**Action Required:**\nReplace these IDs with YOUR actual custom field IDs from HighLevel.\n\nFind them in: HighLevel → Settings → Custom Fields → Copy Field ID"
      },
      "typeVersion": 1
    },
    {
      "id": "6f3ad72f-c5d5-476d-90dc-3ffc5181dca1",
      "name": "Note du seuil de score",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1328,
        96
      ],
      "parameters": {
        "width": 280,
        "height": 220,
        "content": "## 🎯 Lead Score Filter\n\nOnly leads with score **>80** proceed to alerting.\n\n**Customization:**\nAdjust the threshold (currently 80) to match your lead qualification criteria."
      },
      "typeVersion": 1
    },
    {
      "id": "ead078ba-ec45-4702-bf08-d14d2fed451d",
      "name": "Note de configuration Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        -512
      ],
      "parameters": {
        "width": 300,
        "height": 332,
        "content": "## 🚨 Slack Alert Setup\n\n**Required Configuration:**\n1. Create a Slack App with chat:write permissions\n2. Install app to your workspace\n3. Get your channel ID:\n   - Right-click channel → View channel details → Copy ID\n4. Replace `YOUR_SLACK_CHANNEL_ID` in node settings\n\n**Security:** Never commit channel IDs to public repositories."
      },
      "typeVersion": 1
    },
    {
      "id": "81620101-5cd3-477e-aa1f-265fee1765ac",
      "name": "Note de configuration Google Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        144
      ],
      "parameters": {
        "width": 340,
        "height": 380,
        "content": "## 📊 Google Sheets Logging\n\n**Setup Steps:**\n1. Create a Google Sheet with these columns:\n   contact_id, contact_name, first_name, last_name, email, phone, company_name, lead_score, assigned_rep, assigned_rep_slack_id, location_id, source, tags, country, date_added, date_updated, is_high_priority\n\n2. Share sheet with your service account email\n3. Copy the Sheet ID from URL\n4. Replace `YOUR_GOOGLE_SHEET_ID` in node settings\n\n**Security:** Use environment variables for Sheet IDs in production."
      },
      "typeVersion": 1
    },
    {
      "id": "708a9b3f-9dc4-4e79-9457-7e4524d4c22e",
      "name": "Note de configuration Calendar",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        -368
      ],
      "parameters": {
        "width": 320,
        "height": 348,
        "content": "## 📅 Auto-Schedule Follow-up\n\nCreates a calendar event 1 hour from now for immediate follow-up.\n\n**Configuration:**\n1. Connect Google Calendar OAuth2\n2. Replace `YOUR_CALENDAR_EMAIL` with your team calendar\n3. Adjust timing: Currently set to 1-1.5 hours from trigger\n\n**Tip:** Use a shared team calendar for better visibility."
      },
      "typeVersion": 1
    },
    {
      "id": "c29fd9ed-1582-488b-b4a6-0f02de537e46",
      "name": "Déclencheur quotidien 8h",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2064,
        -64
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3a243805-b158-479c-afd4-431d5989fa24",
      "name": "Récupérer les contacts HighLevel",
      "type": "n8n-nodes-base.highLevel",
      "position": [
        -1840,
        -64
      ],
      "parameters": {
        "filters": {},
        "options": {},
        "operation": "getAll",
        "requestOptions": {}
      },
      "typeVersion": 2
    },
    {
      "id": "03ed8e64-6a5f-48ac-a025-e379ab7d6b56",
      "name": "Filtrer les contacts valides",
      "type": "n8n-nodes-base.if",
      "position": [
        -1616,
        -64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a49be490-38c5-4620-b29f-8150655f32ba",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.customFields }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f006b6bf-4b73-45c6-802d-4cfa0e8e8584",
      "name": "Transformer les données de contact",
      "type": "n8n-nodes-base.code",
      "position": [
        -1392,
        -64
      ],
      "parameters": {
        "jsCode": "// Process all items from the input\nconst items = $input.all();\n\n// Map through all items and extract/transform data\nreturn items.map(item => {\n  const customFields = item.json.customFields || [];\n  \n  // ⚠️ IMPORTANT: Replace these field IDs with YOUR HighLevel custom field IDs\n  // Find the lead score field (Replace 'sEic9OWa5yndTAitjgoe' with your field ID)\n  const leadScoreField = customFields.find(field => field.id === 'YOUR_LEAD_SCORE_FIELD_ID');\n  const leadScore = leadScoreField ? parseFloat(leadScoreField.value) : 0;\n  \n  // Extract assigned rep (Replace 'YHJqNOSAvMbI08mnabNb' with your field ID)\n  const assignedRepField = customFields.find(field => field.id === 'YOUR_ASSIGNED_REP_FIELD_ID');\n  const assignedRep = assignedRepField ? assignedRepField.value : 'Unassigned';\n  \n  return {\n    json: {\n      contact_id: item.json.id,\n      contact_name: item.json.contactName,\n      first_name: item.json.firstName,\n      last_name: item.json.lastName,\n      email: item.json.email || 'No email provided',\n      phone: item.json.phone || 'No phone provided',\n      company_name: item.json.companyName || 'N/A',\n      lead_score: leadScore,\n      assigned_rep: assignedRep,\n      assigned_rep_slack_id: assignedRep, // TODO: Map to actual Slack member IDs\n      location_id: item.json.locationId,\n      source: item.json.source || 'Unknown',\n      tags: Array.isArray(item.json.tags) ? item.json.tags.join(', ') : '',\n      country: item.json.country,\n      date_added: item.json.dateAdded,\n      date_updated: item.json.dateUpdated,\n      is_high_priority: leadScore > 80 // Boolean flag for workflow filtering\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "2bad2795-7f45-4170-8c9d-829193c25828",
      "name": "Vérifier si prospect à haute valeur",
      "type": "n8n-nodes-base.if",
      "position": [
        -1168,
        -64
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.lead_score }}",
              "value2": 80,
              "operation": "larger"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1f2a561f-228b-4793-9823-413f0fd7cea3",
      "name": "Envoyer l'alerte Slack à l'équipe commerciale",
      "type": "n8n-nodes-base.slack",
      "position": [
        -944,
        -160
      ],
      "webhookId": "488b7831-8067-4c78-a12a-ab6b897e7528",
      "parameters": {
        "text": "=🚨 **High-Value Lead Alert**\n\n👤 **Contact:** {{ $json.contact_name }}\n📊 **Lead Score:** {{ $json.lead_score }}\n⏰ **Action Required:** Follow-up within 1 hour\n\n**Contact Details:**\n📧 Email: {{ $json.email }}\n📞 Phone: {{ $json.phone }}\n🏢 Company: {{ $json.company_name }}\n👨‍💼 Assigned Rep: {{ $json.assigned_rep }}\n📍 Location: {{ $json.country }}\n🏷️ Tags: {{ $json.tags }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SLACK_CHANNEL_ID"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "263b6c15-a8fb-44ee-b883-97964cde7176",
      "name": "Journaliser dans le suivi Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -944,
        48
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "contact_id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "contact_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "contact_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "contact_name",
              "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": "company_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "lead_score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "lead_score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "assigned_rep",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "assigned_rep",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "assigned_rep_slack_id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "assigned_rep_slack_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "location_id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "location_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "source",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date_added",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date_added",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date_updated",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date_updated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_high_priority",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "is_high_priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": []
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "High Priority Leads"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "bd644f55-c61e-4e4d-8a9a-438749d094a7",
      "name": "Créer un événement de suivi dans Calendar",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        -720,
        -160
      ],
      "parameters": {
        "end": "={{ $now.plus(1.5, 'hours').toISO() }}",
        "start": "={{ $now.plus(1, 'hours').toISO() }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CALENDAR_EMAIL"
        },
        "additionalFields": {
          "description": "=**High-Priority Lead Follow-up**\n\nContact: {{ $json.contact_name }}\nEmail: {{ $json.email }}\nPhone: {{ $json.phone }}\nCompany: {{ $json.company_name }}\nLead Score: {{ $json.lead_score }}\nAssigned Rep: {{ $json.assigned_rep }}\n\nAction: Reach out within 1 hour to maintain engagement.",
          "sendUpdates": "all"
        }
      },
      "typeVersion": 1.3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "be04a62e-8c04-4ee9-9bf1-ef74ae725aa5",
  "connections": {
    "c29fd9ed-1582-488b-b4a6-0f02de537e46": {
      "main": [
        [
          {
            "node": "3a243805-b158-479c-afd4-431d5989fa24",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "03ed8e64-6a5f-48ac-a025-e379ab7d6b56": {
      "main": [
        [
          {
            "node": "f006b6bf-4b73-45c6-802d-4cfa0e8e8584",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f006b6bf-4b73-45c6-802d-4cfa0e8e8584": {
      "main": [
        [
          {
            "node": "2bad2795-7f45-4170-8c9d-829193c25828",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2bad2795-7f45-4170-8c9d-829193c25828": {
      "main": [
        [
          {
            "node": "1f2a561f-228b-4793-9823-413f0fd7cea3",
            "type": "main",
            "index": 0
          },
          {
            "node": "263b6c15-a8fb-44ee-b883-97964cde7176",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3a243805-b158-479c-afd4-431d5989fa24": {
      "main": [
        [
          {
            "node": "03ed8e64-6a5f-48ac-a025-e379ab7d6b56",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f2a561f-228b-4793-9823-413f0fd7cea3": {
      "main": [
        [
          {
            "node": "bd644f55-c61e-4e4d-8a9a-438749d094a7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Génération de leads

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds17
Catégorie1
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34