Workflow n8n

Automatisation de planification de repas avec n8n : création simplifiée

Ce workflow n8n a pour objectif de simplifier la planification de repas en automatisant la création d'un plan de repas hebdomadaire. Dans un contexte où la gestion des repas peut devenir chronophage, ce workflow est particulièrement utile pour les familles, les professionnels occupés ou toute personne souhaitant gagner du temps dans l'organisation de ses repas. En intégrant des recettes variées et en générant des éléments aléatoires, il permet de diversifier les repas tout en réduisant le stress lié à la planification. Le workflow commence par un déclencheur programmé, 'Friday 8pm', qui initie le processus chaque semaine. Ensuite, une requête HTTP est envoyée pour créer un plan de repas, suivie d'une autre requête pour récupérer des recettes. La configuration des options est ensuite effectuée pour personnaliser le flux. Un code JavaScript génère des éléments aléatoires pour enrichir le plan de repas, tandis que plusieurs notes autocollantes sont créées pour visualiser les informations importantes. En utilisant ce workflow, les utilisateurs bénéficient d'une automatisation n8n qui leur permet de gagner du temps, d'améliorer leur organisation et de profiter d'une alimentation variée sans effort supplémentaire.

Tags clés :automatisationn8nplanification de repasrecettesproductivité
Catégorie: Scheduled · Tags: automatisation, n8n, planification de repas, recettes, productivité0

Workflow n8n planification de repas, recettes, productivité : vue d'ensemble

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

