8
n8n 한국어amn8n.com

Google Sheets와 Slack을 사용한 자동 작업 알림 및 일일 요약

중급

이것은Personal Productivity, Multimodal AI분야의자동화 워크플로우로, 9개의 노드를 포함합니다.주로 If, Cron, Slack, GoogleSheets 등의 노드를 사용하며. 사용Google Sheets및Slack의자동화任务提醒与每日总结

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "f01290caa6c024522b0ed5bb2d09cea02bb113d8970b898b340ca3d74255326e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6173c474-bdf3-4066-a7f3-0d6aa59c4a96",
      "name": "Start: 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 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": "메모",
      "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
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 개인 생산성, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수9
카테고리2
노드 유형5
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
Ziad Adel

Ziad Adel

@ziadadel

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

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34