Workflow n8n

Automatisation Google Sheets avec n8n : suivi des présences

Ce workflow n8n a pour objectif d'automatiser la gestion des présences des employés en utilisant des déclencheurs de localisation. Dans un contexte où la gestion des ressources humaines est cruciale, ce type d'automatisation permet aux entreprises de suivre efficacement les heures de travail de leurs employés, tout en réduisant les erreurs manuelles et en optimisant le temps de gestion. Les cas d'usage incluent le suivi des heures de présence, la création de rapports automatiques et la centralisation des données dans Google Sheets.

  • Étape 1 : le workflow commence par un déclencheur Webhook qui reçoit les données de localisation des employés.
  • Étape 2 : les informations sont ensuite traitées par un noeud Google Drive pour vérifier l'existence d'un fichier.
  • Étape 3 : si le fichier n'existe pas, un nouveau document Google Sheets est créé pour enregistrer les heures de présence.
  • Étape 4 : des détails de journalisation sont ajoutés pour suivre les actions effectuées. Enfin, les données sont enregistrées dans une feuille de calcul, permettant une consultation facile et rapide. Les bénéfices business incluent une réduction des erreurs humaines, une meilleure visibilité sur les heures travaillées et un gain de temps significatif pour les équipes RH.
Tags clés :automatisationGoogle Sheetssuivi des présencesn8ngestion des ressources humaines
Catégorie: Webhook · Tags: automatisation, Google Sheets, suivi des présences, n8n, gestion des ressources humaines0

