Workflow n8n

Automatisation Google Sheets avec n8n : gestion des clients simplifiée

Ce workflow n8n a pour objectif d'automatiser la gestion des clients à partir de Google Sheets. Il s'adresse aux entreprises qui souhaitent optimiser leur processus de collecte et de traitement des données clients. Grâce à cette automatisation n8n, les utilisateurs peuvent facilement extraire des informations sur les clients, les organiser et les convertir en fichiers CSV pour une intégration dans Squarespace. Le workflow débute avec un déclencheur manuel, permettant aux utilisateurs de tester le flux à leur convenance. Ensuite, il utilise un nœud de code pour extraire les informations de la page, suivi d'une fusion des éléments en boucle pour traiter les données de manière efficace. Un nœud de planification permet d'exécuter le workflow à intervalles réguliers, garantissant ainsi que les données sont toujours à jour. Le nœud HTTP Request est utilisé pour récupérer les clients, tandis que le nœud Google Sheets enregistre les informations dans un document spécifique. Enfin, les données sont converties en un fichier CSV, facilitant leur utilisation dans d'autres applications. En intégrant ce workflow, les entreprises peuvent réduire le temps consacré à la gestion manuelle des données, minimiser les erreurs et améliorer l'efficacité globale de leur processus de gestion des clients.

Tags clés :Google Sheetsautomatisationn8ngestion des clientsworkflow
Catégorie: Manual · Tags: Google Sheets, automatisation, n8n, gestion des clients, workflow0