Workflow n8n planification de repas, recettes, productivité : détail des nœuds

  • Friday 8pm

    Ce noeud déclenche le workflow chaque vendredi à 20h selon la règle définie.

  • Create Meal Plan

    Ce noeud envoie une requête HTTP pour créer un plan de repas en utilisant les paramètres spécifiés.

  • When clicking "Test workflow"

    Ce noeud permet de déclencher manuellement le workflow lorsque l'utilisateur clique sur le bouton 'Test workflow'.

  • Get Recipes

    Ce noeud effectue une requête HTTP pour récupérer des recettes à partir de l'URL fournie.

  • Config

    Ce noeud permet de configurer des options et des affectations pour le workflow.

  • Generate Random Items

    Ce noeud exécute un code JavaScript pour générer des éléments aléatoires.

  • Sticky Note

    Ce noeud crée une note autocollante avec les paramètres de couleur, de hauteur et de contenu spécifiés.

  • Sticky Note1

    Ce noeud crée une note autocollante avec les paramètres de couleur, de largeur, de hauteur et de contenu spécifiés.

  • Sticky Note2

    Ce noeud crée une note autocollante avec les paramètres de largeur, de hauteur et de contenu spécifiés.

  • Sticky Note3

    Ce noeud crée une note autocollante avec les paramètres de couleur, de largeur, de hauteur et de contenu spécifiés.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "id": "396bb28b-e40d-4bea-aa80-4abd04db045a",
      "name": "Friday 8pm",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        100,
        120
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                5
              ],
              "triggerAtHour": 20
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "993f0d31-5639-4cea-b2f8-d1a41ecdeb83",
      "name": "Create Meal Plan",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1080,
        120
      ],
      "parameters": {
        "url": "={{ $('Config').first().json.mealieBaseUrl }}/api/households/mealplans",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "jsonBody": "={{ $json }}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "oVwF1hVdy3Srvi9P",
          "name": "Mealie Header Auth"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "ad53512d-7246-49f4-a86b-f258b7c1c47e",
      "name": "When clicking \"Test workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        100,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c0d1d7e0-9411-4e6a-871a-0374b8a9f5db",
      "name": "Get Recipes",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        640,
        120
      ],
      "parameters": {
        "url": "={{ $json.mealieBaseUrl }}/api/recipes",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "perPage",
              "value": "100"
            },
            {
              "name": "categories",
              "value": "={{ $json.mealieCategoryId }}"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "oVwF1hVdy3Srvi9P",
          "name": "Mealie Header Auth"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "2f9757fc-77f5-4bda-ae2e-7088ea5c114d",
      "name": "Config",
      "type": "n8n-nodes-base.set",
      "position": [
        380,
        120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cd2665dd-b505-41e4-936d-cfa2de7bd09b",
              "name": "numberOfRecipes",
              "type": "number",
              "value": 5
            },
            {
              "id": "e09da5c5-3f0d-4cd3-909d-e3df2888abde",
              "name": "offsetPlanDays",
              "type": "number",
              "value": 3
            },
            {
              "id": "80e95139-83df-45ae-99a0-fc50d3e9475f",
              "name": "mealieCategoryId",
              "type": "string",
              "value": "6ec172b7-a87d-4877-8fe3-34cecc20f2c5"
            },
            {
              "id": "f511e874-c373-4648-9e49-120367474d6d",
              "name": "mealieBaseUrl",
              "type": "string",
              "value": "http://192.168.1.5:9925"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "fed805ea-0580-444d-8312-a68b25e91bbd",
      "name": "Generate Random Items",
      "type": "n8n-nodes-base.code",
      "position": [
        860,
        120
      ],
      "parameters": {
        "jsCode": "const numberOfRecipes = $('Config').first().json.numberOfRecipes;\nconst offsetPlanDays = $('Config').first().json.offsetPlanDays;\nconst items = $input.first().json.items;\n\nlet planFirstDate = new Date();\nplanFirstDate.setDate(planFirstDate.getDate() + offsetPlanDays);\n\nconst recipeList = [];\nconst randomNums = [];\nlet currentItem = 0;\n\nwhile (recipeList.length < numberOfRecipes) {\n  const randomNum = Math.floor(Math.random() * Math.floor(items.length));\n\n  if (!randomNums.includes(randomNum)) {\n    const thisRecipe = items[randomNum];\n\n    const newDate = new Date(planFirstDate);\n    newDate.setDate(planFirstDate.getDate() + currentItem);\n  \n    const planDate = [\n      newDate.getFullYear(),\n      ('0' + (newDate.getMonth() + 1)).slice(-2),\n      ('0' + newDate.getDate()).slice(-2)\n    ].join('-');\n  \n    const planDay = {\n      \"date\": planDate,\n      \"entryType\": \"dinner\",\n      \"recipeId\": thisRecipe.id,\n      \"name\": thisRecipe.name\n    };\n\n    currentItem++;\n    recipeList.push(planDay);\n    randomNums.push(randomNum);\n  }\n}\n\nreturn recipeList;"
      },
      "typeVersion": 2
    },
    {
      "id": "f440ce9d-cc27-4982-a0bd-b0ce2e5217d9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -60
      ],
      "parameters": {
        "color": 4,
        "height": 340,
        "content": "## Trigger\nSet the trigger to run when you like"
      },
      "typeVersion": 1
    },
    {
      "id": "2bac2f08-2969-4f47-9fce-0e7de416cd09",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        -60
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 340,
        "content": "## Update this Config\nSet the base Url of your Mealie instance\nSet number of recipes to generate and number of days to offset the plan (0 will start today).\nGrab a category id from Mealie (or leave blank for all categories)"
      },
      "typeVersion": 1
    },
    {
      "id": "a2850e39-c25f-4210-8f9e-a657c0c63bf5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -280
      ],
      "parameters": {
        "width": 540,
        "height": 220,
        "content": "## Get started\n* Set up a credential for your Mealie API token\n* Apply the credential to the 2 Http request nodes\n* Set schedule trigger and desired config"
      },
      "typeVersion": 1
    },
    {
      "id": "20d7301c-8946-45c3-8f5f-fbe2fc80cf37",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        -60
      ],
      "parameters": {
        "color": 7,
        "width": 660,
        "height": 340,
        "content": "## Workflow logic\n* Get all recipes from Mealie (within category if supplied)\n* Randomly pick out the number set in the config\n* Create dinner meal plans for the upcoming days"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Config": {
      "main": [
        [
          {
            "node": "Get Recipes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Friday 8pm": {
      "main": [
        [
          {
            "node": "Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Recipes": {
      "main": [
        [
          {
            "node": "Generate Random Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Random Items": {
      "main": [
        [
          {
            "node": "Create Meal Plan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Test workflow\"": {
      "main": [
        [
          {
            "node": "Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n planification de repas, recettes, productivité : pour qui est ce workflow ?

Ce workflow s'adresse aux particuliers, familles et professionnels cherchant à optimiser leur gestion des repas. Il est idéal pour ceux qui manquent de temps et souhaitent automatiser leur planification hebdomadaire. Aucun niveau technique avancé n'est requis pour sa mise en place.

Workflow n8n planification de repas, recettes, productivité : problème résolu

Ce workflow résout le problème de la planification des repas, souvent source de stress et de perte de temps. En automatisant la création d'un plan de repas et en intégrant des recettes variées, il élimine les frustrations liées à la recherche de nouvelles idées de repas. Les utilisateurs peuvent ainsi se concentrer sur d'autres tâches tout en ayant l'assurance d'une alimentation équilibrée et diversifiée.

Workflow n8n planification de repas, recettes, productivité : étapes du workflow

Étape 1 : Le workflow est déclenché chaque vendredi à 20h par le noeud 'Friday 8pm'.

  • Étape 1 : Une requête HTTP est envoyée pour créer un plan de repas via le noeud 'Create Meal Plan'.
  • Étape 2 : Le noeud 'Get Recipes' récupère des recettes à intégrer.
  • Étape 3 : La configuration des options est réalisée avec le noeud 'Config'.
  • Étape 4 : Le noeud 'Generate Random Items' génère des éléments aléatoires pour enrichir le plan.
  • Étape 5 : Plusieurs notes autocollantes sont créées pour visualiser les informations pertinentes.

Workflow n8n planification de repas, recettes, productivité : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP dans le noeud 'Create Meal Plan' pour l'adapter à votre API de gestion de repas. Vous pouvez également ajuster les paramètres dans le noeud 'Get Recipes' pour filtrer les recettes selon vos préférences alimentaires. Pensez à personnaliser le contenu des notes autocollantes pour qu'elles reflètent vos informations clés. Enfin, vous pouvez changer la fréquence de déclenchement dans le noeud 'Friday 8pm' pour l'adapter à votre emploi du temps.