Workflow n8n

Automatisation Mattermost avec n8n : gestion de groupes de café

Ce workflow n8n a pour objectif d'automatiser la gestion des groupes de discussion autour du café au sein de votre équipe sur Mattermost. En intégrant des outils comme Google Calendar, ce processus permet d'organiser des rencontres informelles entre collègues, favorisant ainsi la cohésion d'équipe et le bien-être au travail. Dans un contexte où le télétravail est de plus en plus courant, il est essentiel de maintenir des interactions sociales au sein des équipes. Ce workflow est particulièrement utile pour les entreprises qui souhaitent renforcer les liens entre leurs employés tout en optimisant leur temps.

  • Étape 1 : le déclencheur est un cron qui s'active chaque lundi pour initier le processus.
  • Étape 2 : le workflow commence par l'envoi d'un message de bienvenue sur le canal Mattermost.
  • Étape 3 : les employés sont ensuite divisés en groupes pour les discussions de café grâce à une fonction personnalisée.
  • Étape 4 : les groupes formés sont annoncés sur Mattermost pour informer tous les participants.
  • Étape 5 : des invitations sont envoyées via Google Calendar pour s'assurer que chacun soit au courant de la rencontre. Ce type d'automatisation n8n permet non seulement de gagner du temps, mais aussi de créer un environnement de travail plus convivial et collaboratif, ce qui est un véritable atout pour la culture d'entreprise.
