8
n8n ํ•œ๊ตญ์–ดamn8n.com

๐Ÿงน Notion ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ(์‚ญ์ œ) ์ค‘๋ณต ํ•ญ๋ชฉ์„ ์•„์นด์ด๋ธŒ(๋ณด๊ด€)ํ•˜๊ธฐ

์ค‘๊ธ‰

์ด๊ฒƒ์€IT Ops๋ถ„์•ผ์˜์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ๋กœ, 11๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.์ฃผ๋กœ Set, Code, Notion, Aggregate, NotionTrigger ๋“ฑ์˜ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ. ๐Ÿงน Notion ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ(์‚ญ์ œ) ์ค‘๋ณต ํ•ญ๋ชฉ์„ ์•„์นด์ด๋ธŒ(๋ณด๊ด€)ํ•˜์„ธ์š”

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
  • โ€ขNotion API Key

์‚ฌ์šฉ๋œ ๋…ธ๋“œ (11)

์นดํ…Œ๊ณ ๋ฆฌ

์›Œํฌํ”Œ๋กœ์šฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
๋…ธ๋“œ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, ํ™•๋Œ€/์ถ•์†Œ ๋ฐ ์ด๋™์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค
์›Œํฌํ”Œ๋กœ์šฐ ๋‚ด๋ณด๋‚ด๊ธฐ
๋‹ค์Œ JSON ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ•˜์—ฌ n8n์— ๊ฐ€์ ธ์˜ค๋ฉด ์ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
{
  "id": "As8TxF3PjyXygc0o",
  "meta": {
    "instanceId": "a059b3dfdab56aa587cc6a2c8635f6f2700cf0c7064dbfb5981c26f7ad9eab88"
  },
  "name": "๐Ÿงน Archive (delete) duplicate items from a Notion database",
  "tags": [],
  "nodes": [
    {
      "id": "b758ce01-7f5e-4bdc-a4c3-6c00d6bc022a",
      "name": "๋งค์ผ",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -180,
        660
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1ca45ba5-4635-4710-9807-26f22d535059",
      "name": "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŽ˜์ด์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ",
      "type": "n8n-nodes-base.notion",
      "position": [
        60,
        560
      ],
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ef8c8cfa-12fb-4fb9-8552-09f69f1f358d",
      "name": "๋ชจ๋“  ํ•ญ๋ชฉ ์ง‘๊ณ„",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        500,
        560
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "pages"
      },
      "typeVersion": 1
    },
    {
      "id": "f1c3c0ad-f904-4d63-a131-0b045a21ce04",
      "name": "ํ•ญ๋ชฉ ์ ์ ˆํžˆ ํฌ๋งทํŒ…",
      "type": "n8n-nodes-base.set",
      "position": [
        280,
        560
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "309a1e9b-f3e9-41a0-aadb-aa74bc993fe9",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "ad6e8fa9-9872-456d-971f-3cef940b7d8a",
              "name": "property_to_check",
              "type": "string",
              "value": "=\"SET YOUR PROPERTY HERE\""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5d39d3b7-604d-4aca-bf9a-3bb09bddad66",
      "name": "์ค‘๋ณต ํ•ญ๋ชฉ ํ•„ํ„ฐ๋ง",
      "type": "n8n-nodes-base.code",
      "position": [
        720,
        560
      ],
      "parameters": {
        "jsCode": "const inputData = $input.first().json.pages;\n\nconst seen = new Set();\nconst duplicates = new Map();\n\ninputData.forEach(item => {\n  const propertyValue = item.property_to_check;\n  if (seen.has(propertyValue)) {\n    duplicates.set(propertyValue, item);\n  } else {\n    seen.add(propertyValue);\n  }\n});\n\nconst output = Array.from(duplicates.values()).map(item => ({ json: item }));\n\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "55a8f0eb-702b-4056-a28c-96a7ade7c2cd",
      "name": "ํŽ˜์ด์ง€ ์•„์นด์ด๋น™",
      "type": "n8n-nodes-base.notion",
      "position": [
        920,
        560
      ],
      "parameters": {
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "operation": "archive"
      },
      "typeVersion": 2.2
    },
    {
      "id": "2c9655ea-401c-410b-a4b1-b001ae6dbe4b",
      "name": "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŽ˜์ด์ง€ ์ถ”๊ฐ€ ์‹œ",
      "type": "n8n-nodes-base.notionTrigger",
      "position": [
        -180,
        460
      ],
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 1
    },
    {
      "id": "672b647c-d009-45c3-b69e-6dfe85992e15",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 860,
        "height": 460,
        "content": "## ๐Ÿงน Archive (delete) extra duplicate items from Notion database\n### ABOUT THIS WORKFLOW\nThis n8n workflow automatically gets duplicate database pages based on a property and \"archives\" them (equivalent to deleting them), leaving just one copy.\n\n### SETUP\n1. Create a Notion credential.\n2. Add it to the Notion nodes, selecting the appropriate database.\n3. In the \"Set\" node (\"Format items properly\"), specify a reference to the property you want to check for duplicates and assign it to the field \"property_to_check\". I recommend using the n8n property drag-and-drop feature.\n4. Enjoy!\n\n### ABOUT THE TRIGGERS\nThis workflow offers two possible triggers by default:\n- Run every time a page is added to the database.\n- Run every day.\n\n\nYou can enable, disable, or modify these triggers as you like."
      },
      "typeVersion": 1
    },
    {
      "id": "83881bd3-60e3-40be-a469-0b7acb21d2be",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        400
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 420,
        "content": "## TRIGGERS"
      },
      "typeVersion": 1
    },
    {
      "id": "cd4b8717-19ae-42d6-ac87-bbdd071dd774",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        480
      ],
      "parameters": {
        "color": 6,
        "width": 860,
        "height": 340,
        "content": "## GET DUPLICATE PAGES"
      },
      "typeVersion": 1
    },
    {
      "id": "087fb844-2241-4ed9-976d-9bdc7ccd8aa5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        400
      ],
      "parameters": {
        "color": 3,
        "width": 180,
        "height": 420,
        "content": "## ARCHIVE (DELETE)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "fdd2e5ad-4ff5-4432-a5f9-ebbeb1a1a6cb",
  "connections": {
    "b758ce01-7f5e-4bdc-a4c3-6c00d6bc022a": {
      "main": [
        [
          {
            "node": "1ca45ba5-4635-4710-9807-26f22d535059",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5d39d3b7-604d-4aca-bf9a-3bb09bddad66": {
      "main": [
        [
          {
            "node": "55a8f0eb-702b-4056-a28c-96a7ade7c2cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef8c8cfa-12fb-4fb9-8552-09f69f1f358d": {
      "main": [
        [
          {
            "node": "5d39d3b7-604d-4aca-bf9a-3bb09bddad66",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f1c3c0ad-f904-4d63-a131-0b045a21ce04": {
      "main": [
        [
          {
            "node": "ef8c8cfa-12fb-4fb9-8552-09f69f1f358d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ca45ba5-4635-4710-9807-26f22d535059": {
      "main": [
        [
          {
            "node": "f1c3c0ad-f904-4d63-a131-0b045a21ce04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c9655ea-401c-410b-a4b1-b001ae6dbe4b": {
      "main": [
        [
          {
            "node": "1ca45ba5-4635-4710-9807-26f22d535059",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

์œ„์˜ JSON ๊ตฌ์„ฑ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ n8n ์ธ์Šคํ„ด์Šค์—์„œ ์ƒˆ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  "JSON์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ"๋ฅผ ์„ ํƒํ•œ ํ›„, ๊ตฌ์„ฑ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ธ์ฆ ์„ค์ •์„ ์ˆ˜์ •ํ•˜์„ธ์š”.

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์–ด๋–ค ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•œ๊ฐ€์š”?

์ค‘๊ธ‰ - IT ์šด์˜

์œ ๋ฃŒ์ธ๊ฐ€์š”?

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์™„์ „ํžˆ ๋ฌด๋ฃŒ์ด๋ฉฐ ์ง์ ‘ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์‚ฌ ์„œ๋น„์Šค(์˜ˆ: OpenAI API)๋Š” ์‚ฌ์šฉ์ž ์ง์ ‘ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์›Œํฌํ”Œ๋กœ์šฐ ์ถ”์ฒœ

RSS AI ์š”์•ฝ๊ธฐ
AI๋ฅผ ์‚ฌ์šฉํ•œ RSS ์ฝ˜ํ…์ธ  ์ž๋™ํ™”: ์š”์•ฝ, ์•Œ๋ฆผ ๋ฐ ์•„์นด์ด๋น™
Set
Code
Wait
+
Set
Code
Wait
20 ๋…ธ๋“œVictor
์ธ๊ณต์ง€๋Šฅ
๋ธ”๋กœ๊ทธ WordPress ๋ณต์ œ ํŒ๋งค
GPT-4, Perplexity AI ๋ฐ WordPress๋ฅผ ์‚ฌ์šฉํ•œ SEO ๋ธ”๋กœ๊ทธ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ์ž๋™ํ™”
Set
Code
Notion
+
Set
Code
Notion
39 ๋…ธ๋“œLukaszB
์ธ๊ณต์ง€๋Šฅ
์ž๋™ํ™” ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๋ฐ ์†Œ์…œ ๋ฏธ๋””์–ด ํ”„๋กœ๋ชจ์…˜ ์—์ด์ „ํŠธ
GPT-4, Perplexity ๋ฐ WordPress๋ฅผ ์‚ฌ์šฉํ•œ SEO ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ + ์†Œ์…œ ๋ฏธ๋””์–ด ์ž๋™ํ™”
Set
Code
Gmail
+
Set
Code
Gmail
79 ๋…ธ๋“œLukaszB
๋””์ž์ธ
WordPress์šฉ AI ๋ธ”๋กœ๊ทธ ์ฝ˜ํ…์ธ  ์ž‘์„ฑ๊ธฐ ๋ฐ ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ธฐ
GPT Image 1 ๋ฐ Perplexity ๊ธฐ๋ฐ˜ WordPress ์ž๋™ํ™”๋œ ๋ธ”๋กœ๊ทธ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ๊ธฐ
Set
Code
Notion
+
Set
Code
Notion
41 ๋…ธ๋“œLukaszB
์ธ๊ณต์ง€๋Šฅ
Gemini, Slack, Notion์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‰ด์Šค ์š”์•ฝ์—์„œ AI ์ •๋ณด ์š”์•ฝ์„ ์ƒ์„ฑ
Gemini, Slack, ๋ฐ Notion์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘์—์„œ AI ์ •๋ณด ์š”์•ฝ์„ ์ƒ์„ฑ
Set
Code
Gmail
+
Set
Code
Gmail
19 ๋…ธ๋“œHarry Siggins
๊ธฐํƒ€
AI ๊ธฐ๋ฐ˜ Nextcloud ๋ฌธ์„œ ์ฑ„ํŒ… ์‹œ์Šคํ…œ, LangChain ๋ฐ OpenAI ์‚ฌ์šฉ
AI ๊ธฐ๋ฐ˜ Nextcloud ๋ฌธ์„œ ์ฑ„ํŒ… ์‹œ์Šคํ…œ, LangChain ๋ฐ OpenAI ์‚ฌ์šฉ
If
Set
Code
+
If
Set
Code
21 ๋…ธ๋“œjohappel
์ธ๊ณต์ง€๋Šฅ
์›Œํฌํ”Œ๋กœ์šฐ ์ •๋ณด
๋‚œ์ด๋„
์ค‘๊ธ‰
๋…ธ๋“œ ์ˆ˜11
์นดํ…Œ๊ณ ๋ฆฌ1
๋…ธ๋“œ ์œ ํ˜•7
๋‚œ์ด๋„ ์„ค๋ช…

์ผ์ • ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ 6-15๊ฐœ ๋…ธ๋“œ์˜ ์ค‘๊ฐ„ ๋ณต์žก๋„ ์›Œํฌํ”Œ๋กœ์šฐ

์ €์ž
Lucรญa Maio Brioso

Lucรญa Maio Brioso

@luciamb

I'm a backend software developer who loves n8n โš™๏ธ I enjoy automating everything and share templates I personally find helpful ๐Ÿ’ก

์™ธ๋ถ€ ๋งํฌ
n8n.io์—์„œ ๋ณด๊ธฐ โ†’

์ด ์›Œํฌํ”Œ๋กœ์šฐ ๊ณต์œ 

์นดํ…Œ๊ณ ๋ฆฌ

์นดํ…Œ๊ณ ๋ฆฌ: 34