8
n8n 한국어amn8n.com

Todoist에서 자동으로 매일 할 일 목록을 생성합니다.

중급

이것은Other분야의자동화 워크플로우로, 13개의 노드를 포함합니다.주로 If, Code, Filter, Todoist, ScheduleTrigger 등의 노드를 사용하며. Todoist에서 자동으로 매일 할 일 목록을 생성합니다.

사전 요구사항
  • 특별한 사전 요구사항 없이 가져와 바로 사용 가능합니다

카테고리

워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "nodes": [
    {
      "id": "d49ee203-5bd1-45c0-859d-f1b248bfdf71",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        40
      ],
      "parameters": {
        "color": 5,
        "width": 424.4907862645661,
        "height": 154.7766688696994,
        "content": "### 👨‍🎤 Setup\n1. Add Todoist creds\n2. Create a `template` list to copy from in Todoist. Add days and due times on each task as necessary.\n3. Set the projects to copy from and to write to in each **Todoist** node"
      },
      "typeVersion": 1
    },
    {
      "id": "e69dd4e2-7ff6-4613-a1c9-ac1f3da37955",
      "name": "템플릿 프로젝트에서 모든 작업 가져오기",
      "type": "n8n-nodes-base.todoist",
      "position": [
        860,
        420
      ],
      "parameters": {
        "filters": {
          "projectId": "2299363018"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "todoistApi": {
          "id": "1",
          "name": "Todoist account"
        }
      },
      "executeOnce": true,
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "fa907d45-3822-4549-9f84-8385bb4183cc",
      "name": "작업 세부 정보 파싱",
      "type": "n8n-nodes-base.code",
      "position": [
        1080,
        420
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const item = {};\n\nitem.description = $input.item.json.description;\nitem.content = $input.item.json.content;\n\nconst parts = item.description.split(';').map((v) => v.trim());\nparts.forEach((v) => {\n  const tag = v.split(':');\n  if (tag && tag.length === 2) {\n    item[tag[0]] = tag[1].trim();\n  }\n});\n\nif (item.due) {\n  item.due = parseTimeString(item.due);\n}\n\nreturn item;\n\nfunction parseTimeString(timeString) {\n    const regex = /^(\\d{1,2})(\\.)?(\\d{2})?([ap]m)$/i;\n    const match = timeString.match(regex);\n    \n    if (!match) {\n        throw new Error(\"Invalid time format\");\n    }\n\n    let hours = parseInt(match[1], 10);\n    let minutes = match[3] ? parseInt(match[3], 10) : 0;\n    const period = match[4].toLowerCase();\n\n    if (hours === 12) {\n        hours = period === 'am' ? 0 : 12;\n    } else {\n        hours = period === 'pm' ? hours + 12 : hours;\n    }\n\n    // Check if minutes are valid\n    if (minutes < 0 || minutes >= 60) {\n        throw new Error(\"Invalid minutes\");\n    }\n\n    const now = DateTime.now().set({ hour: hours, minute: minutes, second: 0, millisecond: 0 });\n    return now.toUTC();\n}\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4989bac6-0741-4cdc-bc9c-e7800f9b3019",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        600
      ],
      "parameters": {
        "color": 7,
        "width": 351.4230769230764,
        "height": 222.50000000000006,
        "content": "### 👆 This adds due dates to tasks from description.. \n### For example in the description of a task\n`days:mon,tues; due:8am`\n### So that it will create a task every Monday and Tuesday that's due at 8am ⏰"
      },
      "typeVersion": 1
    },
    {
      "id": "accc330b-1b67-4181-8735-94b0debc8d70",
      "name": "오늘과 일치하는 작업 유지",
      "type": "n8n-nodes-base.filter",
      "position": [
        1300,
        420
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.days }}",
              "value2": "={{ ['sun', 'mon', 'tues', 'wed', 'thurs', 'fri', 'sat', 'sun'][new Date().getDay()] }}",
              "operation": "contains"
            },
            {
              "value1": "={{ $json.days }}",
              "value2": "={{ ['sun', 'mon', 'tues', 'wed', 'thurs', 'fri', 'sat', 'sun'][new Date().getDay()] }}",
              "operation": "contains"
            }
          ]
        },
        "combineConditions": "OR"
      },
      "typeVersion": 1
    },
    {
      "id": "dbe1fc24-1833-493b-b444-de21a4b3c3c5",
      "name": "매일 오전 5:10",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        620,
        420
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 5,
              "triggerAtMinute": 10
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b4737822-89aa-4ca0-bd9b-c5f9a16360c0",
      "name": "매일 오전 5시",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        400,
        220
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 5,
              "triggerAtMinute": 10
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2a9adc4b-552b-47a9-a32c-54d8d4bfb669",
      "name": "인박스에서 모든 작업 가져오기",
      "type": "n8n-nodes-base.todoist",
      "position": [
        620,
        220
      ],
      "parameters": {
        "filters": {
          "projectId": "938017196"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "todoistApi": {
          "id": "1",
          "name": "Todoist account"
        }
      },
      "executeOnce": false,
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "d4794543-3002-4663-8979-360eb437fb4e",
      "name": "목록이 비어 있지 않은 경우",
      "type": "n8n-nodes-base.if",
      "position": [
        840,
        220
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json[\"id\"] }}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "297fcbcb-efe3-4965-b836-34e78a3b452d",
      "name": "일간 라벨이 있는 경우",
      "type": "n8n-nodes-base.if",
      "position": [
        1080,
        220
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ ($json[\"labels\"] || []).includes('daily') }}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0365a865-f03b-4afc-a535-4e3892fc3add",
      "name": "작업 삭제",
      "type": "n8n-nodes-base.todoist",
      "position": [
        1280,
        220
      ],
      "parameters": {
        "taskId": "={{ $json[\"id\"] }}",
        "operation": "delete"
      },
      "credentials": {
        "todoistApi": {
          "id": "1",
          "name": "Todoist account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "b14a8ecc-ee07-4a33-ab4b-122c98694c60",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        440
      ],
      "parameters": {
        "color": 7,
        "width": 256.14371825927645,
        "height": 100,
        "content": "### 👈🏽 Every new task has `daily` label that gets deleted in the other flow"
      },
      "typeVersion": 1
    },
    {
      "id": "d951f461-685e-4507-b010-bce2be0e3709",
      "name": "인박스에 새 작업 생성",
      "type": "n8n-nodes-base.todoist",
      "position": [
        1520,
        420
      ],
      "parameters": {
        "labels": [
          "daily"
        ],
        "content": "={{ $json.content }}",
        "options": {
          "description": "={{ $json.description }}",
          "dueDateTime": "={{ $json.due }}"
        },
        "project": {
          "__rl": true,
          "mode": "list",
          "value": "938017196",
          "cachedResultName": "Inbox"
        }
      },
      "credentials": {
        "todoistApi": {
          "id": "1",
          "name": "Todoist account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "alwaysOutputData": false
    }
  ],
  "pinData": {},
  "connections": {
    "b4737822-89aa-4ca0-bd9b-c5f9a16360c0": {
      "main": [
        [
          {
            "node": "2a9adc4b-552b-47a9-a32c-54d8d4bfb669",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d4794543-3002-4663-8979-360eb437fb4e": {
      "main": [
        [
          {
            "node": "297fcbcb-efe3-4965-b836-34e78a3b452d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fa907d45-3822-4549-9f84-8385bb4183cc": {
      "main": [
        [
          {
            "node": "accc330b-1b67-4181-8735-94b0debc8d70",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dbe1fc24-1833-493b-b444-de21a4b3c3c5": {
      "main": [
        [
          {
            "node": "e69dd4e2-7ff6-4613-a1c9-ac1f3da37955",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "297fcbcb-efe3-4965-b836-34e78a3b452d": {
      "main": [
        [
          {
            "node": "0365a865-f03b-4afc-a535-4e3892fc3add",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a9adc4b-552b-47a9-a32c-54d8d4bfb669": {
      "main": [
        [
          {
            "node": "d4794543-3002-4663-8979-360eb437fb4e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "accc330b-1b67-4181-8735-94b0debc8d70": {
      "main": [
        [
          {
            "node": "d951f461-685e-4507-b010-bce2be0e3709",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e69dd4e2-7ff6-4613-a1c9-ac1f3da37955": {
      "main": [
        [
          {
            "node": "fa907d45-3822-4549-9f84-8385bb4183cc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

중급 - 기타

유료인가요?

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

워크플로우 정보
난이도
중급
노드 수13
카테고리1
노드 유형6
난이도 설명

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

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34