Automatisation Telegram avec n8n : partage de recettes en temps réel
Ce workflow n8n a pour objectif d'automatiser le partage de recettes sur Telegram, facilitant ainsi la diffusion d'informations culinaires en temps réel. Idéal pour les chefs, les blogueurs culinaires ou toute entreprise souhaitant engager sa communauté autour de la gastronomie, ce système permet de partager des recettes dès qu'un nouvel élément est ajouté dans une base de données Airtable. Le processus commence par un déclencheur Cron qui active le workflow à des intervalles réguliers. Ensuite, il interroge Airtable pour récupérer les recettes disponibles. Si de nouvelles recettes sont détectées, le workflow utilise des nœuds Telegram pour envoyer des images et des liens vers ces recettes directement dans un chat Telegram. Les utilisateurs reçoivent ainsi des notifications instantanées, augmentant l'engagement et l'interaction. En intégrant des conditions pour vérifier les nouvelles recettes, ce workflow assure une communication efficace et ciblée. En fin de compte, cette automatisation n8n permet de gagner du temps, d'améliorer la visibilité des recettes et de renforcer la relation avec les abonnés sur Telegram. Tags clés : automatisation, Telegram, Airtable.
Vue d'ensemble du workflow n8n
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Détail des nœuds du workflow n8n
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
440,
440
],
"parameters": {
"triggerTimes": {
"item": [
{}
]
}
},
"typeVersion": 1
},
{
"name": "Airtable2",
"type": "n8n-nodes-base.airtable",
"notes": "Grab our list of chats from Airtable to send a random recipe",
"position": [
660,
440
],
"parameters": {
"table": "Table 1",
"operation": "list",
"application": "your_sheet_id",
"additionalOptions": {}
},
"credentials": {
"airtableApi": {
"id": "5",
"name": "Airtable account"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
860,
600
],
"parameters": {
"values": {
"number": [
{
"name": "chatid",
"value": "={{$node[\"Airtable2\"].json[\"fields\"][\"chatid\"]}}"
}
],
"string": []
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Recipe Photo",
"type": "n8n-nodes-base.telegram",
"position": [
1240,
440
],
"parameters": {
"file": "={{$node[\"Get recipes from API\"].json[\"recipes\"][0][\"image\"]}}",
"chatId": "={{$node[\"Set\"].json[\"chatid\"]}}",
"operation": "sendPhoto",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1,
"continueOnFail": true
},
{
"name": "Recipe URL",
"type": "n8n-nodes-base.telegram",
"position": [
1420,
440
],
"parameters": {
"text": "=\n{{$node[\"Get recipes from API\"].json[\"recipes\"][0][\"title\"]}}\n\n{{$node[\"Get recipes from API\"].json[\"recipes\"][0][\"sourceUrl\"]}}",
"chatId": "={{$node[\"Set\"].json[\"chatid\"]}}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1,
"continueOnFail": true
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"notes": "If the chat ID isn't in our airtable, we add it. This is to send a new recipe daily. ",
"position": [
860,
-80
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "= {{$node[\"Airtable1\"].parameter[\"fields\"][1]}}",
"value2": "= {{$node[\"Airtable1\"].parameter[\"fields\"][0]}}",
"operation": "notEqual"
}
],
"boolean": []
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"position": [
620,
-80
],
"parameters": {
"table": "Table 1",
"operation": "list",
"application": "your_sheet_id",
"additionalOptions": {}
},
"credentials": {
"airtableApi": {
"id": "5",
"name": "Airtable account"
}
},
"typeVersion": 1
},
{
"name": "Airtable1",
"type": "n8n-nodes-base.airtable",
"position": [
1340,
-100
],
"parameters": {
"table": "Table 1",
"fields": [
"chatid",
"={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"chat\"][\"id\"]}}",
"Name",
"={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"from\"][\"first_name\"]}}"
],
"options": {},
"operation": "append",
"application": "your_sheet_id",
"addAllFields": false
},
"credentials": {
"airtableApi": {
"id": "5",
"name": "Airtable account"
}
},
"typeVersion": 1
},
{
"name": "Telegram Recipe Image",
"type": "n8n-nodes-base.telegram",
"position": [
980,
180
],
"parameters": {
"file": "={{$node[\"Get recipes\"].json[\"recipes\"][0][\"image\"]}}",
"chatId": "={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"chat\"][\"id\"]}}",
"operation": "sendPhoto",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1
},
{
"name": "Telegram Recipe URL",
"type": "n8n-nodes-base.telegram",
"position": [
1180,
180
],
"parameters": {
"text": "=\n{{$node[\"Get recipes\"].json[\"recipes\"][0][\"title\"]}}\n\n{{$node[\"Get recipes\"].json[\"recipes\"][0][\"sourceUrl\"]}}",
"chatId": "={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"chat\"][\"id\"]}}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1
},
{
"name": "Set1",
"type": "n8n-nodes-base.set",
"position": [
1120,
-100
],
"parameters": {
"values": {
"string": [
{
"name": "chatid",
"value": "={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"chat\"][\"id\"]}}"
},
{
"name": "Name",
"value": "={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"from\"][\"first_name\"]}}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Get recipes from API",
"type": "n8n-nodes-base.httpRequest",
"notes": "https://spoonacular.com/food-api/docs",
"position": [
1080,
440
],
"parameters": {
"url": "https://api.spoonacular.com/recipes/random?apiKey=APIKEYHERE&number=1&tags=vegan",
"options": {
"fullResponse": false
},
"queryParametersUi": {
"parameter": []
}
},
"typeVersion": 1
},
{
"name": "Get recipes",
"type": "n8n-nodes-base.httpRequest",
"notes": "https://spoonacular.com/food-api/docs",
"position": [
800,
180
],
"parameters": {
"url": "https://api.spoonacular.com/recipes/random?apiKey=APIKEYHERE&number=1&tags=vegan",
"options": {
"fullResponse": false
},
"queryParametersUi": {
"parameter": []
}
},
"typeVersion": 1
},
{
"name": "Telegram Trigger - people join bot",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
420,
140
],
"webhookId": "your_bot_id",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1
},
{
"name": "Telegram - Welcome Message",
"type": "n8n-nodes-base.telegram",
"position": [
620,
180
],
"parameters": {
"text": "=Welcome! This bot will send you one vegan recipe a day. Here is your first recipe!",
"chatId": "={{$node[\"Telegram Trigger - people join bot\"].json[\"message\"][\"chat\"][\"id\"]}}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "1",
"name": "Telegram account"
}
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Set1",
"type": "main",
"index": 0
}
]
]
},
"Set": {
"main": [
[
{
"node": "Get recipes from API",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "Airtable2",
"type": "main",
"index": 0
}
]
]
},
"Set1": {
"main": [
[
{
"node": "Airtable1",
"type": "main",
"index": 0
}
]
]
},
"Airtable": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Airtable2": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
},
"Get recipes": {
"main": [
[
{
"node": "Telegram Recipe Image",
"type": "main",
"index": 0
}
]
]
},
"Recipe Photo": {
"main": [
[
{
"node": "Recipe URL",
"type": "main",
"index": 0
}
]
]
},
"Get recipes from API": {
"main": [
[
{
"node": "Recipe Photo",
"type": "main",
"index": 0
}
]
]
},
"Telegram Recipe Image": {
"main": [
[
{
"node": "Telegram Recipe URL",
"type": "main",
"index": 0
}
]
]
},
"Telegram - Welcome Message": {
"main": [
[
{
"node": "Get recipes",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger - people join bot": {
"main": [
[
{
"node": "Airtable",
"type": "main",
"index": 0
},
{
"node": "Telegram - Welcome Message",
"type": "main",
"index": 0
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux chefs, blogueurs culinaires, et entreprises de l'alimentation qui souhaitent automatiser le partage de recettes sur Telegram. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire et peut être adapté à des organisations de toute taille.
Problème résolu
Ce workflow résout le problème de la diffusion manuelle des recettes, qui peut être chronophage et peu engageante. En automatisant ce processus, il élimine les frustrations liées à la gestion des communications, réduit le risque de perte d'informations, et garantit que les abonnés reçoivent toujours les dernières recettes. Les utilisateurs bénéficient ainsi d'une interaction accrue avec leur communauté et d'une meilleure visibilité de leurs contenus.
Étapes du workflow
Étape 1 : Le workflow est déclenché par un Cron qui s'exécute à intervalles réguliers. Étape 2 : Il interroge Airtable pour récupérer les nouvelles recettes. Étape 3 : Une condition vérifie si de nouvelles recettes ont été ajoutées. Étape 4 : Si c'est le cas, le workflow utilise des nœuds Telegram pour envoyer des images et des liens vers les recettes dans le chat. Étape 5 : Un message de bienvenue est également envoyé aux nouveaux abonnés du bot Telegram pour les engager dès leur arrivée.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, vous pouvez modifier l'URL de votre base Airtable pour pointer vers votre propre table de recettes. Assurez-vous que les champs de données correspondent à ceux utilisés dans le workflow. Vous pouvez également ajuster les messages envoyés via Telegram en modifiant les nœuds de message pour refléter votre ton de communication. Enfin, pour sécuriser le flux, envisagez d'ajouter des vérifications supplémentaires ou des alertes en cas d'erreurs dans le processus d'envoi.