{
  "name": "[IT] \ub124\uc774\ubc84 \ub274\uc2a4 \ubaa8\ub2c8\ud130\ub9c1 - \uc2a4\ucf00\uc904",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9,13,18 * * 1-5"
            }
          ]
        }
      },
      "id": "schedule-trigger-node",
      "name": "\uc5c5\ubb34\uc2dc\uac04 \ub274\uc2a4 \uccb4\ud06c",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "https://openapi.naver.com/v1/search/news.json",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Naver-Client-Id",
              "value": "={{ $env.NAVER_CLIENT_ID }}"
            },
            {
              "name": "X-Naver-Client-Secret",
              "value": "={{ $env.NAVER_CLIENT_SECRET }}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "n8n \uc790\ub3d9\ud654"
            },
            {
              "name": "display",
              "value": "10"
            },
            {
              "name": "sort",
              "value": "date"
            }
          ]
        },
        "options": {}
      },
      "id": "naver-search-node",
      "name": "\ub124\uc774\ubc84 \ub274\uc2a4 \uac80\uc0c9",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        450,
        300
      ]
    },
    {
      "parameters": {
        "mode": "runOnceForAllItems",
        "jsCode": "const response = $input.first().json;\nconst items = response.items || [];\n\nif (items.length === 0) {\n  return [{ json: { hasNews: false, newsCount: 0, formattedNews: '' } }];\n}\n\nconst formatted = items.map((item, i) => {\n  const title = item.title.replace(/<[^>]*>/g, '').replace(/&quot;/g, '\"').replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>');\n  const desc = item.description.replace(/<[^>]*>/g, '').replace(/&quot;/g, '\"').replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>');\n  return `${i + 1}. *${title}*\\n   ${desc}\\n   ${item.link}`;\n}).join('\\n\\n');\n\nreturn [{ json: { hasNews: true, newsCount: items.length, formattedNews: formatted } }];"
      },
      "id": "code-format-node",
      "name": "\ub274\uc2a4 \uc815\ub9ac",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        650,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": ""
          },
          "conditions": [
            {
              "id": "1",
              "leftValue": "={{ $json.hasNews }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "true"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "if-has-news",
      "name": "\ub274\uc2a4 \uc788\ub294\uc9c0?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        850,
        300
      ]
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C_YOUR_CHANNEL_ID",
          "mode": "id"
        },
        "text": "=:newspaper: *\ub124\uc774\ubc84 \ub274\uc2a4 \ubaa8\ub2c8\ud130\ub9c1* ({{ $json.newsCount }}\uac74)\n\n{{ $json.formattedNews }}",
        "otherOptions": {}
      },
      "id": "slack-notify-node",
      "name": "\ub274\uc2a4 \uc54c\ub9bc",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        1050,
        200
      ],
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "\uc5c5\ubb34\uc2dc\uac04 \ub274\uc2a4 \uccb4\ud06c": {
      "main": [
        [
          {
            "node": "\ub124\uc774\ubc84 \ub274\uc2a4 \uac80\uc0c9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ub124\uc774\ubc84 \ub274\uc2a4 \uac80\uc0c9": {
      "main": [
        [
          {
            "node": "\ub274\uc2a4 \uc815\ub9ac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ub274\uc2a4 \uc815\ub9ac": {
      "main": [
        [
          {
            "node": "\ub274\uc2a4 \uc788\ub294\uc9c0?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ub274\uc2a4 \uc788\ub294\uc9c0?": {
      "main": [
        [
          {
            "node": "\ub274\uc2a4 \uc54c\ub9bc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": "",
    "timezone": "Asia/Seoul",
    "saveExecutionProgress": true,
    "executionTimeout": 3600,
    "saveDataErrorExecution": "all",
    "saveDataSuccessExecution": "all"
  },
  "staticData": null,
  "tags": [
    {
      "createdAt": "2026-03-09T00:00:00.000Z",
      "updatedAt": "2026-03-09T00:00:00.000Z",
      "id": "korean-service",
      "name": "\ud55c\uad6d \uc11c\ube44\uc2a4"
    },
    {
      "createdAt": "2026-03-09T00:00:00.000Z",
      "updatedAt": "2026-03-09T00:00:00.000Z",
      "id": "news-monitoring",
      "name": "\ub274\uc2a4 \ubaa8\ub2c8\ud130\ub9c1"
    }
  ],
  "triggerCount": 1,
  "updatedAt": "2026-03-09T00:00:00.000Z",
  "versionId": "1"
}