Workflow n8n

Automatisation n8n : gestion de snapshots avec Google Sheets

Ce workflow n8n a pour objectif de gérer efficacement des snapshots dans Google Sheets, permettant ainsi aux équipes de suivre les modifications et de conserver un historique des données. Dans un contexte où la gestion des données est cruciale pour la prise de décision, ce workflow s'adresse particulièrement aux entreprises qui souhaitent automatiser leurs processus de sauvegarde et de suivi des modifications. Les cas d'usage incluent la création, la mise à jour et la suppression de snapshots, facilitant ainsi la gestion des informations critiques. Le workflow commence par un déclencheur programmé qui active le processus à intervalles réguliers. Ensuite, il utilise des nœuds HTTP pour interagir avec l'API de Google Sheets, notamment pour l'autorisation et la récupération des instances de données. Des nœuds de type 'Set' sont utilisés pour définir les attributs des snapshots, tandis que des nœuds 'Sticky Note' permettent de garder une trace des informations importantes tout au long du processus. Les étapes incluent également des vérifications pour s'assurer qu'aucun snapshot existant n'est supprimé par erreur, garantissant ainsi l'intégrité des données. En intégrant ce workflow, les entreprises peuvent réduire les erreurs humaines, gagner du temps et améliorer leur efficacité opérationnelle, tout en ayant une meilleure visibilité sur leurs données. Tags clés : automatisation, Google Sheets, workflow.

Catégorie: Scheduled · Tags: automatisation, Google Sheets, workflow, n8n, gestion de données0

Vue d'ensemble du workflow n8n

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