Tags clés :automatisationMattermostGoogle Calendarbien-être au travailcollaboration
Catégorie: Scheduled · Tags: automatisation, Mattermost, Google Calendar, bien-être au travail, collaboration0

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : vue d'ensemble

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

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : détail des nœuds

  • Divide into groups

    Ce noeud divise les données en groupes selon une logique définie dans le code de fonction.

  • Greetings

    Ce noeud envoie un message de bienvenue dans un canal Mattermost spécifié.

  • Weekly trigger on monday

    Ce noeud déclenche le workflow chaque lundi à l'heure définie.

  • Announce groups

    Ce noeud annonce les groupes formés en envoyant un message dans un canal Mattermost.

  • Employees in coffee chat channel

    Ce noeud récupère les employés présents dans le canal de discussion autour du café sur Mattermost.

  • Send calendar invites

    Ce noeud envoie des invitations de calendrier via Google Calendar pour une plage horaire spécifiée.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "7",
  "name": "Coffee Bot (Mattermost)",
  "nodes": [
    {
      "name": "Divide into groups",
      "type": "n8n-nodes-base.function",
      "position": [
        1060,
        300
      ],
      "parameters": {
        "functionCode": "const ideal_group_size = 3;\nlet groups = [];\nlet data_as_array = [];\nlet newItems = [];\n\n// Take all the users and add them to an array\nfor (let j = 0; j < items.length; j++) {\n  data_as_array.push({username: items[j].json.username, email: items[j].json.email});\n}\n\n// Fisher-Yates (aka Knuth) Shuffle\nfunction shuffle(array) {\n  var currentIndex = array.length, temporaryValue, randomIndex;\n\n  // While there remain elements to shuffle...\n  while (0 !== currentIndex) {\n\n    // Pick a remaining element...\n    randomIndex = Math.floor(Math.random() * currentIndex);\n    currentIndex -= 1;\n\n    // And swap it with the current element.\n    temporaryValue = array[currentIndex];\n    array[currentIndex] = array[randomIndex];\n    array[randomIndex] = temporaryValue;\n  }\n\n  return array;\n}\n\n// Randomize the sequence of names in the array\ndata_as_array = shuffle(data_as_array);\n\n// Create groups of ideal group size (3)\nfor (let i = 0; i < data_as_array.length; i += ideal_group_size) {\n  groups.push(data_as_array.slice(i, i + ideal_group_size));\n}\n\n// Make sure that no group has just one person. If it does, take\n// one from previous group and add it to that group \nfor (let k = 0; k < groups.length; k++) {\n  if (groups[k].length === 1) {\n    groups[k].push(groups[k-1].shift());\n  }\n}\n\nfor (let l = 0; l < groups.length; l++) {\n    newItems.push({json: {groupsUsername: groups[l].map(a=> a.username), groupsEmail: groups[l].map(b=> b.email)}})\n}\n\nreturn newItems;"
      },
      "typeVersion": 1
    },
    {
      "name": "Greetings",
      "type": "n8n-nodes-base.mattermost",
      "position": [
        650,
        300
      ],
      "parameters": {
        "message": "👋 Happy Monday\n\nGroups for this week's virtual coffee are:",
        "channelId": "Enter Your Channel ID",
        "attachments": [],
        "otherOptions": {}
      },
      "credentials": {
        "mattermostApi": "Mattermost Cred"
      },
      "typeVersion": 1
    },
    {
      "name": "Weekly trigger on monday",
      "type": "n8n-nodes-base.cron",
      "position": [
        450,
        300
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "hour": 10,
              "mode": "everyWeek"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Announce groups",
      "type": "n8n-nodes-base.mattermost",
      "position": [
        1250,
        200
      ],
      "parameters": {
        "message": "=☀️ {{$node[\"Divide into groups\"].json[\"groupsUsername\"].join(', ')}}",
        "channelId": "=",
        "attachments": [],
        "otherOptions": {}
      },
      "credentials": {
        "mattermostApi": "Mattermost Cred"
      },
      "typeVersion": 1
    },
    {
      "name": "Employees in coffee chat channel",
      "type": "n8n-nodes-base.mattermost",
      "position": [
        850,
        300
      ],
      "parameters": {
        "resource": "user",
        "operation": "getAll",
        "additionalFields": {
          "inChannel": "={{$node[\"Greetings\"].parameter[\"channelId\"]}}"
        }
      },
      "credentials": {
        "mattermostApi": "Mattermost Cred"
      },
      "typeVersion": 1
    },
    {
      "name": "Send calendar invites",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        1250,
        400
      ],
      "parameters": {
        "end": "2020-12-17T18:38:49.000Z",
        "start": "2020-12-17T18:08:49.000Z",
        "calendar": "Enter Your Google Calendar",
        "additionalFields": {
          "summary": "n8n coffee catchup",
          "attendees": [
            "={{$node[\"Divide into groups\"].json[\"groupsEmail\"].join(',')}}"
          ],
          "guestsCanModify": true,
          "conferenceDataUi": {
            "conferenceDataValues": {
              "conferenceSolution": "hangoutsMeet"
            }
          }
        }
      },
      "credentials": {
        "googleCalendarOAuth2Api": "Google Calendar Cred"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {},
  "connections": {
    "Greetings": {
      "main": [
        [
          {
            "node": "Employees in coffee chat channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Divide into groups": {
      "main": [
        [
          {
            "node": "Announce groups",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send calendar invites",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly trigger on monday": {
      "main": [
        [
          {
            "node": "Greetings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Employees in coffee chat channel": {
      "main": [
        [
          {
            "node": "Divide into groups",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux entreprises et équipes qui utilisent Mattermost pour la communication interne. Il est idéal pour les responsables RH, les managers d'équipe et les entreprises de taille petite à moyenne qui souhaitent améliorer la cohésion d'équipe et le bien-être des employés. Un niveau technique basique est requis pour la mise en place.

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : problème résolu

Ce workflow résout le problème de l'isolement des employés en télétravail en facilitant les interactions sociales. Il élimine les pertes de temps liées à l'organisation manuelle des rencontres et réduit le risque de désengagement des employés. Après la mise en place de cette automatisation, les utilisateurs bénéficient d'une meilleure communication et d'une atmosphère de travail plus agréable, ce qui peut conduire à une augmentation de la productivité et de la satisfaction au travail.

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : étapes du workflow

Étape 1 : le workflow est déclenché chaque lundi par un cron.

  • Étape 1 : un message de bienvenue est envoyé sur le canal Mattermost pour engager les employés.
  • Étape 2 : les employés sont divisés en groupes à l'aide d'une fonction personnalisée.
  • Étape 3 : les groupes formés sont annoncés sur Mattermost pour que tous soient informés.
  • Étape 4 : des invitations sont envoyées via Google Calendar pour s'assurer que chaque participant soit au courant de la rencontre.

Workflow n8n Mattermost, Google Calendar, bien-être au travail, collaboration : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier le message de bienvenue dans le nœud 'Greetings' ainsi que les paramètres de division des groupes dans le nœud 'Divide into groups'. Assurez-vous également de configurer correctement les identifiants de canal Mattermost et le calendrier Google pour l'envoi des invitations. Vous pouvez brancher d'autres outils de communication ou de gestion de projet selon vos besoins. Pensez à surveiller le bon fonctionnement du flux en vérifiant les logs n8n pour toute erreur potentielle.