일. 8월 17th, 2025

여러분은 혹시 노션(Notion) 데이터베이스의 데이터를 수동으로 업데이트하느라 시간을 낭비하고 계신가요? 😥 매일매일 반복되는 지루한 작업에 지쳤다면, 오늘 이 글이 여러분의 구원자가 될 것입니다! n8n을 활용하면 노션 데이터베이스를 자동으로 업데이트하여 업무 효율을 극대화하고, 더욱 중요한 일에 집중할 수 있게 됩니다.

왜 n8n과 Notion의 조합인가요? 🤔

노션은 유연한 데이터베이스 기능으로 프로젝트 관리, 고객 관리, 콘텐츠 계획 등 다양한 용도로 활용됩니다. 하지만 다른 서비스(예: 이메일, CRM, 스프레드시트)에서 발생하는 데이터를 노션에 수동으로 입력하는 것은 번거롭고 오류를 유발할 수 있습니다. 이때 n8n이 등장합니다!

  • n8n이란? n8n은 워크플로우 자동화를 위한 강력하고 유연한 오픈 소스 도구입니다. Zapier나 Make(구 Integromat)와 유사하지만, 자체 호스팅이 가능하여 민감한 데이터의 통제권을 유지하고 비용을 절감할 수 있다는 장점이 있습니다.
  • 시너지 효과: n8n은 수백 가지 서비스와 연동될 수 있으며, 노션은 그중 하나입니다. n8n을 통해 외부 데이터를 가져오거나, 특정 조건이 충족될 때 노션 데이터베이스의 특정 아이템을 자동으로 업데이트할 수 있습니다.

이 조합의 장점은 다음과 같습니다:

  • ⚡️ 시간 절약: 반복적인 수동 작업을 없애줍니다.
  • 📉 오류 감소: 사람의 실수로 인한 데이터 불일치를 줄여줍니다.
  • 📊 데이터 신뢰성: 항상 최신 데이터를 유지하여 의사결정에 도움을 줍니다.
  • 🔒 개인정보 보호: n8n을 자체 호스팅하면 데이터가 외부 서비스로 전송되는 것을 최소화할 수 있습니다.
  • 💰 비용 절감: 유료 자동화 서비스 대비 장기적으로 비용을 절감할 수 있습니다.

시작하기 전 준비물 🛠️

본격적인 자동화 워크플로우를 만들기 전에 몇 가지 준비물이 필요합니다.

  1. n8n 인스턴스:

    • 로컬 PC, 클라우드 서버(AWS, GCP 등), 또는 Docker 컨테이너 등 원하는 방식으로 n8n을 설치하고 실행하세요. n8n 공식 웹사이트에 자세한 설치 가이드가 있습니다.
  2. 노션(Notion) 계정:

    • 당연히 노션 계정이 있어야겠죠? 자동 업데이트할 데이터베이스가 포함된 워크스페이스에 접근할 수 있어야 합니다.
  3. 노션(Notion) 통합(Integration) 설정:

    • n8n이 노션 데이터베이스에 접근하고 수정할 수 있도록 API 연동을 설정해야 합니다.
    • 단계별 설정:
      1. 새로운 통합 만들기: 노션 페이지 좌측 하단의 ‘설정 & 멤버’ > ‘내 연결’ > ‘통합 개발’로 이동합니다.
      2. 새로운 통합 만들기: ‘새 통합 만들기’ 버튼을 클릭합니다.
      3. 통합 정보 입력: 이름을 지정하고(예: “n8n 자동화”), 내부 통합으로 설정한 후 제출합니다. 중요한 것은 ‘내부 통합 비밀 토큰’ 입니다. 이 토큰을 복사해 두세요! 🔑
      4. 데이터베이스에 통합 초대: 이제 이 통합이 접근할 데이터베이스에 통합을 초대해야 합니다.
        • 자동 업데이트할 노션 데이터베이스 페이지로 이동합니다.
        • 페이지 우측 상단의 ... (점 세 개) 아이콘을 클릭하고 ‘연결 추가’를 선택합니다.
        • 방금 만든 통합 이름(예: “n8n 자동화”)을 검색하여 추가합니다.
        • 주의: 통합이 데이터베이스에 초대되어 있어야 n8n이 해당 데이터베이스에 접근할 수 있습니다.
  4. 노션 데이터베이스 ID 확인:

    • 자동 업데이트할 노션 데이터베이스 페이지의 URL을 확인합니다.
    • https://www.notion.so/{워크스페이스 이름}/{데이터베이스_ID}?v={뷰_ID} 와 같은 형식일 것입니다. 여기서 {데이터베이스_ID} 부분이 필요합니다. 이 ID를 복사해 두세요.

