Workflow n8n

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.

Catégorie: Cron · Tags: automatisation, Telegram, Airtable, recettes, n8n0

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

  • Cron

    Ce noeud déclenche le workflow à des intervalles définis selon une planification.

  • Airtable2

    Ce noeud interagit avec une table Airtable pour effectuer une opération spécifiée.

  • Set

    Ce noeud permet de définir des valeurs et options à utiliser dans le workflow.

  • Recipe Photo

    Ce noeud envoie une photo via Telegram à un chat spécifié.

  • Recipe URL

    Ce noeud envoie un message contenant une URL via Telegram à un chat spécifié.

  • IF

    Ce noeud évalue des conditions pour déterminer le chemin à suivre dans le workflow.

  • Airtable

    Ce noeud interagit avec une table Airtable pour effectuer une opération spécifiée.

  • Airtable1

    Ce noeud interagit avec une table Airtable pour effectuer une opération spécifiée.

  • Telegram Recipe Image

    Ce noeud envoie une image via Telegram à un chat spécifié.

  • Telegram Recipe URL

    Ce noeud envoie un message contenant une URL via Telegram à un chat spécifié.

  • Set1

    Ce noeud permet de définir des valeurs et options à utiliser dans le workflow.

  • Get recipes from API

    Ce noeud effectue une requête HTTP pour obtenir des recettes à partir d'une API.

  • Get recipes

    Ce noeud effectue une requête HTTP pour obtenir des recettes à partir d'une API.

  • Telegram Trigger - people join bot

    Ce noeud déclenche le workflow lorsque des personnes rejoignent le bot Telegram.

  • Telegram - Welcome Message

    Ce noeud envoie un message de bienvenue via Telegram à un chat spécifié.

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.