Workflow n8n

Automatisation Gmail avec n8n : gestion d'espionnage efficace

Ce workflow n8n est conçu pour automatiser la gestion d'espionnage via Gmail, facilitant ainsi la collecte et l'analyse d'informations. Dans un contexte où la veille concurrentielle est cruciale, ce processus permet aux entreprises de recevoir des mises à jour pertinentes directement dans leur boîte mail. Grâce à l'automatisation n8n, les utilisateurs peuvent configurer des assignations d'espionnage et recevoir des notifications par email, ce qui leur permet de rester informés sans effort supplémentaire.

  • Étape 1 : Le workflow débute avec un déclencheur de formulaire qui permet de créer une nouvelle mission d'espionnage.
  • Étape 2 : Les données de la mission sont ensuite traitées par le modèle de chat OpenAI pour générer des instructions pertinentes.
  • Étape 3 : Le contenu est ensuite converti en une URL de site web via une requête HTTP, permettant un accès facile aux informations.
  • Étape 4 : Deux pages sont ensuite scrappées pour extraire des données précises.
  • Étape 5 : Après une attente d'un jour, le workflow évalue si un email doit être envoyé, et si oui, il utilise le service Gmail pour notifier l'utilisateur. Ce processus réduit considérablement le temps consacré à la veille et améliore la réactivité face aux informations critiques, offrant ainsi un avantage concurrentiel significatif.
Tags clés :automatisationGmailveille concurrentiellen8nscraping
Catégorie: Manual · Tags: automatisation, Gmail, veille concurrentielle, n8n, scraping0