n8n 워크플로우 생성하기: 단계별 가이드 🚀

이제 n8n 워크플로우를 만들어 봅시다. 가장 일반적인 시나리오인 ‘특정 조건에 따라 데이터베이스 아이템 업데이트’를 예시로 들어보겠습니다.

예시 1: 외부 웹훅(Webhook)으로 Notion 재고 업데이트 📈

시나리오: 온라인 쇼핑몰에서 상품이 판매될 때마다 노션에 기록된 해당 상품의 ‘재고 수’를 자동으로 줄이고, ‘마지막 업데이트’ 날짜를 갱신합니다.

준비물:

  • 노션 데이터베이스: “제품 재고” 라는 데이터베이스를 만듭니다.
    • 속성: 제품명 (제목), 재고 수 (숫자), 가격 (숫자), 마지막 업데이트 (날짜)
    • 예시 데이터: “콜라” (재고 수: 100), “과자” (재고 수: 50) 등

워크플로우 구성:

  1. 트리거 (Webhook):

    • n8n 워크플로우를 새로 만들고, 첫 번째 노드로 Webhook을 추가합니다.
    • Webhook URL을 복사합니다. 이 URL로 데이터(판매 정보)가 전송될 것입니다.
    • HTTP MethodPOST로 설정하고, Response ModeOn Received로 설정합니다.
    • 💡 팁: Postman이나 curl 명령어를 사용하여 이 웹훅 URL로 테스트 데이터를 전송해 볼 수 있습니다.
      curl -X POST -H "Content-Type: application/json" -d '{"product_name": "콜라", "sold_quantity": 1}' YOUR_WEBHOOK_URL

      이 데이터는 product_name (판매된 제품 이름)과 sold_quantity (판매된 수량)을 포함합니다.

  2. Notion 노드 (Find Database Item):

    • Webhook 노드 뒤에 Notion 노드를 추가합니다.
    • Credential (인증): 이전에 복사해 둔 ‘내부 통합 비밀 토큰’으로 새로운 Notion Credential을 생성하여 선택합니다.
    • Operation (작업): Find Database Items를 선택합니다.
    • Database ID: 이전에 복사해 둔 “제품 재고” 데이터베이스의 ID를 붙여넣습니다.
    • Filters (필터):
      • Add Filter를 클릭합니다.
      • Property: 제품명
      • Condition: Equals
      • Value: ={{$json["product_name"]}} (이전 Webhook 노드에서 받은 product_name 데이터를 사용합니다.)
    • 이 노드는 웹훅으로 받은 product_name에 해당하는 제품을 노션 DB에서 찾아 그 정보를 다음 노드로 전달합니다.
  3. Notion 노드 (Update Database Item):

    • Find Database Item 노드 뒤에 또 다른 Notion 노드를 추가합니다.
    • Credential (인증): 동일한 Notion Credential을 선택합니다.
    • Operation (작업): Update를 선택합니다.
    • Database ID: 동일한 “제품 재고” 데이터베이스 ID를 붙여넣습니다.
    • Item ID: Find Database Item 노드에서 찾은 아이템의 ID를 사용합니다.
      • ={{$node["Notion Item"].json["id"]}} (여기서 “Notion Item”은 Find Database Item 노드의 이름입니다. 이름을 변경했다면 해당 이름으로 수정하세요.)
    • Properties (속성):
      • 재고 수:
        • Type: Number
        • Value: ={{$node["Notion Item"].json["properties"]["재고 수"].number - $json["sold_quantity"]}}
        • 설명: 현재 재고에서 웹훅으로 받은 sold_quantity를 뺀 값으로 업데이트합니다.
      • 마지막 업데이트:
        • Type: Date
        • Value: ={{new Date().toISOString()}}
        • 설명: 현재 날짜 및 시간으로 업데이트합니다.
    • 이 노드는 Find Database Item에서 찾은 아이템의 재고 수마지막 업데이트 속성을 자동으로 변경합니다.

