Processus d'automatisation Notion-GitHub
Intermédiaire
Ceci est unProject Managementworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme Set, Gmail, Github, Notion, Switch. Flux automatisé de Notion vers GitHub avec notifications par e-mail
Prérequis
- •Compte Google et informations d'identification Gmail API
- •Personal Access Token GitHub
- •Clé API Notion
Nœuds utilisés (14)
Catégorie
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
"id": "MkdncnBkezX9QPQZ",
"meta": {
"instanceId": "43fe624f1392ada2f15246a2a3a9f0bf4079ffe6ba53194387a75aad0085752f",
"templateCredsSetupCompleted": true
},
"name": "notion-github",
"tags": [
{
"id": "7w2Ku9VPbcMLEYjA",
"name": "from6",
"createdAt": "2025-07-02T10:28:35.419Z",
"updatedAt": "2025-07-02T10:28:35.419Z"
}
],
"nodes": [
{
"id": "7c3adcf2-0f6c-4b9f-840c-9f1f1ad7b6fc",
"name": "Obtenir plusieurs pages de base de données",
"type": "n8n-nodes-base.notion",
"position": [
540,
140
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": {
"__rl": true,
"mode": "list",
"value": "224315ef-5fbb-804c-b0ac-daa3fd2204d1",
"cachedResultUrl": "https://www.notion.so/224315ef5fbb804cb0acdaa3fd2204d1",
"cachedResultName": "Feature Tracker"
}
},
"credentials": {
"notionApi": {
"id": "m58S8v9iNfyHkNCa",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "35ccdc8d-063d-4177-9dbf-ef5ab0490083",
"name": "Créer un ticket",
"type": "n8n-nodes-base.github",
"position": [
1260,
-760
],
"webhookId": "83ec3e24-50a4-4671-be98-ca979017b807",
"parameters": {
"body": "={{ $json.Description }}",
"owner": {
"__rl": true,
"mode": "list",
"value": "From6Agency",
"cachedResultUrl": "https://github.com/From6Agency",
"cachedResultName": "From6Agency"
},
"title": "={{ $json.Title }}",
"labels": [],
"assignees": [],
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $json.Repository }}"
},
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": "Gln4s2VSz3SN6tZc",
"name": "GitHub account"
}
},
"typeVersion": 1.1
},
{
"id": "15822ab6-75eb-42f6-9735-462eee577f01",
"name": "Trier les champs des tickets",
"type": "n8n-nodes-base.set",
"position": [
740,
140
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ec9e556b-db8d-4c84-9278-ddae3c03dae4",
"name": "Title",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "2f44fef2-db01-4d86-97d8-24e860b9191f",
"name": "Description",
"type": "string",
"value": "={{ $json.property_description }}"
},
{
"id": "262ee63f-14a6-4779-85e4-38d0a0eb1b45",
"name": "Labels",
"type": "string",
"value": "={{ $json.property_labels[0] }}"
},
{
"id": "93645af7-ae3f-476d-ab0a-ca4bb454f89a",
"name": "Repository",
"type": "string",
"value": "={{ $json.property_repository[0] }}"
},
{
"id": "7e55b3f9-1d18-43c0-8311-54c267613f72",
"name": "Status",
"type": "string",
"value": "={{ $json.property_status }}"
},
{
"id": "0050711a-c0af-473f-8e3f-6fca52dd96da",
"name": "DatabasePageId",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ab5feb3b-b90b-46b8-817e-4d5304f1c052",
"name": "Déclencheur planifié",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
300,
140
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "5d1c0a93-e655-40b6-800d-95fa9a45fb5a",
"name": "Obtenir plusieurs utilisateurs",
"type": "n8n-nodes-base.notion",
"position": [
1300,
460
],
"parameters": {
"resource": "user",
"operation": "getAll"
},
"credentials": {
"notionApi": {
"id": "m58S8v9iNfyHkNCa",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "26fb5264-ecc5-41c7-ba4b-190299ebe133",
"name": "Mapper les utilisateurs Notion",
"type": "n8n-nodes-base.set",
"position": [
1480,
460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d7fa28c1-b8fd-4696-9c54-1fbfc1ecfeeb",
"name": "Name",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "2d2bf9ae-2a65-4550-b5ab-2ba3c80af59f",
"name": "Email",
"type": "string",
"value": "={{ $json.person.email }}"
},
{
"id": "399b3419-f7c1-4a4d-866c-b376f264bdf5",
"name": "type",
"type": "string",
"value": "={{ $json.type }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bf194122-52fb-466d-9532-21edd54857c7",
"name": "Définir le statut et l'URL du ticket",
"type": "n8n-nodes-base.notion",
"position": [
1540,
-760
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Switch').item.json.DatabasePageId }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Status|status",
"statusValue": "In progress"
},
{
"key": "Issue URL|url",
"urlValue": "={{ $json.html_url }}",
"ignoreIfEmpty": true
}
]
}
},
"credentials": {
"notionApi": {
"id": "m58S8v9iNfyHkNCa",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "41f0a8c9-df5f-4fa8-a4e1-ed10017d1688",
"name": "Commutateur",
"type": "n8n-nodes-base.switch",
"position": [
980,
140
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c494ba90-0e31-44f0-b7d3-9d59b42fbc67",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Status }}",
"rightValue": "To develop"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e2566cab-fc35-4ef9-ba23-44a2c128b61c",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Status }}",
"rightValue": "Done"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "3d653edc-4d9e-4efc-98b2-83ef168bc962",
"name": "Exclure les bots",
"type": "n8n-nodes-base.switch",
"position": [
1660,
460
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0abb60d1-baa3-42e2-9ced-913b24bf727d",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "person"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "b4ce6176-284a-45d7-a852-e456a596f833",
"name": "Envoyer un message",
"type": "n8n-nodes-base.gmail",
"position": [
2060,
460
],
"webhookId": "0fac39e9-7020-44a0-98fd-b0cb16487604",
"parameters": {
"sendTo": "={{ $json.Email.join(', ') }}",
"message": "=Your message stipulating that the issue {{ $('Switch').item.json.Title }} has been marked as Done and closed within the {{ $('Switch').item.json.Repository }} repository.",
"options": {},
"subject": "A Github Issue has been closed !",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "9B0IqBqjWC8gKOUn",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "3b0bc8f4-4d6c-4c52-b123-78583df2ab89",
"name": "Regrouper les destinataires",
"type": "n8n-nodes-base.aggregate",
"position": [
1880,
460
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "Email"
}
]
}
},
"typeVersion": 1
},
{
"id": "5becc075-f6b8-4c57-8489-7152e9616ec6",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
-720
],
"parameters": {
"color": 6,
"width": 880,
"height": 1100,
"content": "## 🔹 SECTION 1: Detect and Sort Issues from Notion\n**Combining**: Schedule Trigger + Notion Database + Field Mapping + Status Routing\n\n## ⏰ 1. Schedule Trigger\n🔧 **Node Type**: Schedule Trigger (you can use a webhook trigger if you are on Notion paid plan)\n\n## 💬 Description: Triggers the workflow every X minutes to check for new or updated Notion database pages.\n\n## 📑 2. Get Many Database Pages (Notion)\n🔧 **Node Type**: Notion → Get All Database Pages\n\n## 📋 What it does: Fetches all rows (pages) from a Notion database that represents tasks or feature requests.\n\n✏️ 3. Sort Issues Fields\n🔧 **Node Type**: Set\n\n## 📋 Goal: Restructures or cleans data fields such as Title, Status, Labels, and Repository.\n\n## 🔀 4. Switch: Issue Status Decision\n🔧 **Node Type**: Switch\n\n## 🎯 What it does: Separates logic based on the Status of the Notion item:\n\n**If status is \"To develop\"** → proceed to create issue\n\n**Else** → send notification to the team"
},
"typeVersion": 1
},
{
"id": "246e38b3-eb3d-47f8-9818-e0c48e9c308f",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1160,
-1360
],
"parameters": {
"color": 4,
"width": 640,
"height": 760,
"content": "## 🔹 SECTION 2: GitHub Issue Creation (IF \"To develop\")\n**Combining**: GitHub Node + Notion Update\n\n## 🐙 5. Create an Issue (GitHub)\n🔧 **Node Type**: GitHub → Create Issue\n\n## ⚙️ What it does: Creates a new issue on the GitHub repo defined in the Notion row.\n\n## 📥 Inputs: Uses dynamic fields: Title, Description, Labels, Repository.\n\n## 🧩 6. Set Status and Issue URL (Notion Update)\n🔧 **Node Type**: Notion → Update Database Page\n\n## 🧠 Role: Updates the status of the issue in Notion to In progress and stores the created GitHub Issue URL."
},
"typeVersion": 1
},
{
"id": "7a5f0935-2dc8-4db4-8044-1f261b1820dd",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
-380
],
"parameters": {
"color": 3,
"width": 960,
"height": 1020,
"content": "## 🔹 SECTION 3: Notify Team on Already In-Progress Items (IF NOT \"To develop\")\nCombining: Notion Users + Filtering + Email Grouping + Gmail\n\n## 👥 7. Get Many Users (Notion Users)\n🔧 **Node Type**: Notion → Get All Users\n\n## 📥 What it does: Retrieves the list of team members (to be notified).\n\n## 🧠 8. Map Notion Users\n🔧 **Node Type**: Set\n\n## 📋 Role: Maps and formats data for each user (e.g., Name, Email, Role).\n\n## 🧹 9. Exclude Bot\n🔧 **Node Type**: Switch\n\n## 🚫 What it does: Excludes automation/bot users (e.g., notifications@noreply).\n\n## 🧮 10. Group Recipients\n🔧 **Node Type**: Aggregate\n\n## 🎯 Goal: Collects all user emails into a single array to send one email to all recipients.\n\n## 📬 11. Send a Message (Gmail)\n🔧 **Node Type**: Gmail → Send Email"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7768a0ea-4dad-4586-b6b7-46b82a036dce",
"connections": {
"41f0a8c9-df5f-4fa8-a4e1-ed10017d1688": {
"main": [
[
{
"node": "35ccdc8d-063d-4177-9dbf-ef5ab0490083",
"type": "main",
"index": 0
}
],
[
{
"node": "5d1c0a93-e655-40b6-800d-95fa9a45fb5a",
"type": "main",
"index": 0
}
]
]
},
"3d653edc-4d9e-4efc-98b2-83ef168bc962": {
"main": [
[
{
"node": "3b0bc8f4-4d6c-4c52-b123-78583df2ab89",
"type": "main",
"index": 0
}
]
]
},
"5d1c0a93-e655-40b6-800d-95fa9a45fb5a": {
"main": [
[
{
"node": "26fb5264-ecc5-41c7-ba4b-190299ebe133",
"type": "main",
"index": 0
}
]
]
},
"35ccdc8d-063d-4177-9dbf-ef5ab0490083": {
"main": [
[
{
"node": "bf194122-52fb-466d-9532-21edd54857c7",
"type": "main",
"index": 0
}
]
]
},
"3b0bc8f4-4d6c-4c52-b123-78583df2ab89": {
"main": [
[
{
"node": "b4ce6176-284a-45d7-a852-e456a596f833",
"type": "main",
"index": 0
}
]
]
},
"26fb5264-ecc5-41c7-ba4b-190299ebe133": {
"main": [
[
{
"node": "3d653edc-4d9e-4efc-98b2-83ef168bc962",
"type": "main",
"index": 0
}
]
]
},
"ab5feb3b-b90b-46b8-817e-4d5304f1c052": {
"main": [
[
{
"node": "7c3adcf2-0f6c-4b9f-840c-9f1f1ad7b6fc",
"type": "main",
"index": 0
}
]
]
},
"15822ab6-75eb-42f6-9735-462eee577f01": {
"main": [
[
{
"node": "41f0a8c9-df5f-4fa8-a4e1-ed10017d1688",
"type": "main",
"index": 0
}
]
]
},
"7c3adcf2-0f6c-4b9f-840c-9f1f1ad7b6fc": {
"main": [
[
{
"node": "15822ab6-75eb-42f6-9735-462eee577f01",
"type": "main",
"index": 0
}
]
]
}
}
}Foire aux questions
Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Gestion de projet
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Rapport d'équipe hebdomadaire automatisé pour les groupes WhatsApp avec résumé par Gemini AI
Rapport hebdomadaire automatisé d'équipe pour les groupes WhatsApp avec un résumé Gemini AI
If
Set
Code
+
If
Set
Code
47 NœudsJamot
Gestion de projet
Agent automatisé pour la rédaction de blogs et la promotion sur les réseaux sociaux
Automatisation de la création de blog SEO + médias sociaux avec GPT-4, Perplexity et WordPress
Set
Code
Gmail
+
Set
Code
Gmail
79 NœudsLukaszB
Design
Automatisation de la préparation des réunions commerciales et envoi vers WhatsApp avec l'IA et APIFY
Automatiser la préparation des réunions commerciales et l'envoi à WhatsApp avec l'IA et APIFY
If
Set
Html
+
If
Set
Html
61 NœudsJimleuk
Ventes
Mise à jour des modèles d'e-mail existants dans Braze
Automatiser le contenu pour les réseaux sociaux (Instagram, Facebook, LinkedIn, X) avec l'IA
Set
Gmail
Merge
+
Set
Gmail
Merge
73 NœudsLukaszB
Design
Sauvegarde automatisée des workflows n8n vers GitHub avec suivi des suppressions
Sauvegarde automatisée des workflows n8n vers GitHub et suivi des suppressions
If
N8n
Set
+
If
N8n
Set
31 NœudsMarcial Ambriz
DevOps
Créer des résumés de renseignements IA à partir de newsletters en utilisant Gemini, Slack et Notion
Créer des résumés de renseignements générés par l'IA à partir de newsletters avec Gemini, Slack et Notion
Set
Code
Gmail
+
Set
Code
Gmail
19 NœudsHarry Siggins
Divers
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds14
Catégorie1
Types de nœuds8
Description de la difficulté
Auteur
Fady Bekkar
@fadybekkarLiens externes
Voir sur n8n.io →
Partager ce workflow