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

Google Forms 응답 → 이메일 자동 발송 + Sheets 기록

  • ▸Google Forms 신규 응답 감지 시 확인 이메일 자동 발송
  • ▸응답 데이터를 Google Sheets에 자동 저장
  • ▸관리자에게 일일 요약 리포트 발송

✅사전 준비

  • □Google Forms + 연결된 Sheets 스프레드시트 준비
  • □Google OAuth2 자격증명 설정
  • □Gmail 발송 권한 확인
  • □Sheets 헤더 행 구성 완료

트리거 설정 (Google Sheets Trigger)

Node: Google Sheets Trigger
Event: Row Added
Spreadsheet ID: YOUR_SPREADSHEET_ID
Sheet Name: 시트1
Poll Interval: 1분

확인 이메일 템플릿

제목: [확인] {{ $json['이름'] }}님의 응답이 접수되었습니다

안녕하세요, {{ $json['이름'] }}님!

아래 내용으로 응답이 정상 접수되었습니다.

- 제출 일시: {{ $now.toFormat('yyyy-MM-dd HH:mm') }}
- 이메일: {{ $json['이메일'] }}
- 문의 내용: {{ $json['내용'].slice(0, 100) }}...

빠른 시일 내에 답변 드리겠습니다.
감사합니다.
💡 TIPGoogle Forms 응답은 연결된 Sheets에 자동 기록되므로, n8n에서는 Sheets Trigger를 사용하는 것이 가장 안정적입니다.
⚡

워크플로우 JSON

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

📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
  "recipeId": "recipe052",
  "title": "서류 합격자 → 면접 일정 자동 조율 이메일",
  "chapter": 5,
  "category": "HR & 조직 운영 자동화",
  "difficulty": "⭐⭐",
  "estimatedTime": "35분",
  "usedApps": [
    "Google Sheets",
    "Calendly",
    "Gmail"
  ],
  "description": "지원자 시트에서 상태가 '서류합격'으로 변경되면 합격 안내 이메일과 Calendly 면접 예약 링크를 자동 발송하고, 예약 완료 시 채용팀 Slack에 알림을 보냅니다.",
  "nodes": [
    {
      "id": "trigger_sheets",
      "type": "trigger",
      "service": "Google Sheets",
      "name": "서류합격 상태 변경 감지",
      "config": {
        "event": "rowUpdated",
        "spreadsheetId": "{{$env.RECRUIT_SHEET_ID}}",
        "sheetName": "지원자목록",
        "watchColumn": "상태",
        "watchValue": "서류합격"
      }
    },
    {
      "id": "send_pass_email",
      "type": "action",
      "service": "Gmail",
      "name": "합격 안내 + 면접 예약 링크 발송",
      "config": {
        "operation": "sendEmail",
        "to": "{{$json['이메일']}}",
        "subject": "[{{$env.COMPANY_NAME}}] {{$json['포지션']}} 서류 전형 합격을 축하드립니다!",
        "body": "안녕하세요, {{$json['이름']}}님!\n\n{{$env.COMPANY_NAME}} {{$json['포지션']}} 포지션 서류 전형에 합격하셨습니다. 🎉\n\n아래 링크에서 편하신 면접 일정을 선택해 주세요.\n일정 선택 후 자동으로 면접 확정 안내가 발송됩니다.\n\n📅 면접 일정 선택하기:\n{{$env.CALENDLY_INTERVIEW_URL}}\n\n선택 기한: 안내 수신 후 3일 이내\n\n궁금하신 사항은 언제든지 회신 주세요.\n{{$env.COMPANY_NAME}} 채용팀 드림"
      }
    },
    {
      "id": "update_status",
      "type": "action",
      "service": "Google Sheets",
      "name": "상태 업데이트",
      "config": {
        "operation": "updateRow",
        "spreadsheetId": "{{$env.RECRUIT_SHEET_ID}}",
        "sheetName": "지원자목록",
        "rowNumber": "{{$json['rowIndex']}}",
        "columns": {
          "상태": "면접일정조율중",
          "합격통보일": "{{$now.format('YYYY-MM-DD')}}"
        }
      }
    },
    {
      "id": "trigger_calendly",
      "type": "trigger",
      "service": "Webhook",
      "name": "Calendly 예약 완료 수신",
      "config": {
        "httpMethod": "POST",
        "path": "/calendly-interview",
        "description": "Calendly Webhook에 이 URL을 등록하세요"
      }
    },
    {
      "id": "notify_recruit_team",
      "type": "action",
      "service": "Slack",
      "name": "채용팀 면접 예약 알림",
      "config": {
        "operation": "sendMessage",
        "channel": "{{$env.RECRUIT_SLACK_CHANNEL}}",
        "message": "📅 면접 일정이 확정되었습니다!\n\n👤 지원자: {{$json['payload']['invitee']['name']}}\n💼 포지션: {{$json['payload']['event_type']['name']}}\n📅 면접 일시: {{$json['payload']['event']['start_time']}}\n📧 이메일: {{$json['payload']['invitee']['email']}}\n\n👉 캘린더에서 확인하세요!"
      }
    }
  ],
  "edges": [
    {
      "from": "trigger_sheets",
      "to": "send_pass_email"
    },
    {
      "from": "send_pass_email",
      "to": "update_status"
    },
    {
      "from": "trigger_calendly",
      "to": "notify_recruit_team"
    }
  ],
  "tips": [
    "Calendly에서 면접관별 전용 링크를 만들어두면 포지션에 따라 다른 링크를 자동으로 삽입할 수 있어요.",
    "면접 예약 완료 시 지원자에게도 '면접 확정 안내' 이메일을 Gmail 노드로 추가 발송하면 더욱 프로페셔널한 인상을 줄 수 있어요.",
    "3일 이내 미예약 지원자에게 리마인더를 보내려면 Wait 노드(3일) 후 시트 상태를 확인하는 분기를 추가하세요."
  ],
  "qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe052"
}
← 이전 레시피☰ 목차다음 레시피 →