워크플로우 흐름 요약: 🛒 Webhook (판매 데이터 수신) -> 📦 Notion (Find) (해당 제품 찾기) -> ✅ Notion (Update) (재고 및 날짜 업데이트)

예시 2: 특정 조건 충족 시 프로젝트 상태 자동 변경 🔄

시나리오: 매일 오전 9시에 구글 스프레드시트에 있는 모든 하위 작업이 ‘완료’로 표시되면, 노션의 해당 프로젝트 상태를 ‘진행 중’에서 ‘완료’로 자동으로 변경합니다.

준비물:

  • 노션 데이터베이스: “프로젝트 관리” 데이터베이스를 만듭니다.
    • 속성: 프로젝트명 (제목), 상태 (선택: 진행 중, 완료, 대기), 담당자 (사람)
    • 예시 데이터: “웹사이트 리뉴얼” (상태: 진행 중)
  • 구글 스프레드시트: “웹사이트 리뉴얼 하위 작업” 시트를 만듭니다.
    • 컬럼: Task (텍스트), Status (텍스트: To Do, Done), Project (텍스트: 웹사이트 리뉴얼)
    • 예시 데이터: “디자인 시안 확정” (Status: Done), “개발 시작” (Status: Done), “테스트” (Status: To Do)

워크플로우 구성:

  1. 트리거 (Cron):

    • 워크플로우를 새로 만들고, 첫 번째 노드로 Cron을 추가합니다.
    • Mode: Every day
    • Time: 09:00 (매일 오전 9시)
    • 이 노드는 매일 정해진 시간에 워크플로우를 시작합니다.
  2. Google Sheets 노드 (Read All):

    • Cron 노드 뒤에 Google Sheets 노드를 추가합니다.
    • Credential (인증): 구글 계정으로 새로운 Google Sheets Credential을 생성합니다.
    • Operation (작업): Read All을 선택합니다.
    • Spreadsheet ID: 해당 구글 스프레드시트의 ID를 입력합니다.
    • Sheet Name: “웹사이트 리뉴얼 하위 작업” 시트 이름을 입력합니다.
    • 이 노드는 스프레드시트의 모든 행 데이터를 가져옵니다.
  3. Code 노드 (조건 확인):

    • Google Sheets 노드 뒤에 Code 노드를 추가합니다.
    • 이 노드는 스프레드시트에서 가져온 모든 작업의 Status가 ‘Done’인지 확인합니다.
    • Execute Once 함수 내부에 다음 코드를 작성합니다:
      let allTasksDone = true;
      const projectName = "웹사이트 리뉴얼"; // 확인할 프로젝트명
      for (const item of $json) {
          if (item.Status !== "Done" && item.Project === projectName) {
              allTasksDone = false;
              break;
          }
      }
      return [{ json: { allTasksDone: allTasksDone, projectName: projectName } }];
    • 이 노드는 allTasksDone이라는 불리언(boolean) 값과 projectName을 다음 노드로 전달합니다.
  4. IF 노드 (조건부 실행):

    • Code 노드 뒤에 IF 노드를 추가합니다.
    • Value 1: ={{$json["allTasksDone"]}}
    • Operation: Is True
    • IF 노드는 allTasksDone 값이 true일 경우에만 다음 노드로 실행 흐름을 전달합니다.
  5. Notion 노드 (Find Database Item):

    • IF 노드의 True 분기(Branch)에 Notion 노드를 추가합니다.
    • Credential (인증): 동일한 Notion Credential을 선택합니다.
    • Operation (작업): Find Database Items를 선택합니다.
    • Database ID: “프로젝트 관리” 데이터베이스 ID를 붙여넣습니다.
    • Filters (필터):
      • Property: 프로젝트명
      • Condition: Equals
      • Value: ={{$json["projectName"]}} (Code 노드에서 받은 projectName 사용)
    • 이 노드는 ‘웹사이트 리뉴얼’ 프로젝트를 노션 DB에서 찾아 정보를 다음 노드로 전달합니다.
  6. Notion 노드 (Update Database Item):

    • Find Database Item 노드 뒤에 또 다른 Notion 노드를 추가합니다.
    • Credential (인증): 동일한 Notion Credential을 선택합니다.
    • Operation (작업): Update를 선택합니다.
    • Database ID: 동일한 “프로젝트 관리” 데이터베이스 ID를 붙여넣습니다.
    • Item ID: ={{$node["Notion Item 2"].json["id"]}} (Find Database Item 노드의 이름이 “Notion Item 2″라고 가정)
    • Properties (속성):
      • 상태:
        • Type: Select
        • Value: 완료
    • 이 노드는 ‘웹사이트 리뉴얼’ 프로젝트의 상태를 ‘완료’로 변경합니다.

