Workflow n8n

Automatisation Google Sheets avec n8n : gestion des avis clients

Ce workflow n8n a pour objectif d'automatiser la gestion des avis clients en intégrant des données provenant de G2 et en les stockant dans Google Sheets. Grâce à cette automatisation n8n, les entreprises peuvent suivre les avis de leurs concurrents et réagir rapidement aux nouvelles évaluations. Le processus commence par un déclencheur programmé qui exécute le workflow chaque jour. Ensuite, il utilise ScrapingBee pour récupérer les données des avis sur G2. Une fois les données extraites, le workflow analyse le contenu HTML des avis pour en extraire des informations structurées. Les avis sont ensuite convertis en format Markdown pour une meilleure lisibilité. Après cela, le workflow compare les nouveaux avis avec ceux déjà présents dans Google Sheets. Si un nouvel avis est détecté, il est envoyé à un canal Slack pour une notification instantanée et ajouté à la feuille de calcul Google Sheets pour un suivi continu. Cette automatisation permet aux équipes marketing et aux responsables de la relation client de rester informés des retours clients, d'améliorer leur réactivité et de prendre des décisions basées sur des données concrètes, renforçant ainsi leur stratégie de gestion de la réputation.

Tags clés :Google SheetsScrapingavis clientsautomatisationn8n
Catégorie: Scheduled · Tags: Google Sheets, Scraping, avis clients, automatisation, n8n0

Workflow n8n Google Sheets, Scraping, avis clients : vue d'ensemble

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

