Workflow n8n

Automatisation Email avec n8n : suggestions de recettes quotidiennes

Ce workflow n8n a pour objectif d'envoyer des suggestions de recettes par email à une fréquence définie, facilitant ainsi la planification des repas pour les utilisateurs. Il s'adresse particulièrement aux professionnels de la cuisine, aux blogueurs culinaires ou à toute personne souhaitant automatiser l'envoi de recettes à leur audience. Grâce à l'automatisation n8n, ce processus devient simple et efficace, permettant de gagner un temps précieux tout en offrant un contenu de qualité.

  • Étape 1 : le workflow est déclenché par un nœud Cron qui permet de définir la fréquence d'exécution.
  • Étape 2 : les critères de recherche pour les recettes sont définis à l'aide du nœud 'Search Criteria'.
  • Étape 3 : les valeurs de requête sont ensuite configurées avec le nœud 'Set Query Values'.
  • Étape 4 : le nœud 'Retrieve Recipe Counts' effectue une requête HTTP pour obtenir le nombre de recettes disponibles, tandis que le nœud 'Retrieve Recipes' récupère les recettes elles-mêmes.
  • Étape 5 : les résultats sont traités et les comptes sont définis avec le nœud 'Set Counts'.
  • Étape 6 : un email est préparé avec le nœud 'Create Email Body in HTML' et envoyé grâce au nœud 'Send Recipes'. Cette automatisation permet non seulement de réduire le temps consacré à la recherche de recettes, mais également d'améliorer l'engagement des utilisateurs en leur fournissant des suggestions personnalisées et régulières.
Tags clés :automatisationemailrecettesn8ncuisine
Catégorie: Scheduled · Tags: automatisation, email, recettes, n8n, cuisine0

