Automatisation Matrix avec n8n : gestion des groupes de café
Ce workflow n8n a pour objectif de faciliter la gestion des discussions de groupe autour du café au sein d'une entreprise. En utilisant l'outil Matrix, ce processus permet d'organiser des rencontres hebdomadaires entre employés, favorisant ainsi la convivialité et le partage d'idées. Le workflow commence par un déclencheur programmé qui s'active chaque lundi, permettant de rassembler les employés dans un canal dédié. Ensuite, il récupère la liste des participants dans ce canal de discussion. Une fois les participants identifiés, le workflow divise ces derniers en groupes pour des échanges plus dynamiques. Chaque groupe est ensuite annoncé dans le canal, assurant que tous les employés soient informés de leur affectation. Grâce à cette automatisation n8n, les entreprises peuvent non seulement renforcer la cohésion d'équipe, mais aussi optimiser le temps consacré à l'organisation de ces rencontres. En éliminant les tâches manuelles, ce workflow permet aux équipes de se concentrer sur l'essentiel : créer des liens et partager des idées. Tags clés : automatisation, Matrix, collaboration.
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
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "9",
"name": "Coffee Bot (Matrix)",
"nodes": [
{
"name": "Greetings",
"type": "n8n-nodes-base.matrix",
"position": [
670,
240
],
"parameters": {
"text": "👋 Happy Monday Groups for this week's virtual coffee are:",
"roomId": "Enter your Room ID"
},
"credentials": {
"matrixApi": "Matrix Creds"
},
"typeVersion": 1
},
{
"name": "Employees in coffee chat channel",
"type": "n8n-nodes-base.matrix",
"position": [
880,
240
],
"parameters": {
"roomId": "Enter your Room ID",
"filters": {
"membership": ""
},
"resource": "roomMember"
},
"credentials": {
"matrixApi": "Enter Your Matrix Credentials"
},
"typeVersion": 1
},
{
"name": "Weekly trigger on monday1",
"type": "n8n-nodes-base.cron",
"position": [
480,
240
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 10,
"mode": "everyWeek"
}
]
}
},
"typeVersion": 1
},
{
"name": "Divide into groups",
"type": "n8n-nodes-base.function",
"notes": "This still needs to be reconfigured to grab the information from the second Matrix node. Have an issue with the ",
"position": [
1090,
240
],
"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.user_id});\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)}})\n}\n\nreturn newItems;\n"
},
"typeVersion": 1
},
{
"name": "Announce groups",
"type": "n8n-nodes-base.matrix",
"position": [
1290,
240
],
"parameters": {
"text": "=☀️ {{$node[\"Divide into groups\"].json[\"groupsUsername\"].join(', ')}}",
"roomId": "!hobuowPzLuKnojiyfV:matrix.org"
},
"credentials": {
"matrixApi": "Matrix Creds"
},
"typeVersion": 1
}
],
"active": true,
"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
}
]
]
},
"Weekly trigger on monday1": {
"main": [
[
{
"node": "Greetings",
"type": "main",
"index": 0
}
]
]
},
"Employees in coffee chat channel": {
"main": [
[
{
"node": "Divide into groups",
"type": "main",
"index": 0
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises de toutes tailles souhaitant améliorer la communication interne et la cohésion de leurs équipes. Il est particulièrement adapté aux équipes RH, aux managers et aux responsables de la culture d'entreprise, sans nécessiter de compétences techniques avancées.
Problème résolu
Ce workflow résout le problème de l'organisation manuelle des rencontres informelles entre employés. En automatisant ce processus, il élimine les frustrations liées à la planification et à la communication des groupes, réduisant ainsi le risque de confusion. Les utilisateurs bénéficient d'une expérience fluide et d'une meilleure interaction entre collègues, ce qui peut renforcer la culture d'entreprise et améliorer la satisfaction au travail.
Étapes du workflow
Étape 1 : Le workflow est déclenché chaque lundi par un cron. Étape 2 : Il récupère la liste des employés présents dans le canal de discussion dédié au café. Étape 3 : Les participants sont ensuite divisés en groupes via une fonction personnalisée. Étape 4 : Enfin, les groupes formés sont annoncés dans le canal, permettant à chacun de savoir avec qui il va échanger.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, vous pouvez modifier le paramètre 'roomId' dans les nœuds pour cibler le canal de discussion souhaité. Vous pouvez également ajuster le code de la fonction pour changer la logique de division des groupes selon vos préférences. Pensez à sécuriser le webhook en ajoutant des filtres d'accès si nécessaire, et à surveiller le flux en intégrant des alertes en cas d'erreurs.