Workflow n8n

Automatisation n8n : gestion des commandes avec Google Sheets

Ce workflow n8n a pour objectif d'automatiser la gestion des commandes en intégrant Google Sheets. Dans un contexte où les entreprises doivent traiter un volume croissant de commandes, ce workflow permet de simplifier et d'accélérer le processus. En utilisant un déclencheur de type 'Schedule Trigger', il interroge régulièrement les commandes en attente via une requête HTTP. Ensuite, il filtre ces commandes pour ne garder que celles qui répondent à des critères spécifiques, ce qui permet d'optimiser le traitement des données. Une fois les commandes filtrées, le workflow utilise le noeud 'Loop Over Items' pour traiter chaque commande individuellement. Pour chaque commande, une nouvelle requête HTTP est effectuée pour la remplir, garantissant ainsi que toutes les commandes sont traitées efficacement. Ce processus d'automatisation n8n réduit les erreurs humaines et améliore la réactivité des équipes. En fin de compte, cette automatisation permet aux entreprises de gagner du temps, d'augmenter leur productivité et d'améliorer la satisfaction client.

Tags clés :automatisationGoogle Sheetsworkflowgestion des commandesn8n
Catégorie: Scheduled · Tags: automatisation, Google Sheets, workflow, gestion des commandes, n8n0

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

  • On clicking 'execute'

    Ce noeud déclenche manuellement l'exécution du workflow.

  • Split Out Order

    Ce noeud permet de séparer des données d'une commande en fonction d'un champ spécifié.

  • Globals

    Ce noeud définit des variables globales à utiliser dans le workflow.

  • Sticky Note3

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

  • Schedule Trigger

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

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de taille et de contenu.

  • Query pending Orders

    Ce noeud effectue une requête HTTP pour interroger les commandes en attente.

  • Loop Over Items

    Ce noeud permet de traiter les éléments en les divisant en lots.

  • Fulfill Order

    Ce noeud effectue une requête HTTP pour exécuter la commande.

  • Sticky Note4

    Ce noeud crée une note autocollante avec des paramètres de taille et de contenu.

  • Sticky Note1

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

  • Filter Orders

    Ce noeud filtre les commandes en fonction de conditions spécifiées.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "e634e668fe1fc93a75c4f2a7fc0dad807ca318b79654157eadb9578496acbc76"
  },
  "nodes": [
    {
      "id": "754006f5-1a7e-4e29-9850-e38b1d0c0d09",
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        360,
        80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6b7b0d05-38cc-4c2d-8a71-874ff5ad29d9",
      "name": "Split Out Order ",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1080,
        200
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "result"
      },
      "typeVersion": 1
    },
    {
      "id": "1494f1ff-f377-4d56-8da7-274f0c182588",
      "name": "Globals",
      "type": "n8n-nodes-base.set",
      "position": [
        600,
        200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7411b768-9861-414c-aeaa-2743b3d61a3b",
              "name": "api-version",
              "type": "string",
              "value": "1.0"
            },
            {
              "id": "6cf546c5-5737-4dbd-851b-17d68e0a3780",
              "name": "modifiedAfter",
              "type": "string",
              "value": ""
            },
            {
              "id": "452efa28-2dc6-4ea3-a7a2-c35d100d0382",
              "name": "modifiedBefore",
              "type": "string",
              "value": ""
            },
            {
              "id": "81c4dc54-86bf-4432-a23f-22c7ea831e74",
              "name": "cursor",
              "type": "string",
              "value": ""
            },
            {
              "id": "fa31a552-0d2d-4eb3-8476-44024e1fdc81",
              "name": "fulfillmentStatus",
              "type": "string",
              "value": "PENDING"
            },
            {
              "id": "489ff3e6-7bc3-4940-9312-e4ace8e1db9f",
              "name": "maxPage",
              "type": "number",
              "value": -1
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "01557e82-9f89-4030-af0f-6663ea945191",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        80
      ],
      "parameters": {
        "color": 4,
        "width": 150,
        "height": 80,
        "content": "## Edit this node 👇"
      },
      "typeVersion": 1
    },
    {
      "id": "9d9d361a-dd12-4c57-9f76-7c4738b5af1e",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        360,
        340
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a3e41614-ca4e-4730-a4ab-1e9933ef71d5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 320,
        "height": 660,
        "content": "## Squarespace Fulfillment Automation with n8n\nRetrieves all Squarespace Orders and mark them as fulfilled automatically Squarespace Commerce API\n\n### Setup\nOpen `Globals` node and update the values below 👇\n\n- **api-version** (string, required) – The current API version (see Squarespace Orders API documentation).\n- **modifiedAfter**={a-datetime} (string, conditional) – Fetch orders modified after a specific date (ISO 8601 format).\n- **modifiedBefore**={b-datetime} (string, conditional) – Fetch orders modified before a specific date (ISO 8601 format).\n- **cursor**={c} (string, conditional) – Used for pagination, cannot be combined with other filters.\n- **fulfillmentStatus**: PENDING, FULFILLED, or CANCELED.\n- **maxPage** – Set -1 to enables infinite pagination to fetch all available orders.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bc78dac5-3fa9-4b65-a5c3-2196ed53a81c",
      "name": "Query pending Orders",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        200
      ],
      "parameters": {
        "url": "=https://api.squarespace.com/{{ $json[\"api-version\"] }}/commerce/orders",
        "options": {
          "pagination": {
            "pagination": {
              "parameters": {
                "parameters": [
                  {
                    "name": "cursor",
                    "value": "={{ $response.body.pagination.nextPageCursor }}"
                  }
                ]
              },
              "maxRequests": "={{ $json.maxPage === -1 ? Infinity : $json.maxPage }}",
              "limitPagesFetched": true,
              "completeExpression": "={{ !$response.body.pagination.nextPageCursor }}",
              "paginationCompleteWhen": "other"
            }
          }
        },
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "modifiedAfter",
              "value": "={{ $json.modifiedAfter }}"
            },
            {
              "name": "=modifiedBefore",
              "value": "={{ $json.modifiedBefore }}"
            },
            {
              "name": "cursor",
              "value": "={{ $json.cursor }}"
            },
            {
              "name": "=fulfillmentStatus",
              "value": "={{ $json.fulfillmentStatus }}"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "5eAFOixVzslPr99y",
          "name": "Squarespace OAuth 2.0"
        },
        "httpHeaderAuth": {
          "id": "iiLmD473RYjGLbCA",
          "name": "Squarespace API key - Apps script"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a5723a03-41d1-49a9-9baa-c7482fdf82a3",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1640,
        200
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7e656389-ca9c-4ff4-9db1-68f84a13e605",
      "name": "Fulfill Order",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1940,
        200
      ],
      "parameters": {
        "url": "=https://api.squarespace.com/{{ $('Globals').item.json[\"api-version\"] }}/commerce/orders/{{ $('Filter Orders').item.json.id }}/fulfillments",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"shouldSendNotification\": true\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api"
      },
      "credentials": {
        "oAuth2Api": {
          "id": "5eAFOixVzslPr99y",
          "name": "Squarespace OAuth 2.0"
        },
        "httpHeaderAuth": {
          "id": "iiLmD473RYjGLbCA",
          "name": "Squarespace API key - Apps script"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b14b6db8-a027-41c2-a030-aa09b0003d73",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        0
      ],
      "parameters": {
        "width": 232,
        "height": 346,
        "content": "## Create fulfillment  👇\n\n[Fulfill an order](https://developers.squarespace.com/commerce-apis/fulfill-order)\n- `shouldSendNotification` to send notifications to customer"
      },
      "typeVersion": 1
    },
    {
      "id": "effd0876-0003-4e3f-ad61-cfe3d4391e67",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -80
      ],
      "parameters": {
        "height": 440,
        "content": "## Filtering orders for fulfillment 👇\nFilter the valid orders for programatically fulfillments\n\n- you exclusively sell digital downloads or digital gift cards\n- you use fulfillment services for all your products\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ac8538f5-b93b-43c5-9100-33fe3f6cd70b",
      "name": "Filter Orders",
      "type": "n8n-nodes-base.filter",
      "position": [
        1340,
        200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "298103c1-a5b4-407e-aba6-bee37463422f",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ (new Date().getTime() - new Date($json.createdOn).getTime()) / (1000 * 60 * 60) }}",
              "rightValue": 24
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "pinData": {},
  "connections": {
    "Globals": {
      "main": [
        [
          {
            "node": "Query pending Orders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Orders": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fulfill Order": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Fulfill Order",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Order ": {
      "main": [
        [
          {
            "node": "Filter Orders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Query pending Orders": {
      "main": [
        [
          {
            "node": "Split Out Order ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Ce workflow s'adresse aux entreprises de taille moyenne à grande qui gèrent un volume important de commandes. Les équipes opérationnelles et logistiques, ainsi que les responsables de la gestion des commandes, trouveront un grand intérêt à utiliser cette automatisation n8n. Un niveau technique intermédiaire est recommandé pour une mise en place efficace.

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

Ce workflow résout le problème de la gestion manuelle des commandes, qui peut être source d'erreurs et de retards. En automatisant le processus, il élimine les frustrations liées à la saisie manuelle des données et réduit le risque d'erreurs. Les utilisateurs bénéficient d'un traitement rapide et fiable des commandes, ce qui se traduit par une amélioration de la satisfaction client et une meilleure efficacité opérationnelle.

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

Étape 1 : Le workflow est déclenché par un 'Schedule Trigger' qui interroge les commandes à intervalles réguliers.

  • Étape 1 : Les commandes en attente sont récupérées via le noeud 'Query pending Orders' en utilisant une requête HTTP.
  • Étape 2 : Les commandes sont filtrées avec le noeud 'Filter Orders' pour ne garder que celles qui répondent aux critères définis.
  • Étape 3 : Le noeud 'Loop Over Items' permet de traiter chaque commande individuellement.
  • Étape 4 : Pour chaque commande, le noeud 'Fulfill Order' envoie une requête HTTP pour finaliser le traitement de la commande.
  • Étape 5 : Des notes autocollantes sont ajoutées pour visualiser les différentes étapes du workflow.

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

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP dans les noeuds 'Query pending Orders' et 'Fulfill Order' pour les adapter à votre API. Vous pouvez également ajuster les conditions dans le noeud 'Filter Orders' pour cibler des commandes spécifiques selon vos besoins. Si vous souhaitez changer la fréquence des vérifications, modifiez la règle dans le noeud 'Schedule Trigger'. Pensez à sécuriser vos requêtes HTTP en utilisant des méthodes d'authentification appropriées. Enfin, vous pouvez ajouter d'autres noeuds pour intégrer des outils supplémentaires selon vos processus métier.