Recordatorio automático de tareas y resumen diario usando Google Sheets y Slack

Intermedio

Este es unPersonal Productivity, Multimodal AIflujo de automatización del dominio deautomatización que contiene 9 nodos.Utiliza principalmente nodos como If, Cron, Slack, GoogleSheets. Recordatorios automáticos de tareas y resumen diario con Google Sheets y Slack

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Credenciales de API de Google Sheets
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
{
  "meta": {
    "instanceId": "f01290caa6c024522b0ed5bb2d09cea02bb113d8970b898b340ca3d74255326e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6173c474-bdf3-4066-a7f3-0d6aa59c4a96",
      "name": "Start: Tarea Cron Trigger",
      "type": "n8n-nodes-base.cron",
      "notes": "Runs every 15 minutes to check tasks in Google Sheets.",
      "position": [
        -288,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ad92e170-65ed-41a3-909d-063c1d02bdd7",
      "name": "Fetch Tasks from Hojas de Google",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Reads all tasks from the `Tasks` sheet.",
      "position": [
        -32,
        176
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ SHEET_TAB }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{{GOOGLE_SHEET_WORKSHEET}}}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GOOGLE_SHEET_ID",
          "name": "YOUR_GOOGLE_SHEET_ACCOUNT"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "126d822b-85b2-4c5c-87e1-6d759d9bf2b8",
      "name": "Check Task Deadlines",
      "type": "n8n-nodes-base.if",
      "notes": "Checks if task is due within the next 30 minutes.",
      "position": [
        224,
        176
      ],
      "parameters": {
        "conditions": {
          "dateTime": [
            {
              "value1": "={{$json[\"Due Date\"]}}",
              "value2": "={{$now.plus({ minutes: 30 }).format('yyyy-MM-dd hh:mm')}}",
              "operation": "before"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a958536-cb0a-4a01-a1e0-4253a474c2b1",
      "name": "Update Last Reminder Sent",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Updates the `Last Reminder Sent` column in Sheets to avoid duplicate reminders.",
      "position": [
        464,
        272
      ],
      "parameters": {
        "options": {},
        "fieldsUi": {
          "values": [
            {
              "column": "Last Reminder Sent",
              "fieldValue": "={{ $now.format('yyyy-MM-dd HH:mm') }}"
            }
          ]
        },
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEET_ID}}/edit#gid=0",
          "cachedResultName": "Tasks"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{GID}}"
        },
        "valueToMatchOn": "={{ $json[\"Task ID\"] }}",
        "columnToMatchOn": "Task ID"
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GOOGLE_SHEET_ID",
          "name": "YOUR_GOOGLE_SHEET_ACCOUNT"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "c43df2f4-ec79-4b57-ac57-30ca2d822cfe",
      "name": "Daily Recap Trigger",
      "type": "n8n-nodes-base.cron",
      "notes": "Triggers daily recap at 6 PM.",
      "position": [
        -288,
        480
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0171cb17-54c7-4dd4-8243-ed97a9237bd4",
      "name": "Fetch Completed Tasks",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Reads all tasks for recap.",
      "position": [
        -64,
        480
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEET_ID}}/edit#gid=0",
          "cachedResultName": "Tasks"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "17vTZDnZ_37_xlgs-RB_ekIhLi_c-2rpXOI5BaomD0k8",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{GOOGLE_SHEET_ID}}/edit?usp=drivesdk",
          "cachedResultName": "Productivity & Time Tracking Sheet"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GOOGLE_SHEET_ID",
          "name": "YOUR_GOOGLE_SHEET_ACCOUNT"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "f852d299-3f23-4755-aaa6-e16745925160",
      "name": "Send a Slack Reminder",
      "type": "n8n-nodes-base.slack",
      "position": [
        464,
        96
      ],
      "webhookId": "f775ed72-9f3a-4ffc-bdfc-ba464037cdb1",
      "parameters": {
        "text": "=⚡ Reminder: Task *{{$json[\"Task Name\"]}}* is due at {{$json[\"Due Date\"]}}.|Reason: {{$json[\"Why it matters\"]}}",
        "select": "channel",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "SLACK_ID",
          "name": "YOUR_SLACK"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "55101bb4-a1ec-490b-b3f6-a5969e4512c0",
      "name": "Send a Slack Reminder1",
      "type": "n8n-nodes-base.slack",
      "position": [
        160,
        480
      ],
      "webhookId": "f775ed72-9f3a-4ffc-bdfc-ba464037cdb1",
      "parameters": {
        "text": "=📊 Daily Recap:\nCompleted tasks today: {{ ($json[\"Status\"] || \"\").match(/Completed/g)?.length || 0 }}\nPending tasks: {{ ($json[\"Status\"] || \"\").match(/In Progress|Not Started/g)?.length || 0 }}",
        "select": "channel",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "SLACK_ID",
          "name": "YOUR_SLACK"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "7ab80956-b706-428d-b152-26cc9738eddd",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1392,
        -304
      ],
      "parameters": {
        "width": 960,
        "height": 1504,
        "content": "# 📝 Rize Lite – Google Sheets + Slack Productivity Tracker\n\n## ⚙️ Workflow Setup\n\n### Google Sheets\n1. Create a Google Sheet with two tabs:\n   - **Tasks** (main tracker)\n     | Task ID | Task Name | Assigned To | Start Time | End Time | Duration (mins) | Due Date | Status | Last Reminder Sent | Why it matters |\n   - **Reflections** (optional daily logs)\n     | Date | Productivity Score | Focus Rating (1–10) | Completed Tasks | Overdue Tasks | Notes |\n\n2. Fill in tasks with:\n   - `Task ID`: unique identifier (e.g., 1, 2, 3…).\n   - `Due Date`: in `yyyy-MM-dd HH:mm` format.\n   - `Status`: `Not Started`, `In Progress`, or `Completed`.\n   - `Why it matters`: short motivation/goal behind the task.\n\n### Slack\n- Connect your Slack workspace to n8n.\n- Set the target channel where reminders and recaps will be sent.\n- Replace `{{SLACK_CHANNEL}}` with your channel name or ID.\n\n### n8n Workflow\n- **Start: Cron Trigger** → runs every 15 minutes to check upcoming tasks.\n- **Fetch Tasks from Google Sheets** → pulls tasks list from the `Tasks` sheet.\n- **Check Task Deadlines (IF Node)** → identifies tasks due in the next 30 minutes.\n- **Send a Slack Reminder** → posts reminders with task name, due date, and reason.\n- **Update Last Reminder Sent** → stamps the timestamp to avoid duplicate pings.\n- **Daily Recap Trigger (Cron)** → runs daily at 6 PM.\n- **Fetch Completed Tasks** → pulls updated tasks from the sheet.\n- **Send Daily Recap (Slack)** → posts a daily summary with completed vs pending tasks.\n\n---\n\n## ✅ Benefits\n\n- **Zero-Cost Productivity System**  \n  Replaces paid tools like Rize using only free tools (Sheets + Slack + n8n).\n\n- **Simple Setup, Powerful Results**  \n  Google Sheets acts as the database, while Slack is the notification interface.\n\n- **Stay on Track**  \n  Automated reminders prevent missed deadlines and encourage task focus.\n\n- **Accountability**  \n  Daily recaps summarize progress, making it easier to reflect and improve.\n\n- **Customizable**  \n  Add weekly reviews, focus scores, or AI summaries without changing core logic.\n\n- **Team-Friendly**  \n  Expand to multiple users: each task assigned to a person can send them reminders individually.\n\n---\n\n## 📌 Use Cases\n\n- **Solo Productivity** → Stay consistent, track tasks, and build focus habits.  \n- **Team Task Tracking** → Assign tasks in Google Sheets, reminders go to Slack channels.  \n- **Project Management Lite** → No heavy SaaS tools, just Sheets + Slack automation.  \n- **Self-Reflection & Growth** → Daily logs show trends, strengths, and areas for improvement.  \n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "c43df2f4-ec79-4b57-ac57-30ca2d822cfe": {
      "main": [
        [
          {
            "node": "0171cb17-54c7-4dd4-8243-ed97a9237bd4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start: Cron Trigger": {
      "main": [
        [
          {
            "node": "Fetch Tasks from Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "126d822b-85b2-4c5c-87e1-6d759d9bf2b8": {
      "main": [
        [
          {
            "node": "f852d299-3f23-4755-aaa6-e16745925160",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2a958536-cb0a-4a01-a1e0-4253a474c2b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0171cb17-54c7-4dd4-8243-ed97a9237bd4": {
      "main": [
        [
          {
            "node": "55101bb4-a1ec-490b-b3f6-a5969e4512c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Tasks from Google Sheets": {
      "main": [
        [
          {
            "node": "126d822b-85b2-4c5c-87e1-6d759d9bf2b8",
            "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?

Intermedio - 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
Intermedio
Número de nodos9
Categoría2
Tipos de nodos5
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Ziad Adel

Ziad Adel

@ziadadel

AI Automation Growth Partner with 5 years of experience in the tech and hyper growing startups industry

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34