Workflow n8n Google Sheets, gestion des 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, gestion des clients : détail des nœuds

  • When clicking ‘Test workflow’

    Déclenche le workflow lorsque l'utilisateur clique sur 'Test workflow'.

  • Extract page_info

    Extrait les informations de la page à l'aide d'un code JavaScript.

  • Merge Loop items

    Fusionne les éléments d'une boucle en utilisant un code JavaScript.

  • Sticky Note

    Affiche une note autocollante avec des dimensions et un contenu spécifiés.

  • Sticky Note1

    Affiche une seconde note autocollante avec des dimensions et un contenu spécifiés.

  • Schedule Trigger

    Déclenche le workflow selon un calendrier défini par une règle.

  • Assign page_info parameter

    Assigne des paramètres d'informations de page à des variables spécifiques.

  • Check page_info existence

    Vérifie l'existence des informations de page selon des conditions spécifiées.

  • Get Customers

    Effectue une requête HTTP pour récupérer des données clients à partir d'une URL.

  • List Customers

    Divise les données des clients en fonction d'un champ spécifié.

  • Customers Spreadsheet

    Interagit avec Google Sheets pour gérer des données clients dans une feuille de calcul.

  • Convert to Squarespace contacts csv

    Convertit les données en un fichier CSV pour les contacts Squarespace.

  • Extract customers data

    Extrait les données des clients et les assigne à des variables.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "e634e668fe1fc93a75c4f2a7fc0dad807ca318b79654157eadb9578496acbc76",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ff5634c3-349b-4181-a03a-97b310e5232b",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        120,
        60
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "66e204fb-3e00-45e0-b1b2-341836476b95",
      "name": "Extract page_info ",
      "type": "n8n-nodes-base.code",
      "position": [
        900,
        120
      ],
      "parameters": {
        "jsCode": "function parseNextParams(headerValue) {\n    // Match the URL inside <>\n    const urlMatch = headerValue.match(/<([^>]+)>;\\s*rel=\"next\"/);\n    if (!urlMatch) return null;\n\n    const url = urlMatch[1]; // Extracted URL\n    const paramsString = url.split(\"?\")[1]; // Get query string\n\n    if (!paramsString) return {}; // No params found\n\n    // Convert query string to object\n    return paramsString.split(\"&\").reduce((acc, param) => {\n        const [key, value] = param.split(\"=\");\n        acc[decodeURIComponent(key)] = decodeURIComponent(value);\n        return acc;\n    }, {});\n}\n\n/* Example usage\n`<https://59b774-3.myshopify.com/admin/api/2025-01/orders.json?limit=250&fields=id%2Cnote%2Cemail%2Cprocessed_at%2Ccustomer&page_info=eyJzdGF0dXMiOiJhbnkiLCJsYXN0X2lkIjo2MzQ5MjI3MDAwMDk0LCJsYXN0X3ZhbHVlIjoiMjAyNC0xMi0zMSAwOToxMzowMi42MTcxNjYiLCJkaXJlY3Rpb24iOiJuZXh0In0>; rel=\"next\"`\n*/\nconst headerValue = $input.first().json.headers.link;\nconst params = parseNextParams(headerValue);\nreturn params;"
      },
      "typeVersion": 2
    },
    {
      "id": "5b0086ce-f09b-4d55-86b6-9a14574506ab",
      "name": "Merge Loop items",
      "type": "n8n-nodes-base.code",
      "position": [
        1120,
        -100
      ],
      "parameters": {
        "jsCode": "let results = [],\n  i = 0;\n\ndo {\n  try {\n    results = results.concat($(\"Get Customers\").all(0, i));\n  } catch (error) {\n    return results;\n  }\n  i++;\n} while (true);"
      },
      "typeVersion": 2
    },
    {
      "id": "2302257c-51c0-42d7-8745-ecc0b4fc9faf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        -160
      ],
      "parameters": {
        "width": 232,
        "height": 346,
        "content": "## Edit this node 👇\n\nGet your store URL and replace in the GET url: https://{your-store}.myshopify.com/admin/api/2025-01/customers.json\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d857962a-6599-44b2-acb0-3eb8165e93ce",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1560,
        -440
      ],
      "parameters": {
        "width": 272,
        "height": 506,
        "content": "## Clone this spreadsheet\n\nhttps://docs.google.com/spreadsheets/d/1E8i98hwiFW7XG9HuxIZrOWfuLxGFaDm3EOAGQBZjhfk/edit?usp=sharing\n\nYour spreadsheet can have up to three columns, and need to be arranged in this order (no header):\n\nEmail address\nFirst name (optional)\nLast name (optional)\nShopify Customer ID (will be ignored)"
      },
      "typeVersion": 1
    },
    {
      "id": "be7cf143-893a-44f8-ace9-8ad581bddb68",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        120,
        -120
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "58097363-29ec-4067-a439-717d355df91f",
      "name": "Assign page_info parameter",
      "type": "n8n-nodes-base.set",
      "position": [
        1120,
        120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "57e59bb7-ac20-4a1b-b54a-3468fc0519d3",
              "name": "page_info",
              "type": "string",
              "value": "={{ $json.page_info }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0676abce-4405-42a1-87d3-ba75355fe264",
      "name": "Check page_info existence",
      "type": "n8n-nodes-base.if",
      "position": [
        720,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "30d965c3-cbba-430e-81c2-ef8b543665e7",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.headers.link }}",
              "rightValue": "rel=\"next\""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1cc63979-b2f8-4678-b40b-f3f0ad63d377",
      "name": "Get Customers",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        500,
        0
      ],
      "parameters": {
        "url": "https://{your-store}.myshopify.com/admin/api/2025-01/customers.json",
        "options": {
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        },
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "250"
            },
            {
              "name": "fields",
              "value": "id,email,first_name,last_name"
            },
            {
              "name": "={{ $json.page_info ? \"page_info\" : \"status\" }}",
              "value": "={{ $json.page_info ? $json.page_info : 'any' }}"
            }
          ]
        },
        "nodeCredentialType": "shopifyAccessTokenApi"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "id": "vtyKGPLLdjc7MLea",
          "name": "Shopify Access Token account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ce91af42-1634-4773-944a-2b24dcaf812b",
      "name": "List Customers",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1380,
        -100
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "body.customers"
      },
      "typeVersion": 1
    },
    {
      "id": "19a0f6a7-b86a-43bd-8504-62e3bd37af89",
      "name": "Customers Spreadsheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1620,
        -100
      ],
      "parameters": {
        "columns": {
          "value": {
            "Last name": "={{ $json.last_name }}",
            "First name": "={{ $json.first_name }}",
            "Email address": "={{ $json.email }}",
            "Shopify Customer ID": "={{ $json.id }}"
          },
          "schema": [
            {
              "id": "Email address",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "First name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Last name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Shopify Customer ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Shopify Customer ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Shopify Customer ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1358690917,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM/edit#gid=1358690917",
          "cachedResultName": "sqs_contacts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM/edit?usp=drivesdk",
          "cachedResultName": "Squarespace automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JgI9maibw5DnBXRP",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "48ec5e3b-9bb5-451c-9495-b03080c9211e",
      "name": "Convert to Squarespace contacts csv",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1920,
        160
      ],
      "parameters": {
        "options": {
          "headerRow": false
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "8de9174a-af87-4602-a9aa-a5c35a3f0ed4",
      "name": "Extract customers data",
      "type": "n8n-nodes-base.set",
      "position": [
        1620,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "27c42d50-df07-46b4-b67a-13a1b64b5145",
              "name": "Email address",
              "type": "string",
              "value": "={{ $json['Email address'] }}"
            },
            {
              "id": "9fd2c3fd-9b03-4562-ad78-9ce30da7bb26",
              "name": "First name",
              "type": "string",
              "value": "={{ $json['First name'] }}"
            },
            {
              "id": "f51b7da6-0065-41ea-b04c-420058ce3b9c",
              "name": "Last name",
              "type": "string",
              "value": "={{ $json['Last name'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "pinData": {},
  "connections": {
    "Get Customers": {
      "main": [
        [
          {
            "node": "Check page_info existence",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Customers": {
      "main": [
        [
          {
            "node": "Customers Spreadsheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract customers data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Loop items": {
      "main": [
        [
          {
            "node": "List Customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract page_info ": {
      "main": [
        [
          {
            "node": "Assign page_info parameter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Customers Spreadsheet": {
      "main": [
        []
      ]
    },
    "Extract customers data": {
      "main": [
        [
          {
            "node": "Convert to Squarespace contacts csv",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check page_info existence": {
      "main": [
        [
          {
            "node": "Merge Loop items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract page_info ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assign page_info parameter": {
      "main": [
        [
          {
            "node": "Get Customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Get Customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Squarespace contacts csv": {
      "main": [
        []
      ]
    }
  }
}

Workflow n8n Google Sheets, gestion des clients : pour qui est ce workflow ?

Ce workflow s'adresse aux PME et aux équipes marketing souhaitant automatiser la gestion de leurs données clients. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, familiarisés avec les outils d'automatisation et de gestion de données.

Workflow n8n Google Sheets, gestion des clients : problème résolu

Ce workflow résout le problème de la gestion manuelle des données clients, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la saisie manuelle et à la mise à jour des informations. Ils obtiennent ainsi une solution efficace pour gérer leurs contacts, ce qui leur permet de se concentrer sur des tâches à plus forte valeur ajoutée.

Workflow n8n Google Sheets, gestion des clients : étapes du workflow

Étape 1 : Le workflow commence par un déclencheur manuel qui permet de tester le flux.

  • Étape 1 : Ensuite, il utilise un nœud de code pour extraire les informations de la page.
  • Étape 2 : Les données sont ensuite fusionnées grâce à un nœud de traitement en boucle.
  • Étape 3 : Un nœud de planification est mis en place pour exécuter le workflow à intervalles réguliers.
  • Étape 4 : Les informations clients sont récupérées via un nœud HTTP Request.
  • Étape 5 : Ces données sont ensuite enregistrées dans Google Sheets.
  • Étape 6 : Enfin, les informations sont converties en un fichier CSV pour une utilisation dans Squarespace.

Workflow n8n Google Sheets, gestion des clients : guide de personnalisation

Pour personnaliser ce workflow, les utilisateurs peuvent modifier les paramètres du nœud de planification pour ajuster la fréquence d'exécution. Ils peuvent également changer l'URL dans le nœud HTTP Request pour récupérer des données d'une autre source. Il est possible de personnaliser le nom de la feuille dans le nœud Google Sheets pour correspondre à leur structure de données. Les utilisateurs peuvent également adapter le code dans les nœuds de traitement pour répondre à des besoins spécifiques en matière de formatage ou de filtrage des données. Enfin, il est recommandé de sécuriser les accès aux données en configurant correctement les authentifications nécessaires.