Automatisation Notion avec n8n : création d'équipes et projets
Ce workflow n8n a pour objectif d'automatiser la création d'équipes et de projets dans Notion, facilitant ainsi la gestion des membres et des projets au sein d'une organisation. Dans un contexte où la collaboration et la gestion de projets sont essentielles, ce processus permet de gagner du temps et d'éviter les erreurs manuelles. Parfait pour les entreprises qui utilisent Notion pour la gestion de leurs projets, ce workflow simplifie la création et la mise à jour des informations des utilisateurs et des projets.
- Étape 1 : le workflow débute avec un déclencheur Webhook, permettant de recevoir des requêtes HTTP pour initier le processus.
- Étape 2 : il utilise le nœud 'Get Team Members' pour récupérer les membres de l'équipe, suivi d'une série de nœuds de type 'set' pour définir les identifiants de semestre et de projet.
- Étape 3 : le workflow interroge Notion pour vérifier si l'utilisateur existe déjà, et si ce n'est pas le cas, il crée un nouvel utilisateur.
- Étape 4 : ensuite, il met à jour les relations de projet et de semestre pour chaque utilisateur, garantissant que toutes les informations sont correctement liées. En intégrant ce workflow, les entreprises peuvent réduire considérablement le temps consacré à la gestion manuelle des données, minimiser les erreurs et améliorer l'efficacité opérationnelle. La valeur ajoutée réside dans la centralisation des informations et l'automatisation des tâches répétitives, permettant ainsi aux équipes de se concentrer sur des tâches à plus forte valeur ajoutée.
Workflow n8n Notion, gestion de projet, collaboration : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Notion, gestion de projet, collaboration : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"name": "Get Team Members",
"type": "n8n-nodes-base.function",
"position": [
1030,
150
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (const item of items[0].json.body.teamMembers) {\n const newItem = { json: item }\n newItems.push(newItem);\n}\n\nreturn newItems;\n"
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1250,
460
],
"parameters": {
"mode": "multiplex"
},
"typeVersion": 1
},
{
"name": "Query Current Semester",
"type": "n8n-nodes-base.notion",
"position": [
700,
20
],
"parameters": {
"options": {
"sort": {
"sortValue": [
{
"key": "created_time",
"direction": "descending",
"timestamp": true
}
]
},
"filter": {
"singleCondition": {
"key": "Is Current?|checkbox",
"condition": "equals",
"checkboxValue": true
}
}
},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": "2003319a-bc73-423a-9378-01999b4884fb"
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1
},
{
"name": "Select Semester ID and Projects Count",
"type": "n8n-nodes-base.set",
"position": [
1030,
330
],
"parameters": {
"values": {
"number": [
{
"name": "projectsCount",
"value": "={{$json[\"Projects\"].length}}"
}
],
"string": [
{
"name": "semesterID",
"value": "={{$json[\"id\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"executeOnce": true,
"typeVersion": 1
},
{
"name": "Use Default Name if Not Specified",
"type": "n8n-nodes-base.set",
"position": [
1470,
460
],
"parameters": {
"values": {
"string": [
{
"name": "projectName",
"value": "={{ $json[\"projectName\"] == \"\" ? \"Project Group \" + ($json[\"projectsCount\"] + 1) : $json[\"projectName\"] }}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Select Project Showcase ID",
"type": "n8n-nodes-base.set",
"position": [
1890,
460
],
"parameters": {
"values": {
"string": [
{
"name": "projectID",
"value": "={{$json[\"id\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Get Project Name & Idea",
"type": "n8n-nodes-base.set",
"position": [
820,
480
],
"parameters": {
"values": {
"string": [
{
"name": "projectName",
"value": "={{$json[\"body\"][\"projectName\"]}}"
},
{
"name": "projectIdea",
"value": "={{$json[\"body\"][\"projectIdea\"]}}"
}
],
"boolean": []
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Create Project",
"type": "n8n-nodes-base.notion",
"position": [
1690,
460
],
"parameters": {
"blockUi": {
"blockValues": []
},
"resource": "databasePage",
"databaseId": "f9c8a070-d398-482b-a7a4-5e42c7982e6a",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$json[\"projectName\"]}}"
},
{
"key": "Semesters|relation",
"relationValue": [
"={{$json[\"semesterID\"]}}"
]
},
{
"key": "Project Idea|rich_text",
"textContent": "={{$json[\"projectIdea\"]}}"
}
]
}
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1
},
{
"name": "If user exists",
"type": "n8n-nodes-base.if",
"position": [
1690,
170
],
"parameters": {
"conditions": {
"string": [],
"boolean": [
{
"value1": "={{Object.keys($json).includes(\"id\") }}",
"value2": true
}
]
}
},
"executeOnce": false,
"typeVersion": 1,
"alwaysOutputData": false
},
{
"name": "Create User",
"type": "n8n-nodes-base.notion",
"position": [
1890,
270
],
"parameters": {
"resource": "databasePage",
"databaseId": "27a30c5b-c418-4200-8f48-d7fb7b043fbe",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$json[\"name\"]}}"
},
{
"key": "Email|email",
"emailValue": "={{$json[\"email\"]}}"
}
]
}
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1
},
{
"name": "Query for User",
"type": "n8n-nodes-base.notion",
"position": [
1250,
260
],
"parameters": {
"options": {
"filter": {
"singleCondition": {
"key": "Email|email",
"condition": "equals",
"emailValue": "={{$json[\"email\"]}}"
}
}
},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": "27a30c5b-c418-4200-8f48-d7fb7b043fbe"
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"executeOnce": false,
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
1460,
170
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "email",
"propertyName2": "Email"
},
"typeVersion": 1
},
{
"name": "Merge2",
"type": "n8n-nodes-base.merge",
"position": [
2750,
-160
],
"parameters": {
"mode": "multiplex"
},
"typeVersion": 1
},
{
"name": "Update Semester for User",
"type": "n8n-nodes-base.notion",
"position": [
3240,
-160
],
"parameters": {
"pageId": "={{$json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Semesters|relation",
"relationValue": [
"={{$json[\"allSemesterIDs\"].join(',')}}"
]
}
]
}
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1
},
{
"name": "Query User",
"type": "n8n-nodes-base.notion",
"position": [
2460,
170
],
"parameters": {
"options": {
"filter": {
"singleCondition": {
"key": "Email|email",
"condition": "equals",
"emailValue": "={{$json[\"email\"]}}"
}
}
},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": "27a30c5b-c418-4200-8f48-d7fb7b043fbe"
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Select Semester ID",
"type": "n8n-nodes-base.set",
"position": [
1020,
-180
],
"parameters": {
"values": {
"string": [
{
"name": "semesterID",
"value": "={{$json[\"id\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"executeOnce": true,
"typeVersion": 1
},
{
"name": "Update Project Relation",
"type": "n8n-nodes-base.notion",
"position": [
3240,
440
],
"parameters": {
"pageId": "={{$json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Project|relation",
"relationValue": [
"={{$json[\"allProjectIDs\"].join(\",\")}}"
]
}
]
}
},
"credentials": {
"notionApi": "Oasis Hub Production"
},
"typeVersion": 1
},
{
"name": "Merge3",
"type": "n8n-nodes-base.merge",
"position": [
2750,
440
],
"parameters": {
"mode": "multiplex"
},
"typeVersion": 1
},
{
"name": "Concatenate SemesterIDs",
"type": "n8n-nodes-base.function",
"position": [
3010,
-160
],
"parameters": {
"functionCode": "for (item of items) {\n // Get the current semester ID\n const currentSemesterID = item.json[\"semesterID\"]\n let allSemesterIDs = [currentSemesterID];\n\n // Add semesters that the user is already associated with\n if (item.json[\"Semesters\"]?.length > 0) {\n allSemesterIDs = allSemesterIDs.concat(item.json[\"Semesters\"].filter(semesterID => semesterID !== currentSemesterID));\n }\n\n // Set allSemesterIDs which is used to update the relation\n item.json[\"allSemesterIDs\"] = allSemesterIDs\n}\n\nreturn items;\n"
},
"typeVersion": 1
},
{
"name": "Concatenate ProjectIDs",
"type": "n8n-nodes-base.function",
"position": [
3000,
440
],
"parameters": {
"functionCode": "for (item of items) {\n // Get the project id for the new project\n const newProjectID = item.json[\"projectID\"]\n let allProjectIDs = [newProjectID];\n\n // Add projects that the user already has\n if (item.json[\"Project\"]?.length > 0) {\n allWorkspaceIDs = allWorkspaceIDs.concat(item.json[\"Project\"].filter(projectID => projectID !== newProjectID));\n }\n\n // Set allProjectIDs which is used to update the relation\n item.json[\"allProjectIDs\"] = allProjectIDs\n}\n\nreturn items;\n"
},
"typeVersion": 1
},
{
"name": "Merge4",
"type": "n8n-nodes-base.merge",
"position": [
2240,
170
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Set Email",
"type": "n8n-nodes-base.set",
"position": [
2060,
270
],
"parameters": {
"values": {
"string": [
{
"name": "email",
"value": "={{$json[\"Email\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Team Creation",
"type": "n8n-nodes-base.webhook",
"notes": "Example Input Data:\n{\"projectIdea\":\"A hub for all things Oasis\",\"projectName\":\"Oasis Hub\",\"teamMembers\":[{\"name\":\"Will Stenzel\",\"email\":\"stenzel.w@northeastern.edu\"},{\"name\":\"Jane Doe\",\"email\":\"doe.j@northeastern.edu\"}]}",
"position": [
460,
150
],
"webhookId": "6f000a46-9bbf-4e1c-8e11-b64d9b8c8fb7",
"parameters": {
"path": "team-create",
"options": {
"responseData": ""
},
"httpMethod": "POST",
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": "Oasis Basic Auth Creds"
},
"notesInFlow": true,
"typeVersion": 1
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "Use Default Name if Not Specified",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "If user exists",
"type": "main",
"index": 0
}
]
]
},
"Merge2": {
"main": [
[
{
"node": "Concatenate SemesterIDs",
"type": "main",
"index": 0
}
]
]
},
"Merge3": {
"main": [
[
{
"node": "Concatenate ProjectIDs",
"type": "main",
"index": 0
}
]
]
},
"Merge4": {
"main": [
[
{
"node": "Query User",
"type": "main",
"index": 0
}
]
]
},
"Set Email": {
"main": [
[
{
"node": "Merge4",
"type": "main",
"index": 1
}
]
]
},
"Query User": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 1
},
{
"node": "Merge3",
"type": "main",
"index": 0
}
]
]
},
"Create User": {
"main": [
[
{
"node": "Set Email",
"type": "main",
"index": 0
}
]
]
},
"Team Creation": {
"main": [
[
{
"node": "Get Project Name & Idea",
"type": "main",
"index": 0
},
{
"node": "Get Team Members",
"type": "main",
"index": 0
},
{
"node": "Query Current Semester",
"type": "main",
"index": 0
}
]
]
},
"Create Project": {
"main": [
[
{
"node": "Select Project Showcase ID",
"type": "main",
"index": 0
}
]
]
},
"If user exists": {
"main": [
[
{
"node": "Merge4",
"type": "main",
"index": 0
}
],
[
{
"node": "Create User",
"type": "main",
"index": 0
}
]
]
},
"Query for User": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Get Team Members": {
"main": [
[
{
"node": "Query for User",
"type": "main",
"index": 0
},
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Select Semester ID": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 0
}
]
]
},
"Concatenate ProjectIDs": {
"main": [
[
{
"node": "Update Project Relation",
"type": "main",
"index": 0
}
]
]
},
"Query Current Semester": {
"main": [
[
{
"node": "Select Semester ID and Projects Count",
"type": "main",
"index": 0
},
{
"node": "Select Semester ID",
"type": "main",
"index": 0
}
]
]
},
"Concatenate SemesterIDs": {
"main": [
[
{
"node": "Update Semester for User",
"type": "main",
"index": 0
}
]
]
},
"Get Project Name & Idea": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Select Project Showcase ID": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 1
}
]
]
},
"Use Default Name if Not Specified": {
"main": [
[
{
"node": "Create Project",
"type": "main",
"index": 0
}
]
]
},
"Select Semester ID and Projects Count": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Notion, gestion de projet, collaboration : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises et équipes qui utilisent Notion pour la gestion de projets et qui cherchent à automatiser la création d'équipes et la gestion des membres. Il est idéal pour les organisations de taille moyenne à grande, ainsi que pour les équipes techniques et non techniques souhaitant optimiser leurs processus.
Workflow n8n Notion, gestion de projet, collaboration : problème résolu
Ce workflow résout le problème de la gestion manuelle des membres et des projets dans Notion, qui peut être chronophage et sujet à des erreurs. En automatisant la création et la mise à jour des utilisateurs et des projets, il élimine les frustrations liées à la saisie manuelle des données et réduit le risque d'erreurs. Les utilisateurs bénéficient d'une gestion plus fluide et efficace, leur permettant de se concentrer sur des tâches stratégiques plutôt que sur des tâches administratives.
Workflow n8n Notion, gestion de projet, collaboration : étapes du workflow
Étape 1 : le workflow démarre avec un Webhook qui reçoit les données nécessaires pour initier le processus.
- Étape 1 : il récupère les membres de l'équipe via le nœud 'Get Team Members'.
- Étape 2 : ensuite, il interroge Notion pour le semestre actuel avec le nœud 'Query Current Semester'.
- Étape 3 : les identifiants de semestre et de projet sont définis à l'aide de plusieurs nœuds 'set'.
- Étape 4 : le workflow vérifie si l'utilisateur existe déjà avec le nœud 'If user exists'.
- Étape 5 : si l'utilisateur n'existe pas, il est créé dans Notion.
- Étape 6 : enfin, les relations de projet et de semestre sont mises à jour pour chaque utilisateur, assurant une gestion cohérente des données.
Workflow n8n Notion, gestion de projet, collaboration : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier le chemin du Webhook pour l'adapter à votre application. Assurez-vous également de mettre à jour l'ID de la base de données Notion utilisée pour les utilisateurs et les projets. Si vous souhaitez ajouter d'autres services ou outils, vous pouvez intégrer des nœuds supplémentaires pour enrichir le workflow. Pensez à sécuriser le Webhook en utilisant des méthodes d'authentification appropriées et à monitorer le flux pour détecter d'éventuelles erreurs.