Workflow n8n Google Sheets, suivi des présences, gestion des ressources humaines : 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, suivi des présences, gestion des ressources humaines : détail des nœuds

  • Webhook

    Ce noeud reçoit des requêtes via un webhook à une URL spécifiée.

  • Sticky Note

    Ce noeud crée une note autocollante avec des dimensions et un contenu définis.

  • Google Drive

    Ce noeud interagit avec Google Drive pour filtrer et récupérer des fichiers selon des critères spécifiés.

  • Create Worksheet

    Ce noeud crée une nouvelle feuille de calcul dans Google Sheets avec un titre donné.

  • Return if Null

    Ce noeud exécute un code JavaScript pour vérifier si une valeur est nulle.

  • Doesn't exist?

    Ce noeud évalue une condition pour déterminer le chemin à suivre dans le workflow.

  • Set Logging Details

    Ce noeud définit des détails de journalisation pour le suivi des actions dans le workflow.

  • Create Log

    Ce noeud crée un log dans Google Sheets avec des colonnes et un nom de feuille spécifiés.

  • Sticky Note1

    Ce noeud crée une note autocollante supplémentaire avec des dimensions et un contenu définis.

  • Sticky Note2

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

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "x2kgOnBLtqAjqUVS",
  "meta": {
    "instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a"
  },
  "name": "Automated Work Attendance with Location Triggers",
  "tags": [],
  "nodes": [
    {
      "id": "b2cba308-6d47-432b-9296-58f233f15565",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        0
      ],
      "webhookId": "801c8367-af7b-4371-8684-cc699090b97f",
      "parameters": {
        "path": "time-track",
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "67354f1c-9dac-4edd-b07d-f1b0dbd80159",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -260
      ],
      "parameters": {
        "width": 1120,
        "height": 180,
        "content": "## Check if the Worksheet Exists"
      },
      "typeVersion": 1
    },
    {
      "id": "5fc5a1a6-f18d-4ee0-a70b-30de48a45dc7",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        220,
        -220
      ],
      "parameters": {
        "filter": {},
        "options": {},
        "resource": "fileFolder",
        "returnAll": true,
        "queryString": "WorkTimeTracking"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "U6W5tWhDvO7rQ73t",
          "name": "Google Drive account"
        }
      },
      "executeOnce": false,
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "a0b63be4-fa46-413f-82fe-42e6edc24f29",
      "name": "Create Worksheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        800,
        -240
      ],
      "parameters": {
        "title": "WorkTimeTracking",
        "options": {
          "locale": ""
        },
        "resource": "spreadsheet",
        "sheetsUi": {
          "sheetValues": [
            {
              "title": "Worklog"
            }
          ]
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "TvzWrF2qPL7RjlJK",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "796e3ef6-3002-493e-8d89-10cba2d8026d",
      "name": "Return if Null",
      "type": "n8n-nodes-base.code",
      "position": [
        400,
        -220
      ],
      "parameters": {
        "jsCode": "return [{json: {empty: items.length == 1 && Object.keys(items[0].json).length == 0}}];"
      },
      "typeVersion": 2
    },
    {
      "id": "7af7ce4b-93e0-4058-8a45-9fd8269ddc77",
      "name": "Doesn't exist?",
      "type": "n8n-nodes-base.if",
      "position": [
        580,
        -220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "215b8ced-c6f5-4cf2-8755-9bba928dbe84",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{$json[\"empty\"]}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f2bc21c6-805b-49e7-b026-a4de56dce1fa",
      "name": "Set Logging Details",
      "type": "n8n-nodes-base.set",
      "position": [
        780,
        20
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"Date\": \"{{ $now.format('yyyy-MM-dd') }}\",\n  \"Time\": \"{{ $now.format('hh:mm') }}\",\n  \"Direction\":\"Check-In\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "64bc8b93-a925-49d6-9e52-3f30f0c9e5a8",
      "name": "Create Log",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1000,
        20
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.Date }}",
            "Time": "={{ $json.Time }}",
            "Direction": "={{ $('Webhook').item.json.headers.direction ? $('Webhook').item.json.headers.direction : \"\"}}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Direction",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Direction",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": []
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 308318361,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1P7-Uqa4SPA6keujkkOTru1wdS2qDryJVkz0Nz_sFp7A/edit#gid=308318361",
          "cachedResultName": "Worklog"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Google Drive').item.json.id }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "TvzWrF2qPL7RjlJK",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "cabca7d5-b4ae-45db-904d-f8efb37c4ab2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        -40
      ],
      "parameters": {
        "width": 600,
        "height": 280,
        "content": "## Log Check-In or Check-Out"
      },
      "typeVersion": 1
    },
    {
      "id": "5b9505fc-71a4-42c1-805f-c363384b4c8a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -320
      ],
      "parameters": {
        "color": 3,
        "width": 380,
        "height": 640,
        "content": "## Location-Based Time Tracking\n\nThis automation streamlines your time tracking by using location triggers. Here's how it works:\n\nCreate two shortcuts in the iPhone Shortcuts app:\n\nName one \"Check-In\" and the other \"Check-Out.\"\nWithin each shortcut, use the \"Get Content from URL\" action to call the Webhook. Set the Header Direction for \"Check-In\" or \"Check-Out\"\n\n\nNow, whenever you enter or exit the specified location, your iPhone will automatically record the time in your Google Sheet. This creates a seamless and accurate log of your work hours or time spent at a particular place."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "timezone": "Europe/Lisbon",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "executionTimeout": -1,
    "saveManualExecutions": true
  },
  "versionId": "2de5264f-eb68-4919-a3f3-133a8ceb45bb",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Return if Null",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Doesn't exist?": {
      "main": [
        [
          {
            "node": "Create Worksheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Logging Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Return if Null": {
      "main": [
        [
          {
            "node": "Doesn't exist?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Worksheet": {
      "main": [
        [
          {
            "node": "Set Logging Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Logging Details": {
      "main": [
        [
          {
            "node": "Create Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Google Sheets, suivi des présences, gestion des ressources humaines : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux entreprises de taille moyenne à grande, ainsi qu'aux équipes RH qui cherchent à optimiser la gestion des présences. 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, suivi des présences, gestion des ressources humaines : problème résolu

Le workflow résout le problème de la gestion manuelle des présences, qui peut être source d'erreurs et de pertes de temps. En automatisant ce processus, les entreprises peuvent réduire les risques d'erreurs dans le suivi des heures de travail, garantir une meilleure conformité aux réglementations et améliorer la satisfaction des employés grâce à un système plus transparent et efficace. Les utilisateurs bénéficient ainsi d'une solution rapide et fiable pour le suivi des présences.

Workflow n8n Google Sheets, suivi des présences, gestion des ressources humaines : étapes du workflow

Étape 1 : le workflow est déclenché par un Webhook qui reçoit des données de localisation.

  • Étape 1 : les informations sont vérifiées via un noeud Google Drive pour s'assurer qu'un fichier existe déjà.
  • Étape 2 : si le fichier n'existe pas, un nouveau document Google Sheets est créé pour enregistrer les heures de présence.
  • Étape 3 : des détails de journalisation sont ajoutés pour garder une trace des actions effectuées.
  • Étape 4 : les données de présence sont ensuite enregistrées dans la feuille de calcul, permettant un accès facile et rapide aux informations.

Workflow n8n Google Sheets, suivi des présences, gestion des ressources humaines : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre système de gestion des employés. Il est également possible de changer le titre du document Google Sheets créé en fonction de vos besoins. Si vous souhaitez ajouter d'autres services, n'hésitez pas à intégrer des noeuds supplémentaires pour enrichir le flux. Assurez-vous de sécuriser le Webhook en utilisant des clés d'authentification et de monitorer le flux pour détecter d'éventuelles erreurs.