Workflow n8n email, recettes, cuisine : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n email, recettes, cuisine : détail des nœuds

  • Cron

    Ce noeud déclenche le workflow à des intervalles réguliers selon un calendrier défini.

  • Search Criteria

    Ce noeud définit des critères de recherche en configurant des valeurs et des options.

  • Set Query Values

    Ce noeud traite des données en définissant des valeurs de requête via un code fonction.

  • Set Recipe ID Values

    Ce noeud traite des données en définissant des valeurs d'identifiant de recette via un code fonction.

  • Retrieve Recipe Counts

    Ce noeud effectue une requête HTTP pour récupérer le nombre de recettes à partir d'une URL spécifiée.

  • Retrieve Recipes

    Ce noeud effectue une requête HTTP pour récupérer les recettes à partir d'une URL spécifiée.

  • Set Counts

    Ce noeud définit des compteurs en configurant des valeurs et des options tout en conservant uniquement les éléments définis.

  • Send Recipes

    Ce noeud envoie un email contenant les recettes, avec un sujet, un destinataire et un expéditeur spécifiés.

  • Create Email Body in HTML

    Ce noeud crée le corps de l'email en HTML en utilisant un code fonction.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "11",
  "name": "What To Eat",
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "position": [
        100,
        400
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "hour": 10
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Search Criteria",
      "type": "n8n-nodes-base.set",
      "position": [
        300,
        400
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "RecipeCount",
              "value": 3
            },
            {
              "name": "IngredientCount",
              "value": 5
            },
            {
              "name": "CaloriesMin"
            },
            {
              "name": "CaloriesMax",
              "value": 1500
            },
            {
              "name": "TimeMin"
            },
            {
              "name": "TimeMax",
              "value": 30
            }
          ],
          "string": [
            {
              "name": "Diet",
              "value": "balanced"
            },
            {
              "name": "Health",
              "value": "random"
            },
            {
              "name": "SearchItem",
              "value": "chicken"
            },
            {
              "name": "AppID",
              "value": "Enter Your Edamam AppID Here"
            },
            {
              "name": "AppKey",
              "value": "Enter Your Edamam AppKey Here"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "name": "Set Query Values",
      "type": "n8n-nodes-base.function",
      "position": [
        500,
        400
      ],
      "parameters": {
        "functionCode": "items[0].json.calories = items[0].json.CaloriesMin + \"-\" + items[0].json.CaloriesMax;\nitems[0].json.time = items[0].json.TimeMin + \"-\" + items[0].json.TimeMax;\n\nif (items[0].json.Diet.toUpperCase() == \"RANDOM\") {\n  arrDiet = [\"balanced\",\"high-fiber\",\"high-protein\",\"low-carb\",\"low-fat\",\"low-sodium\"];\n  intRandomNumber = Math.floor(Math.random() * 6);\n  items[0].json.Diet = arrDiet[intRandomNumber];\n}\n\nif (items[0].json.Health.toUpperCase() == \"RANDOM\") {\n  arrHealth = [\"alcohol-free\",\"immuno-supportive\",\"celery-free\",\"crustacean-free\",\"dairy-free\",\"egg-free\",\"fish-free\",\"fodmap-free\",\"gluten-free\",\"keto-friendly\",\"kidney-friendly\",\"kosher\",\"low-potassium\",\"lupine-free\",\"mustard-free\",\"low-fat-abs\",\"no-oil-added\",\"low-sugar\",\"paleo\",\"peanut-free\",\"pecatarian\",\"pork-free\",\"red-meat-free\",\"sesame-free\",\"shellfish-free\",\"soy-free\",\"sugar-conscious\",\"tree-nut-free\",\"vegan\",\"vegetarian\",\"wheat-free\"];\n  intRandomNumber = Math.floor(Math.random() * 31);\n  items[0].json.Health = arrHealth[intRandomNumber];\n}\n\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "name": "Set Recipe ID Values",
      "type": "n8n-nodes-base.function",
      "position": [
        1080,
        400
      ],
      "parameters": {
        "functionCode": "items[0].json.from = Math.floor(Math.random() * items[0].json.RecipeCount) + 1;\nitems[0].json.to = items[0].json.from + items[0].json.ReturnCount;\n\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "name": "Retrieve Recipe Counts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        400
      ],
      "parameters": {
        "url": "https://api.edamam.com/search",
        "options": {},
        "queryParametersUi": {
          "parameter": [
            {
              "name": "q",
              "value": "={{$node[\"Set Query Values\"].json[\"SearchItem\"]}}"
            },
            {
              "name": "app_id",
              "value": "={{$node[\"Set Query Values\"].json[\"AppID\"]}}"
            },
            {
              "name": "app_key",
              "value": "={{$node[\"Set Query Values\"].json[\"AppKey\"]}}"
            },
            {
              "name": "ingr",
              "value": "={{$node[\"Set Query Values\"].json[\"IngredientCount\"]}}"
            },
            {
              "name": "diet",
              "value": "={{$node[\"Set Query Values\"].json[\"Diet\"]}}"
            },
            {
              "name": "calories",
              "value": "={{$node[\"Set Query Values\"].json[\"calories\"]}}"
            },
            {
              "name": "time",
              "value": "={{$node[\"Set Query Values\"].json[\"time\"]}}"
            },
            {
              "name": "from",
              "value": "1"
            },
            {
              "name": "to",
              "value": "2"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Retrieve Recipes",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1260,
        400
      ],
      "parameters": {
        "url": "https://api.edamam.com/search",
        "options": {},
        "queryParametersUi": {
          "parameter": [
            {
              "name": "q",
              "value": "={{$node[\"Search Criteria\"].json[\"SearchItem\"]}}"
            },
            {
              "name": "app_id",
              "value": "={{$node[\"Search Criteria\"].json[\"AppID\"]}}"
            },
            {
              "name": "app_key",
              "value": "={{$node[\"Search Criteria\"].json[\"AppKey\"]}}"
            },
            {
              "name": "from",
              "value": "={{$node[\"Set Recipe ID Values\"].json[\"from\"]}}"
            },
            {
              "name": "to",
              "value": "={{$node[\"Set Recipe ID Values\"].json[\"to\"]}}"
            },
            {
              "name": "ingr",
              "value": "={{$node[\"Search Criteria\"].json[\"IngredientCount\"]}}"
            },
            {
              "name": "diet",
              "value": "={{$node[\"Search Criteria\"].json[\"Diet\"]}}"
            },
            {
              "name": "calories",
              "value": "={{$node[\"Set Query Values\"].json[\"calories\"]}}"
            },
            {
              "name": "time",
              "value": "={{$node[\"Set Query Values\"].json[\"time\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Set Counts",
      "type": "n8n-nodes-base.set",
      "position": [
        880,
        400
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "RecipeCount",
              "value": "={{$node[\"Retrieve Recipe Counts\"].json[\"count\"]}}"
            },
            {
              "name": "ReturnCount",
              "value": "={{$node[\"Search Criteria\"].json[\"RecipeCount\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "name": "Send Recipes",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1660,
        400
      ],
      "parameters": {
        "html": "={{$node[\"Create Email Body in HTML\"].json[\"emailBody\"]}}",
        "options": {},
        "subject": "={{$node[\"Set Query Values\"].json[\"RecipeCount\"]}} {{$node[\"Set Query Values\"].json[\"Diet\"]}}, {{$node[\"Set Query Values\"].json[\"Health\"]}} {{$node[\"Set Query Values\"].json[\"SearchItem\"]}} recipes under {{$node[\"Set Query Values\"].json[\"CaloriesMax\"]}} calories ready in under {{$node[\"Set Query Values\"].json[\"TimeMax\"]}} minutes",
        "toEmail": "Enter Your Email Address Here",
        "fromEmail": "Enter Your Email Address Here"
      },
      "credentials": {
        "smtp": "Gmail Creds"
      },
      "typeVersion": 1
    },
    {
      "name": "Create Email Body in HTML",
      "type": "n8n-nodes-base.function",
      "position": [
        1460,
        400
      ],
      "parameters": {
        "functionCode": "arrRecipes = items[0].json.hits;\nitems[0].json = {};\n\nstrEmailBody = \"Here are your recipes for today:<br><ul>\";\n\narrRecipes.forEach(createHTML);\n\nfunction createHTML(value, index, array) {\n  strEmailBody = strEmailBody + \"<li><a href=\\\"\"+ value.recipe.shareAs + \"\\\">\" + value.recipe.label + \"</a></li>\";\n}\n\nstrEmailBody = strEmailBody + \"</ul>\";\n\nitems[0].json.emailBody = strEmailBody\n\nreturn items;"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {},
  "connections": {
    "Cron": {
      "main": [
        [
          {
            "node": "Search Criteria",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Counts": {
      "main": [
        [
          {
            "node": "Set Recipe ID Values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Criteria": {
      "main": [
        [
          {
            "node": "Set Query Values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Recipes": {
      "main": [
        [
          {
            "node": "Create Email Body in HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Query Values": {
      "main": [
        [
          {
            "node": "Retrieve Recipe Counts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Recipe ID Values": {
      "main": [
        [
          {
            "node": "Retrieve Recipes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Recipe Counts": {
      "main": [
        [
          {
            "node": "Set Counts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Email Body in HTML": {
      "main": [
        [
          {
            "node": "Send Recipes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n email, recettes, cuisine : pour qui est ce workflow ?

Ce workflow s'adresse aux professionnels de la cuisine, aux blogueurs culinaires et aux entreprises souhaitant automatiser l'envoi de recettes à leurs abonnés. Il est adapté aux utilisateurs ayant un niveau technique intermédiaire et peut être mis en place par des équipes de marketing ou de communication.

Workflow n8n email, recettes, cuisine : problème résolu

Ce workflow résout le problème de la gestion manuelle de l'envoi de recettes, qui peut être chronophage et peu efficace. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la planification des emails et réduisent le risque d'oublier d'envoyer des suggestions de repas. À l'issue de la mise en place de ce workflow, les utilisateurs bénéficient d'un envoi régulier et ciblé de recettes, augmentant ainsi l'engagement de leur audience.

Workflow n8n email, recettes, cuisine : étapes du workflow

Étape 1 : le déclencheur Cron active le workflow selon un calendrier défini.

  • Étape 1 : les critères de recherche sont établis via le nœud 'Search Criteria'.
  • Étape 2 : les valeurs de requête sont configurées avec le nœud 'Set Query Values'.
  • Étape 3 : le nœud 'Retrieve Recipe Counts' interroge une API pour obtenir le nombre de recettes disponibles.
  • Étape 4 : le nœud 'Retrieve Recipes' récupère les recettes basées sur les critères définis.
  • Étape 5 : les résultats sont traités et les comptes sont définis avec le nœud 'Set Counts'.
  • Étape 6 : un email est préparé avec le nœud 'Create Email Body in HTML' et envoyé grâce au nœud 'Send Recipes'.

Workflow n8n email, recettes, cuisine : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster le nœud Cron pour définir la fréquence d'envoi des emails. Modifiez les critères de recherche dans le nœud 'Search Criteria' pour cibler des types de recettes spécifiques. Vous pouvez également adapter l'URL dans les nœuds 'Retrieve Recipe Counts' et 'Retrieve Recipes' pour interroger une API différente si nécessaire. Pensez à personnaliser le contenu de l'email dans le nœud 'Create Email Body in HTML' pour refléter votre style et votre marque. Enfin, assurez-vous que les adresses email dans le nœud 'Send Recipes' sont correctes pour garantir la bonne réception des messages.