n8n × Google Form × Notion 자동화 시도기

(부제: 응답은 왔는데 DB에 안 들어가요)

✅ 목표

Google Form에 작성된 사용자 응답을 자동으로 Notion 데이터베이스에 저장하는 워크플로우 구축

  • 반복적인 복사/붙여넣기 없이 응답 데이터가 DB에 쌓이도록 자동화

  • n8n으로 Webhook → Notion 연동 구현


⚙️ 시도한 방법

  1. Google Form 응답 수신 구조 만들기

    • Google Form → 응답 자동 기록용 Google Sheet 생성

    • Google Apps Script로 응답 발생 시 n8n Webhook으로 데이터 전송하도록 설정

  2. n8n 구성

    • Webhook 노드: Google Sheet에서 전송되는 JSON 데이터를 수신

    • Function 노드: 받은 데이터를 파싱해 Notion DB 입력 형태로 정리

    • Notion 노드:

      • Resource: Page

      • Operation: Create

      • Parent에 Database ID 지정

      • 응답 항목에 맞게 properties 매핑

  3. 실행 결과

    Google 시트 트리거 Google 시트 트리거 Google Sheets 트리거 Google 시트 트리거 Google Sheets 트리거 트리거 트리거 Google Sheets 트리거 Google Sheets 트리거 Google Sheets 트리거 Google Sheets Trigger
    • Webhook 수신 및 Function 처리: 성공

    • Notion 노드 실행 시 초록불 (성공 표시)

      한국 텍스트 편집기의 스크린 샷
    • 그러나 Notion DB에는 Row가 추가되지 않음

    • 대신 동일 이름의 "페이지들"만 하단에 생성됨 (DB 내부가 아님)


🧨 문제 원인 추정

  • Notion API에서 DB에 Row 추가하려면 아래 조건 충족이 필요:

    • parent는 정확히 database_id로 설정해야 함

    • properties는 Notion DB 컬럼 이름과 정확히 일치해야 하며, 타입도 맞아야 함 (예: 전화번호는 phone_number, 메모는 rich_text)

  • 이 과정에서 발생한 이슈:

    • 컬럼 이름이나 데이터 타입이 잘못 지정됨 (예: "전화번호" 대신 "phone" 사용)

    • 또는 parent 필드가 누락되어 단순 페이지로만 생성됨


💡 다음 개선 방향

항목

할 일

Webhook → Google Sheet 연결

Apps Script에서 응답 JSON을 n8n에 정확히 POST 하도록 설정

Notion 노드 설정

Page + 정확한 database_id 지정, properties 정확히 매핑

데이터 구조 파악

Google Form의 질문과 Notion DB의 컬럼 이름/타입 완전 일치 필요

테스트 데이터

최소 1건 테스트 응답으로 실제 DB에 Row 추가되는지 확인


📝 느낀 점

  • 겉으로는 성공처럼 보이지만 실제 결과는 DB와 무관할 수 있음 → Always double-check

  • Notion API의 구조는 유연해 보이지만 실은 엄격한 스펙을 따름

  • 실패 덕분에 Google Apps Script, Notion API 구조, n8n 워크플로우 연결 방식 전반을 이해하게 됨

3
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요