Détail des nœuds du workflow n8n

  • Set snapshot attributes

    Ce noeud définit les attributs d'un instantané en utilisant des options et des assignations.

  • Schedule Trigger

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

  • When clicking ‘Test workflow’

    Ce noeud permet de tester manuellement le workflow.

  • Credential

    Ce noeud définit des informations d'identification à utiliser dans le workflow.

  • Sticky Note

    Ce noeud crée une note autocollante avec un contenu spécifié et des dimensions données.

  • Authorization

    Ce noeud effectue une requête HTTP pour l'autorisation en utilisant les paramètres spécifiés.

  • List instances

    Ce noeud effectue une requête HTTP pour lister les instances disponibles.

  • Split Out

    Ce noeud divise les données en fonction d'un champ spécifié.

  • UUID

    Ce noeud effectue une requête HTTP pour générer un UUID.

  • TRACE ID

    Ce noeud effectue une requête HTTP pour obtenir un TRACE ID.

  • Sticky Note1

    Ce noeud crée une seconde note autocollante avec un contenu et des dimensions spécifiés.

  • List snapshots

    Ce noeud effectue une requête HTTP pour lister les instantanés disponibles.

  • UUID1

    Ce noeud effectue une requête HTTP pour générer un autre UUID.

  • Sticky Note2

    Ce noeud crée une troisième note autocollante avec un contenu et des dimensions spécifiés.

  • Sticky Note3

    Ce noeud crée une quatrième note autocollante avec un contenu et des dimensions spécifiés.

  • Merge

    Ce noeud fusionne les données provenant de plusieurs flux selon les options spécifiées.

  • get Date & Time

    Ce noeud récupère la date et l'heure actuelles selon les options définies.

  • Delete existing snapshot

    Ce noeud effectue une requête HTTP pour supprimer un instantané existant.

  • Create a new snapshot

    Ce noeud effectue une requête HTTP pour créer un nouvel instantané.

  • Create a new snapshot1

    Ce noeud effectue une requête HTTP pour créer un autre nouvel instantané.

  • UUID2

    Ce noeud effectue une requête HTTP pour générer un UUID supplémentaire.

  • UUID3

    Ce noeud effectue une requête HTTP pour générer un autre UUID.

  • UUID4

    Ce noeud effectue une requête HTTP pour générer un UUID encore différent.

  • Sticky Note4

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

  • Sticky Note5

    Ce noeud crée une sixième note autocollante avec un contenu et des dimensions spécifiés.

  • Sticky Note6

    Ce noeud crée une septième note autocollante avec un contenu et des dimensions spécifiés.

  • Formatted Date

    Ce noeud formate une date selon un format spécifié et des options données.

  • Whether snapshot there is no snapshot

    Ce noeud vérifie si aucun instantané n'existe selon les conditions spécifiées.

  • set snapshot attributes

    Ce noeud définit à nouveau les attributs d'un instantané en utilisant des options et des assignations.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
    "templateId": "2403"
  },
  "nodes": [
    {
      "id": "15739f4e-3267-4655-9118-d3c617652f23",
      "name": "Set snapshot attributes",
      "type": "n8n-nodes-base.set",
      "position": [
        3460,
        840
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "71a51067-08ed-4300-a831-48f1d7d2ada2",
              "name": "data[0].snapshotId",
              "type": "string",
              "value": "={{ $json.data[0].snapshotId }}"
            },
            {
              "id": "00161e54-f324-4f6e-a5df-d27d1c4b7706",
              "name": "displayName",
              "type": "string",
              "value": "={{ $json.displayName }}"
            },
            {
              "id": "b4fbf9e6-c634-4dc7-b75e-44aa048b2e32",
              "name": "instanceId",
              "type": "number",
              "value": "={{ $json.instanceId }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c82ed7b8-c723-46eb-b0fc-1d9da7265a1a",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        540,
        660
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "68b9319b-00b8-480b-b8bc-447e78d4e983",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        540,
        880
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "657f763f-fc10-4d71-aabd-c9af6c041f4f",
      "name": "Credential",
      "type": "n8n-nodes-base.set",
      "position": [
        1260,
        780
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "135cfcc3-050e-4128-b6b0-b8905d160498",
              "name": "CLIENT_ID",
              "type": "string",
              "value": ""
            },
            {
              "id": "b05aa3e9-80c6-474f-b653-8e49654e3da7",
              "name": "CLIENT_SECRET",
              "type": "string",
              "value": ""
            },
            {
              "id": "72c345ba-674e-4db2-946e-bb4a9e6f8763",
              "name": "API_USER",
              "type": "string",
              "value": ""
            },
            {
              "id": "7d1d03e3-86cc-4fd1-9d2a-a3771d913565",
              "name": "API_PASSWORD",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c74b0511-0eaf-4ae5-b6f2-8dd06186e826",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        480
      ],
      "parameters": {
        "width": 427,
        "height": 519,
        "content": "## Credential\n\nInformation required to access Contabo API\n\n- CLIENT_ID\n- CLIENT_SECRET\n- API_USER\n- API_PASSWORD\n\n[Contabo Credential](https://my.contabo.com/api/details)\n\n[Contabo API Doc](https://api.contabo.com/)"
      },
      "typeVersion": 1
    },
    {
      "id": "4d991799-ba21-4154-886b-d25901245176",
      "name": "Authorization",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1460,
        780
      ],
      "parameters": {
        "url": "https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "client_id",
              "value": "={{ $json.CLIENT_ID }}"
            },
            {
              "name": "client_secret",
              "value": "={{ $json.CLIENT_SECRET }}"
            },
            {
              "name": "username",
              "value": "={{ $json.API_USER }}"
            },
            {
              "name": "password",
              "value": "={{ $json.API_PASSWORD }}"
            },
            {
              "name": "grant_type",
              "value": "password"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/x-www-form-urlencoded"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c9bd2ce9-5587-4155-b3ca-192caa48be4c",
      "name": "List instances",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2240,
        780
      ],
      "parameters": {
        "url": "https://api.contabo.com/v1/compute/instances",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Authorization').item.json['token_type'] }} {{ $('Authorization').item.json['access_token'] }}"
            },
            {
              "name": "x-request-id",
              "value": "={{ $('UUID').item.json['data'] }}"
            },
            {
              "name": "x-trace-id",
              "value": "={{ $('TRACE ID').item.json['data'] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "52caf65c-d46a-4ff0-8b01-5ced05fd083d",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2440,
        780
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "e152da50-7067-4f9d-91a0-564626633330",
      "name": "UUID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1740,
        780
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "8c86a299-d8b3-4806-b885-37d67e9ba8a4",
      "name": "TRACE ID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1960,
        780
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "6ab188c6-dfc3-4e9e-83b8-32bc778917e4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1720,
        477.28137513294257
      ],
      "parameters": {
        "width": 411.2199570815453,
        "height": 521.9218381008977,
        "content": "## get UUID\n\nGenerates the UUIDs that will be used in the 'x-request-id' and 'x-trace-id'\n\n[uuidgenerator](https://www.uuidgenerator.net/api)"
      },
      "typeVersion": 1
    },
    {
      "id": "41364273-55db-411b-a59a-0faf01857806",
      "name": "List snapshots",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2860,
        680
      ],
      "parameters": {
        "url": "=https://api.contabo.com/v1/compute/instances/{{ $('Split Out').item.json['instanceId'] }}/snapshots",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Authorization').item.json['token_type'] }} {{ $('Authorization').item.json['access_token'] }}"
            },
            {
              "name": "x-request-id",
              "value": "={{ $('UUID1').item.json['data'] }}"
            },
            {
              "name": "x-trace-id",
              "value": "={{ $('TRACE ID').item.json['data'] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "919fed8d-704e-4b1f-9358-f2a4422b7132",
      "name": "UUID1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2680,
        680
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "630975b0-41f6-4025-9b7e-a464c2b5f4fa",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2200,
        480
      ],
      "parameters": {
        "width": 384,
        "height": 279,
        "content": "## List your instances     "
      },
      "typeVersion": 1
    },
    {
      "id": "f1a39319-5743-4836-8840-5d2b51746682",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        480
      ],
      "parameters": {
        "width": 733.0237288135586,
        "height": 467.2593220338978,
        "content": "## List existing Snapshots\n\n- Generates a new UUID for the request\n\n- Checks if the instance already has a Snapshot"
      },
      "typeVersion": 1
    },
    {
      "id": "5f453f4f-f509-4613-9692-c16e1a8d3c53",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        3040,
        820
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3
    },
    {
      "id": "2e12506f-4e8d-4053-b662-d1ff9d33ecf7",
      "name": "get Date & Time",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        840,
        780
      ],
      "parameters": {
        "options": {
          "timezone": "America/Sao_Paulo"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2
    },
    {
      "id": "c06bf642-253f-4cec-8c0f-97edff450c1b",
      "name": "Delete existing snapshot",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3780,
        840
      ],
      "parameters": {
        "url": "=https://api.contabo.com/v1/compute/instances/{{ $('Set snapshot attributes').item.json['instanceId'] }}/snapshots/{{ $('Set snapshot attributes').item.json['data'][0].snapshotId }}",
        "method": "DELETE",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Authorization').item.json['token_type'] }} {{ $('Authorization').item.json['access_token'] }}"
            },
            {
              "name": "x-request-id",
              "value": "={{ $('UUID3').item.json['data'] }}"
            },
            {
              "name": "x-trace-id",
              "value": "={{ $('TRACE ID').item.json['data'] }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "f7a1d94d-c10d-400a-b9ed-7135def2d809",
      "name": "Create a new snapshot",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4360,
        660
      ],
      "parameters": {
        "url": "=https://api.contabo.com/v1/compute/instances/{{ $('set snapshot attributes').item.json['instanceId'] }}/snapshots",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $('Formatted Date').item.json['formattedDate'] }}"
            },
            {
              "name": "description",
              "value": "={{ $('set snapshot attributes').item.json['displayName'] }} {{ $('Formatted Date').item.json['formattedDate'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Authorization').item.json['token_type'] }} {{ $('Authorization').item.json['access_token'] }}"
            },
            {
              "name": "x-request-id",
              "value": "={{ $('UUID2').item.json['data'] }}"
            },
            {
              "name": "x-trace-id",
              "value": "={{ $('TRACE ID').item.json['data'] }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "dfc5ba84-89e3-4567-a466-393016843391",
      "name": "Create a new snapshot1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4200,
        840
      ],
      "parameters": {
        "url": "=https://api.contabo.com/v1/compute/instances/{{ $('Set snapshot attributes').item.json['instanceId'] }}/snapshots",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $('Formatted Date').item.json['formattedDate'] }}"
            },
            {
              "name": "description",
              "value": "={{ $('Set snapshot attributes').item.json['displayName'] }} {{ $('Formatted Date').item.json['formattedDate'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Authorization').item.json['token_type'] }} {{ $('Authorization').item.json['access_token'] }}"
            },
            {
              "name": "x-request-id",
              "value": "={{ $('UUID4').item.json['data'] }}"
            },
            {
              "name": "x-trace-id",
              "value": "={{ $('TRACE ID').item.json['data'] }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "d6b69037-14a9-4e01-be34-a7975503554d",
      "name": "UUID2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4200,
        660
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "1d80d4d5-1f5f-4cf1-9540-8a4b84edda38",
      "name": "UUID3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3620,
        840
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "f3ede6e8-5ca2-418b-8e60-03b817857cf2",
      "name": "UUID4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4020,
        840
      ],
      "parameters": {
        "url": "https://www.uuidgenerator.net/api/version4",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "d1995aef-531f-471e-a16d-7c75b1f3ae4c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3440,
        480
      ],
      "parameters": {
        "width": 486.8901611698841,
        "height": 467.87473554386463,
        "content": "## Delete existing snapshot by id\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8b408e6d-9574-4fa4-bc7e-7a543aa0bad6",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3980,
        480
      ],
      "parameters": {
        "width": 576.6684015952959,
        "height": 468.61270146235483,
        "content": "## Create a new snapshot"
      },
      "typeVersion": 1
    },
    {
      "id": "a41e7b87-8e46-44ea-8ca5-08f7d1a36f47",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        240
      ],
      "parameters": {
        "width": 769.2098244001793,
        "height": 415.52346358766624,
        "content": "## Contabo Backups Workflow\nThis workflow will automatically backup (snapshot) your VPS's hosted on Contabo every day at midnight.\n\n### Setup\nOpen **Credential** and update the values ​​below\n\n- **CLIENT_ID**\n- **CLIENT_SECRET**\n- **API_USER**\n- **API_PASSWORD**\n\nYou will find this information in the [Customer Control Panel.](https://my.contabo.com/api/details)\n\nWorkflow created by [Marcos Antonio](https://www.linkedin.com/in/compromitto/)\n[Linkedin](https://www.linkedin.com/in/compromitto/)\n[GitHub](https://github.com/dubcom) 🇧🇷"
      },
      "typeVersion": 1
    },
    {
      "id": "eb412eff-cf8b-44e8-b0ad-21798504f11d",
      "name": "Formatted Date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        1020,
        780
      ],
      "parameters": {
        "date": "={{ $json.currentDate }}",
        "format": "custom",
        "options": {},
        "operation": "formatDate",
        "customFormat": "dd-MM-yyyy"
      },
      "typeVersion": 2
    },
    {
      "id": "67413ee0-38db-4917-adcd-be9c6cb4f5cc",
      "name": "Whether snapshot there is no snapshot",
      "type": "n8n-nodes-base.if",
      "position": [
        3220,
        820
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2bd58580-020f-411b-b25d-e63467d615bc",
              "operator": {
                "type": "array",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $('List snapshots').item.json['data'] }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "464f52f5-bc1d-402c-81d2-4db24f675871",
      "name": "set snapshot attributes",
      "type": "n8n-nodes-base.set",
      "position": [
        4020,
        660
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b9af7eb7-bd87-4949-ac95-e40025c3c419",
              "name": "instanceId",
              "type": "string",
              "value": "={{ $json.instanceId }}"
            },
            {
              "id": "3d8cb230-4512-4b65-be3a-6ea59cb80ddd",
              "name": "displayName",
              "type": "string",
              "value": "={{ $json.displayName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "pinData": {},
  "connections": {
    "UUID": {
      "main": [
        [
          {
            "node": "TRACE ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Whether snapshot there is no snapshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UUID1": {
      "main": [
        [
          {
            "node": "List snapshots",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UUID2": {
      "main": [
        [
          {
            "node": "Create a new snapshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UUID3": {
      "main": [
        [
          {
            "node": "Delete existing snapshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "UUID4": {
      "main": [
        [
          {
            "node": "Create a new snapshot1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "TRACE ID": {
      "main": [
        [
          {
            "node": "List instances",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "UUID1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Credential": {
      "main": [
        [
          {
            "node": "Authorization",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Authorization": {
      "main": [
        [
          {
            "node": "UUID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Formatted Date": {
      "main": [
        [
          {
            "node": "Credential",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List instances": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List snapshots": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get Date & Time": {
      "main": [
        [
          {
            "node": "Formatted Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "get Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set snapshot attributes": {
      "main": [
        [
          {
            "node": "UUID3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set snapshot attributes": {
      "main": [
        [
          {
            "node": "UUID2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete existing snapshot": {
      "main": [
        [
          {
            "node": "UUID4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "get Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whether snapshot there is no snapshot": {
      "main": [
        [
          {
            "node": "set snapshot attributes",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set snapshot attributes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux équipes de gestion de données, aux responsables IT et aux entreprises de taille moyenne à grande qui utilisent Google Sheets pour le suivi des informations. Un niveau technique intermédiaire est recommandé pour la mise en place et la personnalisation du workflow.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des snapshots dans Google Sheets, qui peut être source d'erreurs et de pertes de données. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la sauvegarde manuelle et à la recherche d'informations historiques. Les résultats concrets incluent une réduction significative du temps consacré à la gestion des données et une amélioration de la fiabilité des informations stockées.

Étapes du workflow

Étape 1 : Le workflow est déclenché selon un calendrier défini. Étape 2 : Il procède à l'autorisation via une requête HTTP pour accéder à l'API de Google Sheets. Étape 3 : Les instances de données sont récupérées, suivies par la création ou la mise à jour des snapshots selon les besoins. Étape 4 : Des vérifications sont effectuées pour s'assurer qu'aucun snapshot existant n'est supprimé. Étape 5 : Les attributs des snapshots sont définis et les informations pertinentes sont conservées à l'aide de nœuds 'Sticky Note'. Étape 6 : Le workflow se termine par la création de nouveaux snapshots et la mise à jour des données dans Google Sheets.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, il est essentiel de modifier les paramètres d'autorisation pour correspondre à votre compte Google Sheets. Vous pouvez également ajuster les règles de déclenchement pour définir la fréquence à laquelle le workflow doit s'exécuter. Si vous souhaitez intégrer d'autres outils, envisagez d'ajouter des nœuds HTTP pour interagir avec d'autres API. Assurez-vous de surveiller le flux en utilisant des nœuds de journalisation pour suivre les erreurs potentielles et garantir la sécurité des données traitées.