워크플로우 흐름 요약:Cron (매일 아침 실행) -> 📄 Google Sheet (Read) (하위 작업 목록 가져오기) -> 🖥️ Code (모든 작업 완료 여부 확인) -> 🚦 IF (모두 완료 시) -> 🔍 Notion (Find) (해당 프로젝트 찾기) -> 👍 Notion (Update) (프로젝트 상태 ‘완료’로 변경) 🎉

n8n & Notion 활용 팁 💡

  • 오류 처리 (Error Handling): 워크플로우 실행 중 오류가 발생할 수 있습니다. 각 노드의 ‘On Error’ 탭을 활용하여 특정 오류 시 Slack 알림을 보내거나 재시도를 설정하는 등 오류 처리 로직을 구현하면 워크플로우의 안정성을 높일 수 있습니다.
  • 데이터 변환 (Data Transformation): 노션 API는 특정 형식의 데이터를 요구합니다. 예를 들어, 날짜는 ISO 8601 형식이어야 합니다. Set 노드나 Code 노드를 사용하여 데이터를 노션이 이해할 수 있는 형식으로 변환해야 할 때가 많습니다.
    • Set 노드: 간단한 값 할당, 이름 변경 등에 유용합니다.
    • Code 노드: 복잡한 계산, 조건부 로직, 여러 데이터 조합 등 프로그래밍이 필요할 때 사용합니다.
  • 조건부 로직 (Conditional Logic): IF 노드를 사용하여 특정 조건(예: 특정 값이 비어있지 않은 경우, 숫자가 특정 값보다 큰 경우)에 따라 워크플로우의 흐름을 다르게 가져갈 수 있습니다.
  • 반복 작업 (Looping): 여러 개의 아이템을 처리해야 할 때 Split In BatchesItem Lists 노드를 활용하여 각 아이템에 대해 동일한 작업을 반복 수행할 수 있습니다.
  • Notion API 제한: 노션 API에는 요청 빈도 제한(rate limit)이 있습니다. 너무 짧은 시간 내에 많은 요청을 보내면 일시적으로 차단될 수 있으니, 대량의 데이터를 처리할 때는 Wait 노드를 활용하거나 Split In Batches로 요청 간의 간격을 두는 것을 고려해 보세요.

마무리하며 맺는말 ✨

n8n과 Notion의 조합은 단순한 데이터 입력 자동화를 넘어, 여러분의 업무 프로세스를 혁신할 수 있는 무궁무진한 가능성을 제공합니다. 이 글에서 제시된 예시는 빙산의 일각에 불과합니다. 이메일 수신 시 특정 정보를 노션에 기록하거나, 웹사이트 폼 제출 데이터를 자동으로 데이터베이스에 추가하는 등, 상상하는 모든 자동화를 구현할 수 있습니다.

처음에는 복잡하게 느껴질 수 있지만, n8n의 시각적인 워크플로우 빌더는 코딩 지식이 없어도 쉽게 자동화를 구성할 수 있도록 돕습니다. 지금 바로 여러분의 반복적인 노션 데이터베이스 작업을 파악하고, n8n을 활용하여 자동화의 세계에 발을 들여보세요! 여러분의 업무 효율이 눈에 띄게 향상될 것입니다. 🚀🔥

질문이 있다면 언제든지 댓글로 남겨주세요! 함께 자동화의 즐거움을 느껴봅시다. D

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다