Automatisation de la reconnaissance des employés avec Slack, Sheets et Gmail

Avancé

Ceci est unHR, Multimodal AIworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, Slack, GoogleSheets. Automatisation de la reconnaissance des employés avec Slack, Sheets, Gmail et optionnellement GPT-4

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Token Bot Slack ou URL Webhook
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "SO3XFrXNyQTjwils",
  "meta": {
    "instanceId": "a287613f1596da776459594685fbf4e2b4a12124f80ab8c8772f5e37bff103ae",
    "templateCredsSetupCompleted": true
  },
  "name": "Employee Recognition Automation with Slack, Sheets & Gmail",
  "tags": [],
  "nodes": [
    {
      "id": "ac6a4d39-86ab-4325-810f-50910cb09d40",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        160,
        272
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "WbMi3ZLLBnECFAAV",
          "name": "temp"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3685995a-dacf-4395-b0a8-3154189bb234",
      "name": "Nouvelle Ligne Ajoutée",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -48,
        0
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "range": "A:D",
              "rangeDefinition": "specifyRangeA1"
            }
          }
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SHEET_ID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_DOC_ID"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "y0YhoaKRGXeG1RfK",
          "name": "temp"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f6cc7e9c-e5b1-4c38-9424-95bb34138328",
      "name": "Formater les Données Employé",
      "type": "n8n-nodes-base.code",
      "position": [
        208,
        0
      ],
      "parameters": {
        "jsCode": "return items.map(item => ({\n  json: {\n    name: item.json[\"Name\"],\n    dept: item.json[\"Department\"],\n    reason: item.json[\"Reason\"],\n    date: item.json[\"Date\"],\n    message: `${item.json[\"Name\"]} from ${item.json[\"Department\"]} has been recognized for ${item.json[\"Reason\"]}! 🎉`\n  }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "dfa27ba6-112e-45cc-8167-c54635a42cda",
      "name": "Générer un Message Personnalisé",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        416,
        0
      ],
      "parameters": {
        "options": {
          "systemMessage": "Write a short, friendly recognition message for {name} from the {dept} department who was recognized for {reason}. \nMake it sound genuine and positive, under 2 sentences.\n"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "20a36671-cd34-42c1-982d-3d4c69370768",
      "name": "Publier le Message dans #general",
      "type": "n8n-nodes-base.slack",
      "position": [
        768,
        0
      ],
      "webhookId": "85a6f74e-7089-4ea7-86a0-de1ee38df111",
      "parameters": {
        "text": "=🎉 Employee Spotlight 🎉  \n{{ $json.name }} from {{ $json.dept }} has been recognized for {{ $json.reason }}!  \nGreat work! 👏\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_CHANNEL_ID"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "AFKF0YsguyhsagR0",
          "name": "temp"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "b844e4af-e142-4caa-a1c5-9eeb477a3add",
      "name": "Mettre à Jour la Ligne (Statut)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        976,
        0
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "SHEET_ID"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "DOC_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "MSnszF5oRAiSGHDo",
          "name": "temp"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "cd49e9b2-635e-46ad-aacf-f91d01eeeac8",
      "name": "Envoyer un E-mail de Remerciement",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1184,
        0
      ],
      "webhookId": "b61ba605-37cc-489b-a259-767157383ce5",
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "message": "=Hi {{ $json.name }},\n\nCongratulations on being recognized for your excellent work in {{ $json.dept }}! \nWe truly appreciate your contribution and dedication.\n\nKeep shining,\nHR Team 🌟\n",
        "options": {},
        "subject": "=Thank you for your amazing work, {{ $json.name }}!"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "6JenZLArAEoAQxk1",
          "name": "tes"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "3eb68a1d-4d46-4fa6-9486-4b53ca04dcb9",
      "name": "Notifier les RH en privé",
      "type": "n8n-nodes-base.slack",
      "position": [
        1392,
        0
      ],
      "webhookId": "2db6eb53-811b-45bc-ae9d-a4498c985c02",
      "parameters": {
        "text": "=✅ Recognition completed for {{ $json.name }}  \nPosted to #general and sent thank-you email.\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "CHANNEL_ID"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "AFKF0YsguyhsagR0",
          "name": "temp"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "8290462d-2504-4be0-8bd9-a069ccb6067f",
      "name": "Vérifier si l'E-mail a été Envoyé",
      "type": "n8n-nodes-base.if",
      "position": [
        1600,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "64e06d12-cba1-44f4-ad2f-67fa619d9378",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.gmail.status.toLowerCase }}",
              "rightValue": "success"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "7f7481b6-b7a7-43e7-a22d-99fdbb7d2dec",
      "name": "Alerter les RH en cas d'Échec d'Envoi",
      "type": "n8n-nodes-base.slack",
      "position": [
        1808,
        144
      ],
      "webhookId": "67d1f140-1107-4c97-9dd4-cd07e99fbb67",
      "parameters": {
        "text": "=⚠️ Failed to send email to {{ $json.name }}. \nPlease check Gmail node or update manually.\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "CHANNEL_ID"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "AFKF0YsguyhsagR0",
          "name": "temp"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "9fb98a56-a9ab-4d6b-8d59-a1f6fe2ab937",
      "name": "Mettre à Jour la Ligne (Statut E-mail)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1808,
        -160
      ],
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "MSnszF5oRAiSGHDo",
          "name": "temp"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "810f8d54-e39d-4cc0-85e4-8171f486bc07",
      "name": "Note Adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        256
      ],
      "parameters": {
        "color": 5,
        "width": 1136,
        "height": 944,
        "content": "# Employee Recognition Bot\n\n## Problem\n\nManually recognizing employees is inconsistent. HR often forgets to announce wins, send thank-you emails, or update sheets — hurting morale and culture.\n\n## Solution\n\nThis **n8n workflow automates recognition** from Google Sheets → Slack → Gmail.\nAdd a new entry in Google Sheets, and it will:\n\n* Announce it instantly in Slack\n* Send a personalized thank-you email\n* Update the sheet automatically\n\nZero manual work. 100% consistent recognition.\n\n## What It Does\n\n* Watches Google Sheets for new recognitions\n* Sends Slack announcements & thank-you emails\n* Marks each as “Announced” and “Email Sent”\n* Notifies HR if any step fails\n* (Optional) Uses AI to write personalized messages\n\n## For Who\n\nHR teams, founders, or managers who want an **automated, zero-cost** way to boost morale and culture.\n\n## Setup (Simple)\n\n1. Create Google Sheet → `Name | Department | Reason | Date | Email | Status | EmailStatus`\n2. Connect Google Sheets, Slack, and Gmail in n8n\n3. Add your Slack channel and Gmail email template\n4. (Optional) Add OpenAI node for AI-written messages\n5. Activate workflow → Recognition runs on autopilot\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ed928903-f6dc-4dcf-bee2-a197fa5f7450",
      "name": "Note Adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -96
      ],
      "parameters": {
        "color": 3,
        "height": 320,
        "content": "## Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "98d256e2-aa52-4d31-ae6a-d76df030a708",
      "name": "Note Adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -96
      ],
      "parameters": {
        "color": 3,
        "width": 560,
        "height": 320,
        "content": "## Message Generator"
      },
      "typeVersion": 1
    },
    {
      "id": "9752768e-604e-43cb-8e36-2b51fedfc70e",
      "name": "Note Adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -96
      ],
      "parameters": {
        "color": 3,
        "width": 816,
        "height": 320,
        "content": "## Notify"
      },
      "typeVersion": 1
    },
    {
      "id": "88245e07-15be-4321-a8bc-a0701561a992",
      "name": "Note Adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        -208
      ],
      "parameters": {
        "color": 3,
        "width": 496,
        "height": 544,
        "content": "## Logging\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d5c1fe07-cd45-4e77-97f5-3ccf0e5b09bd",
  "connections": {
    "3685995a-dacf-4395-b0a8-3154189bb234": {
      "main": [
        [
          {
            "node": "f6cc7e9c-e5b1-4c38-9424-95bb34138328",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac6a4d39-86ab-4325-810f-50910cb09d40": {
      "ai_languageModel": [
        [
          {
            "node": "dfa27ba6-112e-45cc-8167-c54635a42cda",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "3eb68a1d-4d46-4fa6-9486-4b53ca04dcb9": {
      "main": [
        [
          {
            "node": "8290462d-2504-4be0-8bd9-a069ccb6067f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b844e4af-e142-4caa-a1c5-9eeb477a3add": {
      "main": [
        [
          {
            "node": "cd49e9b2-635e-46ad-aacf-f91d01eeeac8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6cc7e9c-e5b1-4c38-9424-95bb34138328": {
      "main": [
        [
          {
            "node": "dfa27ba6-112e-45cc-8167-c54635a42cda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cd49e9b2-635e-46ad-aacf-f91d01eeeac8": {
      "main": [
        [
          {
            "node": "3eb68a1d-4d46-4fa6-9486-4b53ca04dcb9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "20a36671-cd34-42c1-982d-3d4c69370768": {
      "main": [
        [
          {
            "node": "b844e4af-e142-4caa-a1c5-9eeb477a3add",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dfa27ba6-112e-45cc-8167-c54635a42cda": {
      "main": [
        [
          {
            "node": "20a36671-cd34-42c1-982d-3d4c69370768",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8290462d-2504-4be0-8bd9-a069ccb6067f": {
      "main": [
        [
          {
            "node": "9fb98a56-a9ab-4d6b-8d59-a1f6fe2ab937",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "7f7481b6-b7a7-43e7-a22d-99fdbb7d2dec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Ressources Humaines, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds16
Catégorie2
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Marth

Marth

@marth

Simplifying Business with Smart Automation. I create and share user-friendly, highly efficient n8n workflow templates for SMEs, focusing on digital marketing, sales, and operational excellence. Get ready to automate, innovate, and elevate your business. Connect me on Linkedin for custom solutions.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34