Workflow n8n Gmail, veille concurrentielle, scraping : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Gmail, veille concurrentielle, scraping : détail des nœuds

  • OpenAI Chat Model

    Ce noeud utilise le modèle de chat OpenAI pour générer des réponses basées sur les options fournies.

  • Gmail

    Ce noeud envoie un e-mail via Gmail avec le sujet, le message et les destinataires spécifiés.

  • parse results

    Ce noeud exécute un code JavaScript pour traiter les résultats obtenus dans le workflow.

  • Sticky Note

    Ce noeud crée une note autocollante avec le contenu, la largeur et la hauteur spécifiés.

  • Sticky Note2

    Ce noeud crée une deuxième note autocollante avec des paramètres similaires à la première.

  • Sticky Note3

    Ce noeud génère une troisième note autocollante avec le contenu et les dimensions définis.

  • Sticky Note4

    Ce noeud produit une quatrième note autocollante selon les spécifications fournies.

  • convert message to website url & instruction

    Ce noeud effectue une requête HTTP pour convertir un message en URL de site web et instructions.

  • New espionage assignment

    Ce noeud déclenche le workflow lorsqu'un nouveau formulaire d'espionnage est soumis.

  • wait 1 day

    Ce noeud met le workflow en pause pendant une journée.

  • scrape page - 1

    Ce noeud effectue une requête HTTP pour extraire des données d'une page web.

  • scrape page - 2

    Ce noeud effectue une seconde requête HTTP pour récupérer des informations d'une autre page web.

  • send e-mail?

    Ce noeud détermine si un e-mail doit être envoyé en fonction du texte et des options fournies.

  • Sticky Note5

    Ce noeud crée une cinquième note autocollante avec le contenu et les dimensions spécifiés.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "aOP0D1cAqzGv7Xa8",
  "meta": {
    "instanceId": "0a5638e14e0c728ef975d18d109cfb41edae575e3d911724f4f1eccde06a729f"
  },
  "name": "spy tool",
  "tags": [],
  "nodes": [
    {
      "id": "5690844d-5322-4c62-8c83-eb4d4dc9c481",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1400,
        340
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "ZOKbogCxHnP2W0H5",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3b1c034f-501b-423c-844f-9cb607fa91e6",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1580,
        340
      ],
      "webhookId": "6a510528-22e0-4140-b987-770bb7a138de",
      "parameters": {
        "sendTo": "tom@sleak.chat",
        "message": "={{ $fromAI(\"change\", \"What relevant part has changed on the website?\") }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Relevant changes on {{ $('parse results').item.json.website_url }}",
        "emailType": "text",
        "descriptionType": "manual",
        "toolDescription": "=Use this tool if you need to send an email, but only if the terms in the instructions mentioned explicitly state so\n"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "jtANm6k92Kl6ent1",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4d448a02-4569-451e-8be5-59bfc48f36d8",
      "name": "parse results",
      "type": "n8n-nodes-base.code",
      "position": [
        1180,
        -160
      ],
      "parameters": {
        "jsCode": "const parsedObject = JSON.parse($('convert message to website url & instruction').first().json.choices[0].message.content);\n\nreturn parsedObject"
      },
      "typeVersion": 2
    },
    {
      "id": "238298c4-5bba-4ac1-b3cc-ab5a28888560",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        -120
      ],
      "parameters": {
        "width": 260,
        "height": 180,
        "content": "## Note: almost never works right away\nAdjust the prompts in the 'Tools agent' and 'Gmail' node as desired to steer the agent's behavior in the right direction"
      },
      "typeVersion": 1
    },
    {
      "id": "0d519c06-aa30-4a33-895f-9185936d27cf",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        100
      ],
      "parameters": {
        "width": 150,
        "height": 80,
        "content": "Connect your Firecrawl account"
      },
      "typeVersion": 1
    },
    {
      "id": "9e327bbe-0096-4a4d-aec2-2e4cae7d91bd",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        80
      ],
      "parameters": {
        "width": 150,
        "height": 80,
        "content": "Connect your own OpenAI account\n"
      },
      "typeVersion": 1
    },
    {
      "id": "30ce0e22-f536-462f-8f94-f3fd92ae036f",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1660,
        300
      ],
      "parameters": {
        "width": 150,
        "height": 80,
        "content": "Connect your own Gmail account\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bc003781-3d91-49b6-b6bb-b2970b39256a",
      "name": "convert message to website url & instruction",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        940,
        -160
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/chat/completions",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"gpt-4o-2024-08-06\",\n  \"messages\": [\n              {\n        \"role\": \"user\",\n        \"content\": \"convert the following message to a website url (just the plain text url, NOT formatted or in markdown) and prompt to AI. Make the prompt as verbose as possible. Message: {{ $('New espionage assignment').first().json.assignment_instructions }}\"\n    }\n  ],\n  \"response_format\": {\n    \"type\": \"json_schema\",\n    \"json_schema\": {\n      \"name\": \"variable_extraction\",\n      \"schema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"website_url\": { \"type\": \"string\" },\n          \"prompt\": { \"type\": \"string\" }\n        },\n        \"required\": [\"website_url\", \"prompt\"],\n        \"additionalProperties\": false\n      },\n      \"strict\": true\n    }\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "openAiApi"
      },
      "credentials": {
        "openAiApi": {
          "id": "ZOKbogCxHnP2W0H5",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6a8c172d-ac39-4cb0-b601-39fc770695ed",
      "name": "New espionage assignment",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        700,
        -160
      ],
      "webhookId": "7470334f-93e1-47af-9521-d3a232c38b13",
      "parameters": {
        "options": {},
        "formTitle": "New espionage assignment",
        "formFields": {
          "values": [
            {
              "fieldLabel": "assignment_instructions"
            }
          ]
        }
      },
      "notesInFlow": false,
      "typeVersion": 2.2
    },
    {
      "id": "c5c64e5c-88de-45e3-bb9b-4096e74a6e83",
      "name": "wait 1 day",
      "type": "n8n-nodes-base.wait",
      "position": [
        940,
        80
      ],
      "webhookId": "22e689e4-b93d-4c59-81e5-43c070833454",
      "parameters": {
        "unit": "days",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "62a278ff-ed00-4e54-a608-001237551113",
      "name": "scrape page - 1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        80
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/scrape",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"url\": \"{{ $('parse results').item.json.website_url }}\",\n  \"formats\": [\n    \"markdown\"\n  ],\n  \"onlyMainContent\": true,\n  \"waitFor\": 5000\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpBasicAuth": {
          "id": "h2XRcXzLcEfvDVKb",
          "name": "Unnamed credential"
        },
        "httpHeaderAuth": {
          "id": "FoyIka0WgFG4FPxA",
          "name": "Header Auth account 2"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "89c15d8f-7f8e-4391-b24a-07579964ca5c",
      "name": "scrape page - 2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1180,
        80
      ],
      "parameters": {
        "url": "https://api.firecrawl.dev/v1/scrape",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"url\": \"{{ $('parse results').item.json.website_url }}\",\n  \"formats\": [\n    \"markdown\"\n  ],\n  \"onlyMainContent\": true,\n  \"waitFor\": 5000\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "FoyIka0WgFG4FPxA",
          "name": "Header Auth account 2"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "7b148c5b-d4ae-498a-b7ef-2ed4ecc0a665",
      "name": "send e-mail?",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1420,
        80
      ],
      "parameters": {
        "text": "={{ $('parse results').item.json.prompt }}\n\nNOTE: ONLY send an email if the situation meets the above condition. Otherwise, do NOT use the tool\n\nNOTE: this concerns differences between the \"old version page\" (scrape from yesterday) and \"new version page\" (scrape from now)",
        "options": {
          "systemMessage": "=old version page: \\n\\n {{ JSON.stringify($('scrape page - 1').item.json[\"data\"][\"markdown\"]) }} \\n\\n /// \\n\\n new version page: \\n\\n {{ JSON.stringify($('scrape page - 1').item.json[\"data\"][\"markdown\"]) }}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "7897d707-2c27-43bf-9ea0-90ab7996bf4a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        -260
      ],
      "parameters": {
        "width": 150,
        "height": 80,
        "content": "Connect your own OpenAI account\n"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "dec23eea-1590-4418-ab2b-1cb4a6ccfdc6",
  "connections": {
    "Gmail": {
      "ai_tool": [
        [
          {
            "node": "send e-mail?",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "wait 1 day": {
      "main": [
        [
          {
            "node": "scrape page - 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "send e-mail?": {
      "main": [
        [
          {
            "node": "scrape page - 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "parse results": {
      "main": [
        [
          {
            "node": "scrape page - 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "scrape page - 1": {
      "main": [
        [
          {
            "node": "wait 1 day",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "scrape page - 2": {
      "main": [
        [
          {
            "node": "send e-mail?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "send e-mail?",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "New espionage assignment": {
      "main": [
        [
          {
            "node": "convert message to website url & instruction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "convert message to website url & instruction": {
      "main": [
        [
          {
            "node": "parse results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Gmail, veille concurrentielle, scraping : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises de toutes tailles souhaitant optimiser leur veille concurrentielle. Il est particulièrement utile pour les équipes marketing et commerciales qui cherchent à automatiser la collecte d'informations et à améliorer leur efficacité. Un niveau technique de base est recommandé pour la personnalisation.

Workflow n8n Gmail, veille concurrentielle, scraping : problème résolu

Ce workflow résout le problème de la gestion manuelle des missions d'espionnage, qui peut être chronophage et sujette à des erreurs. En automatisant le processus, les utilisateurs éliminent les frustrations liées à la recherche d'informations et à la gestion des notifications. Le résultat est une veille concurrentielle plus efficace, permettant aux entreprises de réagir rapidement aux changements du marché.

Workflow n8n Gmail, veille concurrentielle, scraping : étapes du workflow

Étape 1 : Le workflow commence par un déclencheur de formulaire pour créer une nouvelle mission d'espionnage.

  • Étape 1 : Les informations sont envoyées au modèle de chat OpenAI pour générer des instructions.
  • Étape 2 : Ces instructions sont converties en une URL de site web via une requête HTTP.
  • Étape 3 : Deux pages sont scrappées pour extraire des données pertinentes.
  • Étape 4 : Après une attente d'un jour, le système vérifie si un email doit être envoyé.
  • Étape 5 : Si nécessaire, un email est envoyé via Gmail pour notifier l'utilisateur des résultats.

Workflow n8n Gmail, veille concurrentielle, scraping : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster le déclencheur de formulaire en fonction de vos besoins spécifiques. Modifiez les paramètres du modèle OpenAI pour affiner les instructions générées. Vous pouvez également changer les URLs dans les noeuds de scraping pour cibler d'autres sites web. Assurez-vous que les paramètres de l'email dans le noeud Gmail correspondent à votre configuration. Enfin, vous pouvez ajouter des conditions supplémentaires pour affiner l'envoi des notifications.