Workflow n8n

Automatisation Slack avec n8n : notifications sur le changement d'heure

Ce workflow n8n a pour objectif d'informer les utilisateurs des changements d'heure liés à l'heure d'été et d'hiver. Dans un contexte où la gestion du temps est cruciale pour les entreprises, ce type d'automatisation permet de prévenir les équipes des ajustements nécessaires, évitant ainsi des confusions lors des réunions ou des échéances. Les cas d'usage incluent l'envoi de notifications sur Slack et par email pour rappeler les changements d'heure à venir. Le workflow débute avec un déclencheur manuel ou programmé via le nœud 'Schedule Trigger', qui active le processus à des moments prédéfinis. Ensuite, le nœud 'Timezones List' génère une liste de fuseaux horaires, permettant de calculer la date et l'heure spécifiques pour chaque zone avec le nœud 'Calculate Zone Date and Time'. La vérification de l'heure d'été est effectuée par le nœud 'Check If Daylight Saving Time', qui détermine si un changement est imminent. Si tel est le cas, le workflow envoie une notification sur Slack via le nœud 'Send Notification On Upcoming Change' et un email avec le nœud 'Send Email On Upcoming Change'. Cette automatisation n8n offre une valeur ajoutée significative en réduisant les risques d'erreurs liées aux changements d'heure et en améliorant la communication au sein des équipes. Tags clés : automatisation, Slack, notifications.