Workflow n8n Google Sheets, Scraping, avis clients : détail des nœuds

  • Add your competitors here

    Ce noeud permet d'ajouter des concurrents en utilisant du code JavaScript.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note1

    Ce noeud génère une note autocollante avec des dimensions et un contenu spécifiés.

  • Execute workflow every day

    Ce noeud déclenche l'exécution du workflow tous les jours selon une règle définie.

  • Get G2 data with ScrapingBee

    Ce noeud effectue une requête HTTP pour obtenir des données de G2 en utilisant ScrapingBee.

  • Get review section HTML

    Ce noeud extrait le code HTML de la section des avis.

  • Iterate on reviews

    Ce noeud itère sur les avis pour les traiter un par un.

  • Extract structured data

    Ce noeud extrait des données structurées à partir du HTML.

  • Convert Review HTML to Markdown

    Ce noeud convertit le HTML des avis en format Markdown.

  • Get all past reviews

    Ce noeud récupère tous les avis passés à partir de Google Sheets.

  • Continue only if review is new

    Ce noeud permet de continuer le workflow uniquement si l'avis est nouveau.

  • Send new review to Slack

    Ce noeud envoie un nouvel avis à un canal Slack spécifié.

  • Add new review to Google Sheets

    Ce noeud ajoute un nouvel avis dans Google Sheets avec les colonnes et options définies.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7"
  },
  "nodes": [
    {
      "id": "bd34c2fb-9892-408e-be1f-a25f6f9970ad",
      "name": "Add your competitors here",
      "type": "n8n-nodes-base.code",
      "position": [
        1260,
        800
      ],
      "parameters": {
        "jsCode": "return [\n  {\"competitor\":\"zendesk\"},\n  {\"competitor\":\"intercom\"},\n  {\"competitor\":\"dixa\"}\n]"
      },
      "typeVersion": 2
    },
    {
      "id": "ec726fe0-e85f-47b3-8cd9-05b94fc5f8ab",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1400,
        600
      ],
      "parameters": {
        "color": 7,
        "width": 235.65210573476693,
        "height": 396.04301075268825,
        "content": "Add your API key here\n\n1. Sign up here\nhttps://app.scrapingbee.com/\n\n2. Get your API key\n\n3. Paste it the node"
      },
      "typeVersion": 1
    },
    {
      "id": "fd7b88e5-ef30-488e-803e-aec43334c41b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        460
      ],
      "parameters": {
        "width": 465,
        "height": 342.8125,
        "content": "# Read me\nThis workflow monitor G2 reviews URLS. \n\nWhen a new review is published, it will: \n- trigger a Slack notification \n- record the review in Google Sheets\n\n\nTo install it, you'll need access to Slack, Google Sheets and ScrapingBee\n\n### Full guide here: https://lempire.notion.site/Scrape-G2-reviews-with-n8n-3f46e280e8f24a68b3797f98d2fba433?pvs=4"
      },
      "typeVersion": 1
    },
    {
      "id": "925c9ce9-1691-47bd-b184-5532cfa85da5",
      "name": "Execute workflow every day",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        980,
        560
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2dc9997d-fd94-4beb-b5be-8ec16b70f060",
      "name": "Get G2 data with ScrapingBee",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1460,
        800
      ],
      "parameters": {
        "url": "https://app.scrapingbee.com/api/v1",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 3
            }
          }
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": "YOUR_API_KEY"
            },
            {
              "name": "url",
              "value": "=https://www.g2.com/products/{{ $json.competitor }}/reviews?utf8=%E2%9C%93&order=most_recent "
            },
            {
              "name": "premium_proxy",
              "value": "true"
            },
            {
              "name": "country_code",
              "value": "us"
            },
            {
              "name": "stealth_proxy",
              "value": "true"
            }
          ]
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "b7472e8d-5abb-489b-bf32-5d36e7bce5cc",
      "name": "Get review section HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        1680,
        800
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "divs",
              "cssSelector": "div.paper.paper--white.paper--box.mb-2.position-relative.border-bottom",
              "returnArray": true,
              "returnValue": "html"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9ad1fb30-c388-4ad9-a299-9fb508b01a57",
      "name": "Iterate on reviews",
      "type": "n8n-nodes-base.itemLists",
      "position": [
        1840,
        800
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "divs"
      },
      "typeVersion": 3
    },
    {
      "id": "cb25b05d-2543-4d42-9c7e-2db5f534db2a",
      "name": "Extract structured data",
      "type": "n8n-nodes-base.html",
      "position": [
        2020,
        800
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "dataPropertyName": "divs",
        "extractionValues": {
          "values": [
            {
              "key": "date",
              "cssSelector": "div.d-f.mb-1"
            },
            {
              "key": "reviewHtml",
              "cssSelector": "div[itemprop=reviewBody]",
              "returnValue": "html"
            },
            {
              "key": "user_profile",
              "attribute": "href",
              "cssSelector": "a.td-n",
              "returnValue": "attribute"
            },
            {
              "key": "rating",
              "attribute": "content",
              "cssSelector": "meta[itemprop=ratingValue]",
              "returnValue": "attribute"
            },
            {
              "key": "reviewUrl",
              "attribute": "href",
              "cssSelector": "a.pjax",
              "returnValue": "attribute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4b2d088c-afc8-4bd9-80e1-0ef78fe94597",
      "name": "Convert Review HTML to Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        2200,
        800
      ],
      "parameters": {
        "html": "={{ $json.reviewHtml }}",
        "options": {},
        "destinationKey": "review"
      },
      "typeVersion": 1
    },
    {
      "id": "0c03c9a2-0ee8-4700-bf9d-f07b01fd9590",
      "name": "Get all past reviews",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1260,
        460
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Khbjjt_Dw0LdggwEE6sj300McXelmSR1ttoG8UNojyY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1Khbjjt_Dw0LdggwEE6sj300McXelmSR1ttoG8UNojyY/edit#gid=0"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "27d41c8f-694b-49bf-9ea7-24964e00b9b4",
      "name": "Continue only if review is new",
      "type": "n8n-nodes-base.merge",
      "position": [
        2420,
        480
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "joinMode": "keepNonMatches",
        "mergeByFields": {
          "values": [
            {
              "field1": "reviewUrl",
              "field2": "reviewUrl"
            }
          ]
        },
        "outputDataFrom": "input2"
      },
      "typeVersion": 2.1
    },
    {
      "id": "f4574136-c4ab-44ce-bf06-17b3c487867c",
      "name": "Send new review to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2760,
        480
      ],
      "parameters": {
        "text": "=🚨 New review in G2\n\nRating: {{ $json[\"rating\"] }}\n<{{ $json[\"user_profile\"]}}|See user in G2>\n<{{$json[\"reviewUrl\"]}}|See review in G2>\n\nReview Content:\n{{ $json.review }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "g2_reviews"
        },
        "otherOptions": {
          "botProfile": {
            "imageValues": {
              "icon_url": "https://upload.wikimedia.org/wikipedia/en/thumb/3/38/G2_Crowd_logo.svg/640px-G2_Crowd_logo.svg.png",
              "profilePhotoType": "image"
            }
          },
          "includeLinkToWorkflow": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "09076f69-32a4-4ddf-a662-10c0c0e35e7f",
      "name": "Add new review to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2760,
        700
      ],
      "parameters": {
        "columns": {
          "value": {
            "date": "={{ $json.date }}",
            "rating": "={{ $json.rating }}",
            "review": "={{ $json.review }}",
            "reviewUrl": "={{ $json.reviewUrl }}",
            "user_profile": "={{ $json.user_profile }}"
          },
          "schema": [
            {
              "id": "date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "rating",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "review",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "user_profile",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "user_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reviewUrl",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "reviewUrl",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "reviewUrl"
          ]
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Khbjjt_Dw0LdggwEE6sj300McXelmSR1ttoG8UNojyY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1Khbjjt_Dw0LdggwEE6sj300McXelmSR1ttoG8UNojyY/edit#gid=0"
        }
      },
      "typeVersion": 4
    }
  ],
  "pinData": {},
  "connections": {
    "Iterate on reviews": {
      "main": [
        [
          {
            "node": "Extract structured data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all past reviews": {
      "main": [
        [
          {
            "node": "Continue only if review is new",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract structured data": {
      "main": [
        [
          {
            "node": "Convert Review HTML to Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get review section HTML": {
      "main": [
        [
          {
            "node": "Iterate on reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add your competitors here": {
      "main": [
        [
          {
            "node": "Get G2 data with ScrapingBee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute workflow every day": {
      "main": [
        [
          {
            "node": "Get all past reviews",
            "type": "main",
            "index": 0
          },
          {
            "node": "Add your competitors here",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get G2 data with ScrapingBee": {
      "main": [
        [
          {
            "node": "Get review section HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Continue only if review is new": {
      "main": [
        [
          {
            "node": "Add new review to Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send new review to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert Review HTML to Markdown": {
      "main": [
        [
          {
            "node": "Continue only if review is new",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}

Workflow n8n Google Sheets, Scraping, avis clients : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux responsables de la relation client et aux PME souhaitant automatiser la gestion des avis clients. Il est idéal pour les entreprises qui utilisent Google Sheets pour le suivi de leurs données et qui souhaitent intégrer des informations provenant de plateformes externes comme G2. Un niveau technique intermédiaire est recommandé pour personnaliser le workflow.

Workflow n8n Google Sheets, Scraping, avis clients : problème résolu

Ce workflow résout le problème de la gestion manuelle des avis clients, qui peut être chronophage et source d'erreurs. En automatisant la collecte et l'analyse des avis, les entreprises peuvent réduire le temps consacré à cette tâche et minimiser le risque de manquer des retours importants. Les utilisateurs bénéficient d'une visibilité accrue sur la perception de leur marque et peuvent réagir rapidement aux nouvelles évaluations, améliorant ainsi leur réputation en ligne.

Workflow n8n Google Sheets, Scraping, avis clients : étapes du workflow

Étape 1 : Le workflow est déclenché quotidiennement par un planificateur.

  • Étape 1 : Il utilise ScrapingBee pour récupérer les données des avis sur G2.
  • Étape 2 : Le contenu HTML des avis est extrait pour obtenir des données structurées.
  • Étape 3 : Les avis sont convertis en format Markdown pour une meilleure présentation.
  • Étape 4 : Le workflow compare les nouveaux avis avec ceux déjà stockés dans Google Sheets.
  • Étape 5 : Si un nouvel avis est trouvé, il est envoyé à Slack pour notification et ajouté à Google Sheets pour un suivi continu.

Workflow n8n Google Sheets, Scraping, avis clients : guide de personnalisation

Pour personnaliser ce workflow, commencez par modifier l'URL de ScrapingBee pour cibler la page d'avis de votre choix. Assurez-vous également que le document Google Sheets est correctement configuré avec les colonnes appropriées pour accueillir les nouveaux avis. Vous pouvez ajuster les paramètres de notification Slack pour choisir le canal approprié. Pensez à sécuriser votre workflow en configurant des autorisations d'accès pour les outils utilisés et en surveillant les exécutions pour détecter d'éventuelles erreurs.