Automatisation Notion avec n8n : gestion des problèmes GitHub
Ce workflow n8n a été conçu pour automatiser la gestion des problèmes sur GitHub en intégrant Notion. Dans un contexte où les équipes de développement doivent suivre les problèmes et les tâches, ce workflow permet de créer, modifier et fermer des pages dans une base de données Notion en fonction des événements sur GitHub. Par exemple, lorsqu'un problème est ouvert ou mis à jour sur GitHub, le workflow déclenche des actions automatiques dans Notion, garantissant ainsi que toutes les informations sont synchronisées et à jour.
- Étape 1 : Le workflow commence par un déclencheur GitHub qui détecte les événements liés aux problèmes, comme l'ouverture ou la fermeture d'un problème.
- Étape 2 : Ensuite, il utilise le nœud 'Find database page' pour rechercher si le problème existe déjà dans la base de données Notion. Si le problème est trouvé, le workflow passe à l'étape suivante ; sinon, il crée une nouvelle page avec le nœud 'Create database page'.
- Étape 3 : Le nœud 'Switch' permet de diriger le flux en fonction de l'état du problème, tandis que le nœud 'IF' vérifie des conditions spécifiques pour déterminer si le problème doit être modifié, fermé ou réouvert. Enfin, les nœuds 'Edit issue', 'Close issue' et 'Reopen issue' gèrent les mises à jour nécessaires dans Notion. Les bénéfices de cette automatisation n8n sont nombreux : elle réduit le temps passé à gérer manuellement les problèmes, minimise les risques d'erreurs et assure une meilleure collaboration entre les équipes de développement et de gestion de projet. En intégrant ces outils, les équipes peuvent se concentrer sur des tâches à plus forte valeur ajoutée.
Workflow n8n Notion, GitHub, gestion de projet : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Notion, GitHub, gestion de projet : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
},
"nodes": [
{
"id": "0bd18974-8414-4b83-b3fb-85d2f6a74164",
"name": "Create database page",
"type": "n8n-nodes-base.notion",
"position": [
1220,
400
],
"parameters": {
"title": "={{$json[\"body\"][\"issue\"][\"title\"]}}",
"resource": "databasePage",
"databaseId": "5026700b-6693-473a-8100-8cc6ddef62a6",
"propertiesUi": {
"propertyValues": [
{
"key": "Issue ID|number",
"numberValue": "={{$node[\"Trigger on issues\"].json[\"body\"][\"issue\"][\"id\"]}}"
},
{
"key": "Link|url",
"urlValue": "={{$node[\"Trigger on issues\"].json[\"body\"][\"issue\"][\"html_url\"]}}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "dfce23fd-7ff8-42d1-9544-694345156080",
"name": "Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1220,
800
],
"parameters": {
"content": "## IF & Switch\nDepends on what action was taken on an issue in GitHub."
},
"typeVersion": 1
},
{
"id": "577e0d7a-0539-414f-8ec8-00ce12807d5b",
"name": "Find database page",
"type": "n8n-nodes-base.notion",
"position": [
1400,
600
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": "5026700b-6693-473a-8100-8cc6ddef62a6",
"filterJson": "={{$node[\"Create custom Notion filters\"].json[\"notionfilter\"]}}",
"filterType": "json"
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "91b0586c-eb08-41d0-bbb0-8a03c4a0ac3a",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1580,
600
],
"parameters": {
"rules": {
"rules": [
{
"value2": "edited"
},
{
"output": 1,
"value2": "deleted"
},
{
"output": 2,
"value2": "closed"
},
{
"output": 3,
"value2": "reopened"
}
]
},
"value1": "={{$node[\"Trigger on issues\"].json[\"body\"][\"action\"]}}",
"dataType": "string"
},
"typeVersion": 1
},
{
"id": "5262e14e-adc2-45d1-9e3f-c0eba013077a",
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
1040,
500
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Trigger on issues\"].json[\"body\"][\"action\"]}}",
"value2": "opened"
}
]
}
},
"typeVersion": 1
},
{
"id": "735ef0b3-70c3-4a88-ad02-35edf8f749c4",
"name": "Edit issue",
"type": "n8n-nodes-base.notion",
"position": [
1760,
360
],
"parameters": {
"pageId": "={{ $node[\"Find database page\"].json[\"id\"] }}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Issue|title",
"title": "={{$node[\"Trigger on issues\"].json[\"body\"][\"issue\"][\"title\"]}}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "39b75e78-bd62-40e4-9e88-12c6a1901c34",
"name": "Delete issue",
"type": "n8n-nodes-base.notion",
"position": [
1760,
520
],
"parameters": {
"pageId": "={{$node[\"Find database page\"].json[\"id\"]}}",
"operation": "archive"
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "d8fee72d-c19d-4b99-85c2-dcc5d4fa6756",
"name": "Create custom Notion filters",
"type": "n8n-nodes-base.function",
"position": [
1220,
600
],
"parameters": {
"functionCode": "const new_items = [];\nfor (item of $items(\"Trigger on issues\")) {\n\n // do not process this item if action is created\n if (item.json[\"body\"][\"action\"] == \"opened\") {\n continue;\n }\n\n // build the output template\n var new_item = {\n \"json\": {\n \"notionfilter\": \"\"\n }\n };\n new_item = JSON.stringify(new_item);\n new_item = JSON.parse(new_item);\n new_items.push(new_item);\n\n // create Notion filter to find specific database page by issue ID\n notionfilter = {\n or: [],\n }\n\n const filter = {\n property: 'Issue ID',\n number: {\n equals: parseInt(item.json[\"body\"][\"issue\"][\"id\"])\n }\n }\n notionfilter[\"or\"].push(filter);\n\n new_item.json.notionfilter = JSON.stringify(notionfilter); \n}\n\nreturn new_items;"
},
"typeVersion": 1
},
{
"id": "99c69200-d932-4379-9a36-96cd8420f21c",
"name": "Close issue",
"type": "n8n-nodes-base.notion",
"position": [
1760,
680
],
"parameters": {
"pageId": "={{$node[\"Find database page\"].json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Closed|checkbox",
"checkboxValue": true
}
]
}
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "3f4b27d3-33ae-44f8-ab18-1c23ae7cf890",
"name": "Reopen issue",
"type": "n8n-nodes-base.notion",
"position": [
1760,
840
],
"parameters": {
"pageId": "={{$node[\"Find database page\"].json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Closed|checkbox"
}
]
}
},
"credentials": {
"notionApi": {
"id": "9",
"name": "[UPDATE ME]"
}
},
"typeVersion": 2
},
{
"id": "62e1a9d3-3fc6-46de-a048-cf8176f30f94",
"name": "Trigger on issues",
"type": "n8n-nodes-base.githubTrigger",
"position": [
860,
500
],
"webhookId": "bc0a0a44-00db-473b-8746-b60b3b36039c",
"parameters": {
"owner": "John-n8n",
"events": [
"issues"
],
"repository": "DemoRepo"
},
"credentials": {
"githubApi": {
"id": "20",
"name": "[UPDATE ME]"
}
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Create database page",
"type": "main",
"index": 0
}
],
[
{
"node": "Create custom Notion filters",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Edit issue",
"type": "main",
"index": 0
}
],
[
{
"node": "Delete issue",
"type": "main",
"index": 0
}
],
[
{
"node": "Close issue",
"type": "main",
"index": 0
}
],
[
{
"node": "Reopen issue",
"type": "main",
"index": 0
}
]
]
},
"Trigger on issues": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Find database page": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Create custom Notion filters": {
"main": [
[
{
"node": "Find database page",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Notion, GitHub, gestion de projet : pour qui est ce workflow ?
Ce workflow s'adresse principalement aux équipes de développement logiciel et aux chefs de projet qui utilisent GitHub et Notion pour la gestion des tâches. Il est idéal pour les entreprises de taille moyenne à grande qui cherchent à optimiser leur flux de travail et à automatiser la gestion des problèmes.
Workflow n8n Notion, GitHub, gestion de projet : problème résolu
Ce workflow résout le problème de la gestion manuelle des problèmes sur GitHub, qui peut être chronophage et sujet à des erreurs. En automatisant la synchronisation entre GitHub et Notion, il élimine les frustrations liées à la mise à jour des statuts des problèmes et réduit le risque de perdre des informations critiques. Les utilisateurs bénéficient d'une vue d'ensemble claire et à jour de leurs tâches, ce qui améliore l'efficacité et la productivité.
Workflow n8n Notion, GitHub, gestion de projet : étapes du workflow
Étape 1 : Le workflow est déclenché par un événement sur GitHub, tel qu'un problème ouvert ou fermé.
- Étape 1 : Il recherche dans Notion si le problème existe déjà à l'aide du nœud 'Find database page'.
- Étape 2 : Si le problème est trouvé, il utilise le nœud 'Switch' pour déterminer l'action à entreprendre.
- Étape 3 : Selon les conditions définies dans le nœud 'IF', le workflow peut modifier, fermer ou réouvrir le problème dans Notion en utilisant les nœuds appropriés.
Workflow n8n Notion, GitHub, gestion de projet : guide de personnalisation
Pour personnaliser ce workflow, commencez par ajuster le nœud 'Trigger on issues' en spécifiant le dépôt GitHub et les événements que vous souhaitez suivre. Ensuite, modifiez le nœud 'Create database page' pour adapter les propriétés de la page Notion à vos besoins, comme le titre ou les champs personnalisés. Vous pouvez également ajouter des filtres dans le nœud 'Create custom Notion filters' pour affiner les données que vous souhaitez synchroniser. Enfin, assurez-vous de tester le flux pour vérifier que toutes les connexions fonctionnent correctement et que les données sont mises à jour comme prévu.