Planificación de comidas semanales y adición de ingredientes a Notion (Cron + correo electrónico)

Avanzado

Este es unPersonal Productivity, Multimodal AIflujo de automatización del dominio deautomatización que contiene 20 nodos.Utiliza principalmente nodos como If, Set, Code, Cron, Notion. Generar una lista de compras semanal en Notion y enviar una notificación por correo automáticamente

Requisitos previos
  • Clave de API de Notion
  • Bot Token de Telegram
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "8UQEEzm7Vbhc46n5",
  "meta": {
    "instanceId": "8c8b20afd941aa66690830b5f1f0b9d7a4611a25b0382c8675a2fab2026ff320",
    "templateCredsSetupCompleted": true
  },
  "name": "Plan weekly meals and add groceries to Notion (Cron + Email)",
  "tags": [],
  "nodes": [
    {
      "id": "c9419408-69ff-4a74-bba7-568633b6617c",
      "name": "README – Descripción de la plantilla",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1264,
        0
      ],
      "parameters": {
        "width": 480,
        "height": 888,
        "content": "## Who's it for\nBusy homemakers, creators, and parents who want an elegant, zero-cost way to plan weekly meals.\n\n## What it does\n- Runs every Sunday at 6 PM\n- Pulls a built-in list of 7 sample recipes  \n- Adds ingredients to a **Notion database** grocery list  \n- Emails the list (or Telegram) so you’re ready for the week\n\n## How to set up\n1. Import this workflow  \n2. Add **Notion** credential → connect your **Meal Planner** database  \n3. Add **SMTP** credential (or Telegram)  \n4. Activate\n\n## Requirements\n- Free Notion account  \n- SMTP or Telegram credential (optional)  \n\n## How to customize\n- Change Cron day/time  \n- Swap the recipe list for your own  \n- Add dietary tags or portions in Notion\n\n## Change weekly time\nOpen **Cron: Weekly Meal Plan (Sun 6 PM)** and set your preferred day/time.\n_Tip:_ For testing, switch to **Every minute**, then set it back to **Every week** before activating.\n\n\n## Reliability\nThis template includes a Notion connection check and simple error notifications so failures are surfaced instantly."
      },
      "typeVersion": 1,
      "backgroundColor": "#FFF2CC"
    },
    {
      "id": "51f1ed9d-ba40-4f05-874b-fbcf3d08bb8e",
      "name": "Cron: Plan de comidas semanal (Dom 6 PM)",
      "type": "n8n-nodes-base.cron",
      "position": [
        -864,
        448
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "custom",
              "cronExpression": "0 18 * * 0"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b2e86a43-dc0a-454a-9e44-4396fd8ee13a",
      "name": "Set: Configuración",
      "type": "n8n-nodes-base.set",
      "position": [
        -640,
        448
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "recipeList",
              "value": "- 🌸 Creamy Tuscan Chicken\n- 🥗 Lemon-Garlic Shrimp Salad\n- 🍝 One-Pan Veggie Pasta\n- 🥦 Teriyaki Salmon & Rice\n- 🍕 Margherita Flatbread\n- 🍫 Dark-Choc Overnight Oats\n- 🥒 Cucumber-Lime Smoothie"
            },
            {
              "name": "emailTo",
              "value": "recipient@example.com"
            },
            {
              "name": "notionDb",
              "value": "YOUR_NOTION_DB_ID"
            },
            {
              "name": "telegramChatId"
            },
            {
              "name": "fromEmail",
              "value": "sender@example.com"
            },
            {
              "name": "notifyEmail",
              "value": "owner@example.com"
            },
            {
              "name": "notionLogDb",
              "value": "YOUR_NOTION_LOG_DB_ID"
            }
          ],
          "boolean": [
            {
              "name": "sendTelegram"
            },
            {
              "name": "logToNotion"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 2
    },
    {
      "id": "aaade1ef-c090-4c13-a0a2-f99b7b3c9efa",
      "name": "Code: Generar artículos de compras",
      "type": "n8n-nodes-base.code",
      "position": [
        -192,
        448
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f6208598-ef71-4233-8539-51d2c63162a4",
      "name": "Notion: Agregar a lista de compras",
      "type": "n8n-nodes-base.notion",
      "position": [
        32,
        448
      ],
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "databaseId": "={{ $json.notionDb}}"
      },
      "typeVersion": 2
    },
    {
      "id": "7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd",
      "name": "IF: ¿Telegram habilitado?",
      "type": "n8n-nodes-base.if",
      "position": [
        480,
        352
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.sendTelegram}}",
              "operation": "is true"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "342b2a5c-8484-4ded-816b-ca71daf29493",
      "name": "Email: Enviar lista de compras",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        256,
        328
      ],
      "webhookId": "c7d2fd33-951c-4a4f-9953-c7465edda04c",
      "parameters": {
        "text": "Hi! Here’s your elegant weekly grocery list:\n{{ $json.recipeList }}\n\nHappy cooking!",
        "options": {},
        "subject": "🛒 This Week’s Grocery List",
        "toEmail": "={{ $json.emailTo}}",
        "fromEmail": "={{ $json.fromEmail}}"
      },
      "typeVersion": 2
    },
    {
      "id": "08b75965-a564-4934-bc34-b5054b2b60d3",
      "name": "Telegram: Confirmación",
      "type": "n8n-nodes-base.telegram",
      "position": [
        704,
        352
      ],
      "webhookId": "5a46242e-398e-410e-9666-51afa569577e",
      "parameters": {
        "text": "🛒 Grocery list emailed! Happy cooking 🌸",
        "chatId": "={{ $json.telegramChatId}}",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "f9705add-d781-48e2-b181-64de111be8d3",
      "name": "Consejos de configuración",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        80
      ],
      "parameters": {
        "width": 500,
        "height": 200,
        "content": "### Quick Tune-ups\n- [ ] Add Notion credential → connect your **Meal Planner** database  \n- [ ] Add SMTP (or Telegram) credential  \n- [ ] Edit recipes or Cron time in **Set: Configuration**  \n- [ ] Test once by changing Cron to `Every minute`, then revert"
      },
      "typeVersion": 1,
      "backgroundColor": "#FFFFFF"
    },
    {
      "id": "cae9cd00-0605-4d52-9c17-380e1abe9e75",
      "name": "Notion: Validar conexión a base de datos",
      "type": "n8n-nodes-base.notion",
      "notes": "Checks access to the Notion database ID before creating pages.",
      "position": [
        -416,
        448
      ],
      "parameters": {
        "resource": "database",
        "databaseId": "={{ $json.notionDb }}"
      },
      "credentials": {
        "notionApi": {
          "id": "Gx5gB3LfWa4PIPIy",
          "name": "Notion account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
      "name": "Catch: Manejo de errores",
      "type": "n8n-nodes-base.set",
      "notes": "Receives error output from upstream nodes and forwards to error email.",
      "position": [
        704,
        544
      ],
      "parameters": {
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "3020db74-fdf7-4633-b7b6-c1e040d6bbaa",
      "name": "Email: Enviar notificación de error",
      "type": "n8n-nodes-base.emailSend",
      "notes": "Attach SMTP credentials after import.",
      "position": [
        1152,
        544
      ],
      "webhookId": "4c55e50f-ae36-449c-8f1e-496b057a7668",
      "parameters": {
        "text": "A workflow error occurred.\nNode: {{$json.errorNode}}\nMessage: {{$json.errorMessage}}\nWhen: {{$json.timestamp}}\n\n{{ $json.errorStack ? ('Stack:\\n' + $json.errorStack) : '' }}",
        "options": {},
        "subject": "❗ Meal Planner – Error in {{$json.errorNode}}",
        "toEmail": "={{ $json.notifyEmail }}",
        "fromEmail": "={{ $json.fromEmail }}"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "c854bddb-ac88-4d48-b124-40a63bf9b38e",
      "name": "Email: Enviar notificación de éxito",
      "type": "n8n-nodes-base.emailSend",
      "notes": "Optional success notice; can be disabled before submit if you prefer.",
      "position": [
        480,
        160
      ],
      "webhookId": "84c9a9a9-2a08-4947-800b-1f2fd5b26b36",
      "parameters": {
        "text": "Your weekly grocery list has been created and emailed.\nGenerated at: {{$json.generatedAtHuman}} ({{$json.generatedAt}})\n\nRecipes:\n{{$json.recipeList}}\n\nGrocery List:\n{{$json.groceryList}}",
        "options": {},
        "subject": "✅ Meal Planner – Success",
        "toEmail": "={{ $json.notifyEmail }}",
        "fromEmail": "={{ $json.fromEmail }}"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "2af14a15-4442-47e9-8c4b-0a485d3b1a39",
      "name": "Log: Ejecución del flujo de trabajo",
      "type": "n8n-nodes-base.set",
      "notes": "Placeholder logger. Replace with Notion/Sheets if you want persistent logs.",
      "position": [
        -720,
        -96
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "status",
              "value": "success"
            },
            {
              "name": "timestamp",
              "value": "={{ (new Date()).toISOString() }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d",
      "name": "Format: Carga útil de error",
      "type": "n8n-nodes-base.code",
      "notes": "Normalizes error details for notifications and logging.",
      "position": [
        928,
        544
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "25aacfc2-14ce-4825-b286-2bb96852c2f9",
      "name": "IF: ¿Telegram habilitado (Error)?",
      "type": "n8n-nodes-base.if",
      "position": [
        1152,
        736
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.sendTelegram }}",
              "operation": "is true"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b2afc239-0a18-43b6-be34-62500a5da118",
      "name": "Telegram: Notificación de error",
      "type": "n8n-nodes-base.telegram",
      "notes": "Optional Telegram error alert.",
      "position": [
        1376,
        736
      ],
      "webhookId": "04f74ba6-dfc8-4c56-96c1-02438dcf85bc",
      "parameters": {
        "text": "⚠️ Meal Planner error in {{$json.errorNode}}:\\n{{$json.errorMessage}}\\n{{$json.timestamp}}",
        "chatId": "={{ $json.telegramChatId }}",
        "additionalFields": {}
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "fa604269-843c-4a91-9771-66d852c01e2e",
      "name": "IF: ¿Registrar en Notion?",
      "type": "n8n-nodes-base.if",
      "position": [
        704,
        160
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.logToNotion }}",
              "operation": "is true"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "86f13624-de11-4f3e-9c34-14a82029767c",
      "name": "Notion: Agregar entrada de registro (Éxito)",
      "type": "n8n-nodes-base.notion",
      "notes": "Optional persistent logging to Notion.",
      "position": [
        928,
        160
      ],
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "databaseId": "={{ $json.notionLogDb }}"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "57e2a84d-1d70-4260-b712-452791ad9de3",
      "name": "Notion: Agregar entrada de registro (Error)",
      "type": "n8n-nodes-base.notion",
      "position": [
        1152,
        352
      ],
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "databaseId": "={{ $json.notionLogDb }}"
      },
      "notesInFlow": true,
      "typeVersion": 2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c1b0c323-3026-4acb-96be-4a6d3c332c36",
  "connections": {
    "fa604269-843c-4a91-9771-66d852c01e2e": {
      "main": [
        [
          {
            "node": "86f13624-de11-4f3e-9c34-14a82029767c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b2e86a43-dc0a-454a-9e44-4396fd8ee13a": {
      "main": [
        [
          {
            "node": "cae9cd00-0605-4d52-9c17-380e1abe9e75",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce": {
      "main": [
        [
          {
            "node": "0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d": {
      "main": [
        [
          {
            "node": "3020db74-fdf7-4633-b7b6-c1e040d6bbaa",
            "type": "main",
            "index": 0
          },
          {
            "node": "25aacfc2-14ce-4825-b286-2bb96852c2f9",
            "type": "main",
            "index": 0
          },
          {
            "node": "57e2a84d-1d70-4260-b712-452791ad9de3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd": {
      "main": [
        [
          {
            "node": "08b75965-a564-4934-bc34-b5054b2b60d3",
            "type": "main",
            "index": 0
          },
          {
            "node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "342b2a5c-8484-4ded-816b-ca71daf29493": {
      "main": [
        [
          {
            "node": "7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd",
            "type": "main",
            "index": 0
          },
          {
            "node": "c854bddb-ac88-4d48-b124-40a63bf9b38e",
            "type": "main",
            "index": 0
          },
          {
            "node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6208598-ef71-4233-8539-51d2c63162a4": {
      "main": [
        [
          {
            "node": "342b2a5c-8484-4ded-816b-ca71daf29493",
            "type": "main",
            "index": 0
          },
          {
            "node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aaade1ef-c090-4c13-a0a2-f99b7b3c9efa": {
      "main": [
        [
          {
            "node": "f6208598-ef71-4233-8539-51d2c63162a4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "25aacfc2-14ce-4825-b286-2bb96852c2f9": {
      "main": [
        [
          {
            "node": "b2afc239-0a18-43b6-be34-62500a5da118",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c854bddb-ac88-4d48-b124-40a63bf9b38e": {
      "main": [
        [
          {
            "node": "fa604269-843c-4a91-9771-66d852c01e2e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "51f1ed9d-ba40-4f05-874b-fbcf3d08bb8e": {
      "main": [
        [
          {
            "node": "b2e86a43-dc0a-454a-9e44-4396fd8ee13a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cae9cd00-0605-4d52-9c17-380e1abe9e75": {
      "main": [
        [
          {
            "node": "aaade1ef-c090-4c13-a0a2-f99b7b3c9efa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Productividad personal, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos20
Categoría2
Tipos de nodos8
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34