Catégorie: Scheduled · Tags: automatisation, Slack, notifications, n8n, gestion du temps0

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

  • When clicking ‘Test workflow’

    Ce noeud déclenche manuellement le workflow lorsque l'utilisateur clique sur 'Test workflow'.

  • Sticky Note1

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

  • Timezones List

    Ce noeud exécute un code JavaScript pour générer une liste de fuseaux horaires.

  • Calculate Zone Date and Time

    Ce noeud définit la date et l'heure d'une zone spécifique en fonction des options fournies.

  • Check If Daylight Saving Time

    Ce noeud vérifie si l'heure d'été est en vigueur pour une date donnée.

  • Check If Change Tomorrow

    Ce noeud évalue une condition pour déterminer si un changement se produira demain.

  • Send Notification On Upcoming Change

    Ce noeud envoie une notification sur Slack concernant un changement à venir.

  • Calculate Tomorrow's Date

    Ce noeud calcule la date de demain en fonction des paramètres spécifiés.

  • Schedule Trigger

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

  • Send Email On Upcoming Change

    Ce noeud envoie un email concernant un changement à venir avec les détails spécifiés.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "JIegnKLVXTkkTzfO",
  "meta": {
    "instanceId": "bdce9ec27bbe2b742054f01d034b8b468d2e7758edd716403ad5bd4583a8f649",
    "templateCredsSetupCompleted": true
  },
  "name": "Daylight Saving Time Notification",
  "tags": [],
  "nodes": [
    {
      "id": "87b11535-a9ae-49d4-a33f-b895274643e5",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d1cd9157-9948-43fd-a725-2a82a21a82c6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -300
      ],
      "parameters": {
        "width": 394,
        "height": 264,
        "content": "## How it works\n- check list of timezones\n- check if any timezone switches from/to Daylight Saving Time\n- notify on Slack\n\n## Remember to set up\n- Add timezones to \"Timezones List\"\n- Slack notification channel\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0f4369fc-80b6-4fd6-8533-4aacbf4c9c65",
      "name": "Timezones List",
      "type": "n8n-nodes-base.code",
      "position": [
        220,
        0
      ],
      "parameters": {
        "jsCode": "return [\n\t{\n      timezone : \"America/New_York\"\n\t},\n\t{\n      timezone : \"Europe/Warsaw\"\n\t},\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "3c1e6cd7-3812-4670-a53f-7270e29574f9",
      "name": "Calculate Zone Date and Time",
      "type": "n8n-nodes-base.set",
      "position": [
        440,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4e9f973f-a11f-474b-89ce-dac4a77a7c68",
              "name": "datetime_zone",
              "type": "string",
              "value": "={{ $now.setZone( $json.timezone ) }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "7f49ac42-afcb-4552-84da-180bc65b84b0",
      "name": "Check If Daylight Saving Time",
      "type": "n8n-nodes-base.set",
      "position": [
        40,
        280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4e9f973f-a11f-474b-89ce-dac4a77a7c68",
              "name": "datetime_zone_dst",
              "type": "string",
              "value": "={{ $json.datetime_zone.toDateTime().setZone($json.timezone).isInDST }}"
            },
            {
              "id": "ff13ee6d-c146-4dcb-98c4-6cb9b2474b1d",
              "name": "datetime_zone_tomorrow_dst",
              "type": "string",
              "value": "={{ $json.datetime_zone_tomorrow.toDateTime().setZone($json.timezone).isInDST }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "f3596b52-03af-4a07-be04-a7300fc7b239",
      "name": "Check If Change Tomorrow",
      "type": "n8n-nodes-base.if",
      "position": [
        240,
        280
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1f49e05d-d36e-4652-8ad3-b2266d750d94",
              "operator": {
                "type": "boolean",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.datetime_zone_dst }}",
              "rightValue": "={{ $json.datetime_zone_tomorrow_dst }}"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "612e2e06-0283-4acd-8d85-cba16acb7126",
      "name": "Send Notification On Upcoming Change",
      "type": "n8n-nodes-base.slack",
      "position": [
        660,
        240
      ],
      "webhookId": "871515be-56fc-4de7-835b-119d394fea47",
      "parameters": {
        "text": "=Tomorrow is Daylight Saving Time change in zone {{ $json.timezone }} - remember to adjust meeting times!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "B0jUtT53pVAEPaQM",
          "name": "Slack Oauth"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "d5e47ff8-d530-47ee-a98d-3a50a7054cb0",
      "name": "Calculate Tomorrow's Date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        660,
        0
      ],
      "parameters": {
        "options": {
          "includeInputFields": true
        },
        "duration": 1,
        "magnitude": "={{ $json.datetime_zone }}",
        "operation": "addToDate",
        "outputFieldName": "datetime_zone_tomorrow"
      },
      "typeVersion": 2
    },
    {
      "id": "5ae0aa75-515d-4025-901e-82693f697436",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        -160
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e233c67c-a79b-4c96-a172-0465021d3911",
      "name": "Send Email On Upcoming Change",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        660,
        420
      ],
      "webhookId": "40cc0fc1-c135-44fc-b3cb-dfec6fc1ce75",
      "parameters": {
        "text": "=Tomorrow is Daylight Saving Time change in zone {{ $json.timezone }} - remember to adjust meeting times!",
        "options": {},
        "subject": "DST change tomorrow in {{ $json.timezone }}",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "tkdzDgcUAt04af3B",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7605726a-1a09-4564-b60f-aee3ac0b8c70",
  "connections": {
    "Timezones List": {
      "main": [
        [
          {
            "node": "Calculate Zone Date and Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Timezones List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Change Tomorrow": {
      "main": [
        [
          {
            "node": "Send Notification On Upcoming Change",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Email On Upcoming Change",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Calculate Tomorrow's Date": {
      "main": [
        [
          {
            "node": "Check If Daylight Saving Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Zone Date and Time": {
      "main": [
        [
          {
            "node": "Calculate Tomorrow's Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Daylight Saving Time": {
      "main": [
        [
          {
            "node": "Check If Change Tomorrow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Timezones List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises de toutes tailles qui souhaitent automatiser les notifications liées aux changements d'heure. Il est particulièrement utile pour les équipes de gestion de projet, les ressources humaines et toute organisation ayant des horaires de travail flexibles. Un niveau technique de base est suffisant pour mettre en place cette automatisation.

Problème résolu

Ce workflow résout le problème des confusions liées aux changements d'heure, qui peuvent entraîner des retards dans les réunions et des erreurs de planification. En automatisant les notifications, les utilisateurs évitent des pertes de temps et des frustrations, tout en s'assurant que toutes les parties prenantes sont informées des ajustements nécessaires. Le résultat est une meilleure organisation et une communication fluide au sein des équipes.

Étapes du workflow

Étape 1 : Le workflow est déclenché par le nœud 'Schedule Trigger', qui programme l'exécution à des moments spécifiques. Étape 2 : Le nœud 'Timezones List' génère une liste des fuseaux horaires pour le calcul des heures. Étape 3 : Avec 'Calculate Zone Date and Time', les heures spécifiques sont déterminées. Étape 4 : Le nœud 'Check If Daylight Saving Time' vérifie si un changement d'heure est prévu. Étape 5 : Si un changement est imminent, le nœud 'Send Notification On Upcoming Change' envoie une alerte sur Slack, suivi de l'envoi d'un email via le nœud 'Send Email On Upcoming Change'.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier les paramètres du nœud 'Schedule Trigger' afin de définir les moments exacts d'envoi des notifications. Il est également possible d'ajuster les messages envoyés via les nœuds 'Send Notification On Upcoming Change' et 'Send Email On Upcoming Change' pour qu'ils correspondent à votre ton de communication. Pensez à vérifier les identifiants de canal Slack et les adresses email pour assurer une bonne réception des notifications. Enfin, vous pouvez intégrer d'autres outils ou services si nécessaire, en utilisant des nœuds API ou des intégrations supplémentaires disponibles dans n8n.