Surveillance des mises à jour GitHub de n8n avec résumé par l'IA et envoi vers Telegram
Ceci est unDevOps, AI Summarizationworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme Set, Filter, Github, Telegram, ScheduleTrigger. Résumé quotidien des demandes de pull depuis GitHub avec GPT-4o-mini envoyé vers Telegram
- •Personal Access Token GitHub
- •Token Bot Telegram
- •Clé API OpenAI
Nœuds utilisés (16)
{
"id": "jI7ZJYsUKf8QUQ51",
"meta": {
"instanceId": "25e77c0c6022d4bb0bf1d4755e6d167b4f61a12eba4f980e0349847ef576722f"
},
"name": "Monitor n8n GitHub Updates with AI Summary to Telegram",
"tags": [],
"nodes": [
{
"id": "537b39f3-0fef-4d2c-8321-9c9b791a1f85",
"name": "Vérification quotidienne à 10h",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1024,
352
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 10
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c3d226c6-a72d-4045-a546-183a2934b8a1",
"name": "Récupérer la dernière pull request",
"type": "n8n-nodes-base.github",
"position": [
-656,
352
],
"webhookId": "568e4e81-6d8f-47f6-9c61-172ecc2c97bb",
"parameters": {
"limit": 1,
"owner": {
"__rl": true,
"mode": "url",
"value": "https://github.com/n8n-io"
},
"resource": "repository",
"operation": "getPullRequests",
"repository": {
"__rl": true,
"mode": "list",
"value": "n8n",
"cachedResultUrl": "https://github.com/n8n-io/n8n",
"cachedResultName": "n8n"
},
"getRepositoryPullRequestsFilters": {}
},
"credentials": {
"githubApi": {
"id": "YHlVkcnz4R5j27Rx",
"name": "GitHub account"
}
},
"typeVersion": 1.1
},
{
"id": "c18dbd10-1990-4bca-a19c-7bdb702aad15",
"name": "Extraire le résumé de PR",
"type": "n8n-nodes-base.set",
"position": [
32,
352
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "42ee224f-6cf4-424f-9e7a-aaa3d48011db",
"name": "Summary",
"type": "string",
"value": "={{ $json.body }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "356865db-e642-4a99-9ecc-fb75ec85e6fd",
"name": "Générer un résumé IA",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
384,
352
],
"parameters": {
"text": "=Here is the update to process:\n\n{{ $json.Summary }}\n\nRelease date of this update:\n{{ $('Fetch Latest Pull Request').item.json.created_at }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=# Role\nYou are an expert at explaining GitHub repository updates for the n8n platform.\n\n# Context\nYou will receive the latest n8n update and a summary of what will be modified in the tool.\n\nYour goal is to translate the update summary into English (if needed), using simple words while not forgetting the important technical details in the summary.\n\nThe purpose is to send a message on Telegram to users who are interested in having the latest n8n update, which is their most important work tool.\n\n# Instructions\n- The summary should be detailed but relatively short without being unreadable\n- Write in bullet points for each modification specified in the summary\n- Never write \"Here is the summary\". Instead write \"Summary of the new n8n update from (date in DD-MMMM-YYYY format)\"\n- Keep technical terminology accurate\n- Make it scannable and easy to understand\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "52e92b66-4ccc-42cd-8a4b-9ad567e6c791",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
448,
208
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "tPz7OYjU7MhjU1IB",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "bc3dbe68-3e0b-4dfa-92fc-1bca3fa310c0",
"name": "Envoyer vers le canal Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
832,
352
],
"webhookId": "009d3cab-2dc2-48d6-b8e5-64e6b62a1859",
"parameters": {
"text": "={{ $json.text }}",
"chatId": "YOUR_TELEGRAM_CHAT_ID",
"additionalFields": {
"parse_mode": "HTML",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "bY7q4yTQBzOb85ry",
"name": "Veille "
}
},
"typeVersion": 1.2
},
{
"id": "cceef3b4-6499-4223-99ba-d55d4bfc9661",
"name": "Filtrer uniquement les mises à jour du jour",
"type": "n8n-nodes-base.filter",
"position": [
-320,
352
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "508f3478-6db7-460d-85bb-67dc90c0443e",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.created_at }}",
"rightValue": "={{ $today }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "c03bfe88-40e1-4011-b957-7fbb27e2fdf8",
"name": "Explication du workflow principal",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1952,
-544
],
"parameters": {
"color": 4,
"width": 580,
"height": 1032,
"content": "## Monitor n8n GitHub Updates with AI Summary to Telegram\n\n### Stay informed about the latest n8n updates automatically!\n\nThis workflow monitors the n8n GitHub repository for new pull requests, filters updates from today, generates an AI-powered summary, and sends notifications to your Telegram channel.\n\n### Who's it for\n- n8n users who want to stay up-to-date with platform changes\n- Development teams tracking n8n updates\n- Anyone managing n8n workflows who needs to know about breaking changes or new features\n\n### How it works\n1. **Daily scheduled check** at 10 AM for new pull requests\n2. **Fetches latest PR** from n8n GitHub repository\n3. **Filters** to only process today's updates\n4. **Extracts** the pull request summary\n5. **AI generates** a clear, technical summary in English\n6. **Sends notification** to your Telegram channel\n\n### Requirements\n- GitHub account (free)\n- OpenAI API key (for GPT-4o-mini)\n- Telegram Bot Token\n- Telegram Chat ID\n\n### How to set up\n1. Connect your GitHub credentials\n2. Add your OpenAI API key\n3. Create a Telegram bot and get your chat ID\n4. Replace `YOUR_TELEGRAM_CHAT_ID` in the Telegram node\n5. Activate the workflow\n\n### Customization options\n- Change schedule time (currently 10 AM daily)\n- Modify AI prompt for different summary styles\n- Add email notifications alongside Telegram\n- Monitor multiple repositories\n- Adjust date filter logic"
},
"typeVersion": 1
},
{
"id": "5080fed3-6fa2-43ae-b432-2c8eed370875",
"name": "Détails de l'étape 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
80
],
"parameters": {
"color": 7,
"width": 360,
"height": 448,
"content": "## Step 1: Schedule Daily Check\n\n[Read about Schedule Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/)\n\nThis node triggers the workflow automatically every day at 10 AM. You can customize the time to match your timezone or preferred notification schedule.\n\n**Tip:** Adjust the trigger time based on when n8n typically releases updates."
},
"typeVersion": 1
},
{
"id": "0158ec94-8ac5-4659-8fc4-76f3f6a4154f",
"name": "Détails de l'étape 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-96
],
"parameters": {
"color": 7,
"width": 360,
"height": 616,
"content": "## Step 2: Fetch Latest Pull Request\n\n[Read about GitHub node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.github/)\n\nConnects to the n8n GitHub repository and retrieves the most recent pull request. The limit is set to 1 to only get the latest update.\n\n**Configuration:**\n- Owner: n8n-io\n- Repository: n8n\n- Limit: 1 PR\n\n**Note:** Make sure your GitHub credentials are properly configured."
},
"typeVersion": 1
},
{
"id": "421e468d-187c-427e-9219-50b9cfa2df66",
"name": "Détails de l'étape 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-48
],
"parameters": {
"color": 7,
"width": 280,
"height": 560,
"content": "## Step 3: Filter Today's Updates\n\n[Read about Filter node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/)\n\nThis ensures you only receive notifications for pull requests created today, preventing duplicate notifications from older PRs.\n\n**Logic:** Checks if PR creation date is after today's date.\n\n**Why it matters:** Avoids spamming your Telegram with old updates."
},
"typeVersion": 1
},
{
"id": "100058ca-1682-4bf4-a00c-387d63f8a04e",
"name": "Détails de l'étape 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
64
],
"parameters": {
"color": 7,
"width": 360,
"height": 448,
"content": "## Step 4: Extract PR Summary\n\n[Read about Edit Fields node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/)\n\nExtracts the body/summary of the pull request into a clean field that can be passed to the AI model.\n\n**Output:** Clean summary text ready for AI processing."
},
"typeVersion": 1
},
{
"id": "10be682a-c8e0-4e01-b750-ac52cb8b4c0c",
"name": "Détails de l'étape 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
-176
],
"parameters": {
"color": 7,
"width": 384,
"height": 684,
"content": "## Step 5: Generate AI Summary\n\n[Read about LLM Chain](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n\nUses OpenAI's GPT-4o-mini to process the technical GitHub update and create a clear, scannable summary.\n\n**AI Instructions:**\n- Translate if needed\n- Use bullet points\n- Keep technical accuracy\n- Format with date\n- Make it readable\n\n**Cost:** ~$0.0001 per summary (GPT-4o-mini pricing)"
},
"typeVersion": 1
},
{
"id": "208f4a61-ecff-4aec-b516-025ff2d6c846",
"name": "Détails de l'étape 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
688,
-48
],
"parameters": {
"color": 7,
"width": 392,
"height": 552,
"content": "## Step 6: Send to Telegram\n\n[Read about Telegram node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/)\n\nSends the AI-generated summary to your specified Telegram channel or chat.\n\n**Setup Required:**\n1. Create a Telegram bot via @BotFather\n2. Get your chat ID\n3. Replace `YOUR_TELEGRAM_CHAT_ID` in this node\n\n**Format:** HTML parsing enabled for rich formatting.\n\n**Tip:** You can send to multiple channels by duplicating this node."
},
"typeVersion": 1
},
{
"id": "989b36cc-796d-49d1-a4a4-e4033aef0717",
"name": "Liste de configuration",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1872,
592
],
"parameters": {
"color": 5,
"width": 420,
"height": 272,
"content": "## 🔧 Configuration Checklist\n\n**Before activating this workflow:**\n\n- [ ] Add GitHub credentials\n- [ ] Add OpenAI API key\n- [ ] Replace Telegram Chat ID with your actual ID\n- [ ] Test the workflow manually first\n- [ ] Activate the workflow when ready"
},
"typeVersion": 1
},
{
"id": "c9450083-039c-46c3-b77d-dc9cbe02fc33",
"name": "Idées de personnalisation",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
176
],
"parameters": {
"color": 6,
"width": 420,
"height": 324,
"content": "## 💡 Customization Ideas\n\n- **Multiple repositories:** Clone the GitHub node to monitor other repos\n- **Email backup:** Add an email node after the Telegram node\n- **Slack integration:** Replace/duplicate Telegram with Slack\n- **Weekly digest:** Change schedule to send a weekly summary\n- **Priority filtering:** Add filters for specific labels or authors"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8a076e3f-5f2b-49f9-9434-befe8fa46156",
"connections": {
"52e92b66-4ccc-42cd-8a4b-9ad567e6c791": {
"ai_languageModel": [
[
{
"node": "356865db-e642-4a99-9ecc-fb75ec85e6fd",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c18dbd10-1990-4bca-a19c-7bdb702aad15": {
"main": [
[
{
"node": "356865db-e642-4a99-9ecc-fb75ec85e6fd",
"type": "main",
"index": 0
}
]
]
},
"356865db-e642-4a99-9ecc-fb75ec85e6fd": {
"main": [
[
{
"node": "bc3dbe68-3e0b-4dfa-92fc-1bca3fa310c0",
"type": "main",
"index": 0
}
]
]
},
"537b39f3-0fef-4d2c-8321-9c9b791a1f85": {
"main": [
[
{
"node": "c3d226c6-a72d-4045-a546-183a2934b8a1",
"type": "main",
"index": 0
}
]
]
},
"c3d226c6-a72d-4045-a546-183a2934b8a1": {
"main": [
[
{
"node": "cceef3b4-6499-4223-99ba-d55d4bfc9661",
"type": "main",
"index": 0
}
]
]
},
"cceef3b4-6499-4223-99ba-d55d4bfc9661": {
"main": [
[
{
"node": "c18dbd10-1990-4bca-a19c-7bdb702aad15",
"type": "main",
"index": 0
}
]
]
}
}
}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é ?
Avancé - DevOps, Résumé IA
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
Mattis
@iiiiiConsultant et expert en automatisation. Co-fondateur de l'agence PerformAi. Pas qu'un simple créateur, j'écoute et comprends l'importance pour simplifier votre activité au quotidien. On en discute ?
Partager ce workflow