발행일: 2026-10-06(화) 11:44
← 목차로 돌아가기|하루 30분 n8n 시리즈 ② 실무 자동화 레시피 100
RECIPE 082

Notion → 블로그 자동 발행 (WordPress/티스토리)

  • ▸Notion에서 작성 완료된 포스트를 자동으로 감지
  • ▸Notion 콘텐츠를 WordPress/티스토리 형식으로 변환
  • ▸발행 후 Notion 상태를 '발행 완료'로 자동 업데이트

✅사전 준비

  • □Notion 통합 토큰 및 블로그 DB ID 확인
  • □WordPress REST API 사용자 계정 및 애플리케이션 비밀번호 생성
  • □Notion DB 속성 구성: 제목, 본문, 카테고리, 태그, 상태(초안/발행대기/발행완료)
  • □대표 이미지 URL 필드 추가

Notion 발행대기 포스트 조회

Node: HTTP Request
Method: POST
URL: https://api.notion.com/v1/databases/YOUR_DB_ID/query
Headers:
  Authorization: Bearer YOUR_NOTION_TOKEN
  Notion-Version: 2022-06-28

Body:
{
  "filter": {
    "property": "상태",
    "select": { "equals": "발행대기" }
  }
}

WordPress REST API 포스트 발행

Node: HTTP Request
Method: POST
URL: https://YOUR_WORDPRESS_SITE.com/wp-json/wp/v2/posts
Authentication: Basic Auth
Username: YOUR_WP_USERNAME
Password: YOUR_APPLICATION_PASSWORD

Body:
{
  "title": "{{ $json.properties.제목.title[0].plain_text }}",
  "content": "{{ $json.markdownContent }}",
  "status": "publish",
  "categories": [{{ $json.categoryId }}],
  "tags": {{ $json.tagIds }},
  "featured_media": {{ $json.featuredImageId }}
}

Notion 상태 업데이트

Node: HTTP Request
Method: PATCH
URL: https://api.notion.com/v1/pages/{{ $json.notionPageId }}
Headers:
  Authorization: Bearer YOUR_NOTION_TOKEN
  Notion-Version: 2022-06-28

Body:
{
  "properties": {
    "상태": { "select": { "name": "발행완료" } },
    "발행URL": { "url": "{{ $json.wordpressPostUrl }}" },
    "발행일": { "date": { "start": "{{ $now.toISODate() }}" } }
  }
}
💡 TIPWordPress 애플리케이션 비밀번호는 WordPress 관리자 → 사용자 → 프로필 하단 '애플리케이션 비밀번호' 섹션에서 생성할 수 있습니다. 기존 로그인 비밀번호와 별도로 관리되어 더 안전합니다.
⚡

워크플로우 JSON

아래 JSON을 복사해 n8n에 바로 임포트하세요

📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
  "recipeId": "recipe082",
  "title": "채널톡 상담 → Slack 실시간 라우팅",
  "chapter": 8,
  "category": "국내 서비스 특화 레시피",
  "difficulty": "⭐⭐",
  "estimatedTime": "35분",
  "usedApps": [
    "채널톡(ChannelTalk) Webhook",
    "Slack"
  ],
  "description": "채널톡으로 새 고객 상담이 들어오면 n8n Webhook이 즉시 신호를 받아, 상담 내용·고객명·문의 유형을 파싱하고 담당 팀원 Slack으로 실시간 라우팅합니다. 채널톡을 항상 켜두지 않아도 즉시 알림을 받을 수 있습니다.",
  "apiGuide": {
    "platform": "채널톡",
    "steps": [
      "채널톡 설정 → 개발자 설정 → Webhook URL에 n8n Webhook 주소 등록",
      "이벤트 타입: conversation_created (새 상담) 선택",
      "채널톡 Open API 키 발급 (문의 유형 분류용)"
    ]
  },
  "nodes": [
    {
      "id": "node1",
      "type": "n8n-nodes-base.webhook",
      "name": "채널톡 Webhook 수신",
      "parameters": {
        "path": "channeltalk-new-chat",
        "responseMode": "lastNode",
        "httpMethod": "POST"
      }
    },
    {
      "id": "node2",
      "type": "n8n-nodes-base.code",
      "name": "상담 정보 파싱",
      "parameters": {
        "jsCode": "const body = items[0].json;\nreturn [{\n  json: {\n    customerName: body.entity?.customer?.name || '익명',\n    message: body.entity?.plainText || '',\n    channelId: body.entity?.channelId || '',\n    createdAt: body.entity?.createdAt || new Date().toISOString()\n  }\n}];"
      }
    },
    {
      "id": "node3",
      "type": "n8n-nodes-base.openAi",
      "name": "문의 유형 자동 분류",
      "parameters": {
        "resource": "chat",
        "model": "gpt-4o-mini",
        "messages": {
          "values": [
            {
              "role": "user",
              "content": "다음 고객 메시지의 문의 유형을 분류해주세요.\n유형: 배송문의, 결제문의, 제품문의, 환불요청, 불만접수, 기타\n한 단어만 답하세요.\n\n메시지: {{$json['message']}}"
            }
          ]
        }
      }
    },
    {
      "id": "node4",
      "type": "n8n-nodes-base.if",
      "name": "불만 접수 여부 확인",
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json['message']['content']}}",
              "operation": "contains",
              "value2": "불만"
            }
          ]
        }
      }
    },
    {
      "id": "node5",
      "type": "n8n-nodes-base.slack",
      "name": "CS 팀 Slack 알림",
      "parameters": {
        "channel": "={{$env.CS_SLACK_CHANNEL}}",
        "text": "💬 새 채널톡 상담 도착!\n\n고객: {{$node['상담 정보 파싱'].json['customerName']}}\n유형: {{$node['문의 유형 자동 분류'].json['message']['content']}}\n내용: {{$node['상담 정보 파싱'].json['message']}}\n수신 시각: {{$now.format('HH:mm')}}"
      }
    }
  ],
  "envVariables": {
    "CS_SLACK_CHANNEL": "CS팀 Slack 채널 ID",
    "MANAGER_SLACK_ID": "팀장 Slack DM ID (불만 접수 에스컬레이션용)"
  },
  "tips": [
    "채널톡 Webhook은 이벤트 타입별로 별도 등록이 가능해요. 새 상담(conversation_created) 외에 상담 종료, 재오픈 이벤트도 활용할 수 있어요.",
    "레시피 049(미답변 채팅 자동 배정)와 연결하면 들어온 상담이 일정 시간 내 응답이 없을 때 자동 배정까지 완성됩니다.",
    "문의 유형이 '불만접수'로 분류될 경우 팀장 DM에도 동시 알림을 보내는 IF 분기를 추가하면 에스컬레이션이 자동화됩니다."
  ],
  "qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe082"
}
← 이전 레시피☰ 목차다음 레시피 →