Automatiser l'inscription des utilisateurs et la gestion des semestres avec n8n et Notion
Ce workflow a pour objectif d'automatiser le processus d'inscription des utilisateurs tout en gérant efficacement les informations relatives aux semestres via Notion. Dans un contexte où la gestion des données utilisateurs est cruciale, ce workflow permet de simplifier l'ajout de nouveaux utilisateurs et la mise à jour de leurs informations académiques. Étape 1 : le workflow commence par un déclencheur de type Webhook qui reçoit les informations d'inscription, notamment le nom et l'email de l'utilisateur. Étape 2 : ces informations sont ensuite extraites et vérifiées pour déterminer si l'utilisateur existe déjà dans la base de données Notion. Si l'utilisateur n'existe pas, Étape 3 : un nouvel utilisateur est créé dans Notion. Étape 4 : le workflow interroge ensuite la base de données pour récupérer le semestre actuel et, Étape 5 : met à jour les informations de l'utilisateur avec l'identifiant du semestre correspondant. Les étapes de fusion et de concaténation des identifiants de semestre permettent de gérer plusieurs semestres pour un même utilisateur. Ce processus réduit considérablement le temps consacré à la gestion manuelle des inscriptions et des données académiques, tout en minimisant les erreurs humaines. En automatisant ces tâches, les équipes peuvent se concentrer sur des activités à plus forte valeur ajoutée. Tags clés : automatisation, Notion, inscription utilisateur.
Vue d'ensemble du workflow n8n
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"name": "Extract Name and Email",
"type": "n8n-nodes-base.set",
"position": [
950,
130
],
"parameters": {
"values": {
"string": [
{
"name": "Name",
"value": "={{$json[\"body\"][\"name\"]}}"
},
{
"name": "Email",
"value": "={{$json[\"body\"][\"email\"]}}"
}
],
"boolean": []
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Sign Up",
"type": "n8n-nodes-base.webhook",
"notes": "Example Input Data: {\"name\":\"John Doe\",\"email\":\"doe.j@northeastern.edu\"}",
"position": [
720,
130
],
"webhookId": "6d60a1b4-6706-4f21-a5fb-bace13c24b53",
"parameters": {
"path": "sign-up",
"options": {
"responseData": ""
},
"httpMethod": "POST",
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "11",
"name": "Oasis Basic Auth Creds"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "If user exists",
"type": "n8n-nodes-base.if",
"position": [
1560,
150
],
"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": [
1750,
240
],
"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": {
"id": "3",
"name": "Oasis Hub Production"
}
},
"typeVersion": 1
},
{
"name": "Query for User",
"type": "n8n-nodes-base.notion",
"position": [
1150,
230
],
"parameters": {
"options": {
"filter": {
"singleCondition": {
"key": "Email|email",
"condition": "equals",
"emailValue": "={{$json[\"Email\"]}}"
}
}
},
"resource": "databasePage",
"operation": "getAll",
"databaseId": "27a30c5b-c418-4200-8f48-d7fb7b043fbe"
},
"credentials": {
"notionApi": {
"id": "3",
"name": "Oasis Hub Production"
}
},
"executeOnce": false,
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Query Current Semester",
"type": "n8n-nodes-base.notion",
"position": [
2180,
-30
],
"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": {
"id": "3",
"name": "Oasis Hub Production"
}
},
"typeVersion": 1
},
{
"name": "Select Semester ID",
"type": "n8n-nodes-base.set",
"position": [
2370,
-30
],
"parameters": {
"values": {
"number": [],
"string": [
{
"name": "currentSemesterID",
"value": "={{$json[\"id\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Update Semester for User",
"type": "n8n-nodes-base.notion",
"position": [
3050,
110
],
"parameters": {
"pageId": "={{$json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Semesters|relation",
"relationValue": [
"={{$json[\"allSemesterIDs\"].join(',')}}"
]
}
]
}
},
"credentials": {
"notionApi": {
"id": "3",
"name": "Oasis Hub Production"
}
},
"typeVersion": 1
},
{
"name": "Merge Semester ID",
"type": "n8n-nodes-base.merge",
"position": [
2590,
110
],
"parameters": {
"mode": "multiplex"
},
"typeVersion": 1
},
{
"name": "Concatenate Semester IDs",
"type": "n8n-nodes-base.function",
"position": [
2820,
110
],
"parameters": {
"functionCode": "for (item of items) {\n // Get the current semester ID\n const currentSemesterID = item.json[\"currentSemesterID\"]\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": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1340,
150
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "Email",
"propertyName2": "Email"
},
"typeVersion": 1
},
{
"name": "Query User",
"type": "n8n-nodes-base.notion",
"position": [
1950,
130
],
"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": {
"id": "3",
"name": "Oasis Hub Production"
}
},
"typeVersion": 1,
"alwaysOutputData": true
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "If user exists",
"type": "main",
"index": 0
}
]
]
},
"Sign Up": {
"main": [
[
{
"node": "Extract Name and Email",
"type": "main",
"index": 0
}
]
]
},
"Query User": {
"main": [
[
{
"node": "Query Current Semester",
"type": "main",
"index": 0
},
{
"node": "Merge Semester ID",
"type": "main",
"index": 1
}
]
]
},
"Create User": {
"main": [
[
{
"node": "Query User",
"type": "main",
"index": 0
}
]
]
},
"If user exists": {
"main": [
[
{
"node": "Query User",
"type": "main",
"index": 0
}
],
[
{
"node": "Create User",
"type": "main",
"index": 0
}
]
]
},
"Query for User": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Merge Semester ID": {
"main": [
[
{
"node": "Concatenate Semester IDs",
"type": "main",
"index": 0
}
]
]
},
"Select Semester ID": {
"main": [
[
{
"node": "Merge Semester ID",
"type": "main",
"index": 0
}
]
]
},
"Extract Name and Email": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
},
{
"node": "Query for User",
"type": "main",
"index": 0
}
]
]
},
"Query Current Semester": {
"main": [
[
{
"node": "Select Semester ID",
"type": "main",
"index": 0
}
]
]
},
"Concatenate Semester IDs": {
"main": [
[
{
"node": "Update Semester for User",
"type": "main",
"index": 0
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux établissements d'enseignement, aux équipes administratives et aux développeurs cherchant à automatiser la gestion des utilisateurs et des semestres. Il est conçu pour des utilisateurs ayant des compétences techniques intermédiaires, capables de manipuler des outils d'automatisation comme n8n et Notion.
Problème résolu
Ce workflow résout le problème de la gestion manuelle des inscriptions et des données académiques, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, il élimine les frustrations liées à la saisie manuelle et réduit les risques d'erreurs dans la gestion des informations des utilisateurs. Les utilisateurs bénéficient d'une solution rapide et fiable pour gérer les inscriptions et les semestres, ce qui améliore l'efficacité opérationnelle.
Étapes du workflow
Étape 1 : le workflow est déclenché par un Webhook qui reçoit les données d'inscription. Étape 2 : les informations sont extraites à l'aide d'un noeud 'Extract Name and Email'. Étape 3 : une vérification est effectuée pour déterminer si l'utilisateur existe déjà dans Notion grâce au noeud 'If user exists'. Étape 4 : si l'utilisateur n'existe pas, un nouvel utilisateur est créé avec le noeud 'Create User'. Étape 5 : le workflow interroge la base de données pour obtenir le semestre actuel via le noeud 'Query Current Semester'. Étape 6 : l'identifiant du semestre est sélectionné et fusionné avec les données de l'utilisateur. Étape 7 : enfin, les informations de l'utilisateur sont mises à jour avec le noeud 'Update Semester for User'.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, commencez par modifier l'URL du Webhook dans le noeud 'Sign Up' selon vos besoins. Vous pouvez également ajuster les paramètres du noeud 'Create User' pour correspondre aux propriétés de votre base de données Notion. Si vous souhaitez ajouter d'autres champs d'information, modifiez le noeud 'Extract Name and Email' en conséquence. Pensez à vérifier les conditions dans le noeud 'If user exists' pour vous assurer qu'elles correspondent à votre logique métier. Enfin, pour une meilleure gestion des semestres, vous pouvez adapter le noeud 'Query Current Semester' pour interroger d'autres bases de données ou ressources si nécessaire.