앱스크립트로 구글폼 자동화하기 실전 구현 가이드

앱스크립트로 구글폼 자동화하기 실전 구현 가이드

앱스크립트로 구글폼 자동화하기는 반복적인 신청 접수 업무를 줄이고 운영 실수를 예방하는 데 매우 효과적이다. 특히 강의를 운영할 때 누군가가 구글폼으로 신청서를 제출하면 응답이 구글 시트에 자동 저장되고, 그 데이터를 바탕으로 신청 완료 문자와 관리자 알림 메일까지 자동 발송되도록 만들면 업무 속도와 정확도가 크게 올라간다.

이번 글은 단순 개념 소개가 아니라 실제 운영 상황을 기준으로 구성했다. 예시는 “강의 신청자가 구글폼을 제출하면 시트에 새 행이 추가되고, 이 이벤트를 트리거로 신청 완료 문자가 발송되며, 동시에 관리자에게 신청 내용이 담긴 메일이 전송되는 구조”다. 작은 학원, 온라인 클래스, 사내 교육, 세미나 접수 운영처럼 신청 관리가 반복되는 환경이라면 바로 응용할 수 있다.

앱스크립트로 구글폼 자동화하기가 필요한 이유

처음에는 신청이 몇 건 안 되기 때문에 수동 관리로도 버틸 수 있다. 하지만 강의 일정이 늘어나고, 접수 채널이 많아지고, 참가자 문의가 섞이기 시작하면 사람이 직접 메일을 보내고 문자 내용을 복붙하는 방식은 곧 한계를 드러낸다. 누락, 중복 발송, 시트 정리 오류, 담당자 간 전달 누락이 반복되면 운영자는 신청자 응대보다 관리 작업에 더 많은 시간을 쓰게 된다.

신청 접수 이후 업무가 생각보다 많다

강의 신청을 받는 일은 폼 하나 만드는 것으로 끝나지 않는다. 신청자가 누구인지 확인하고, 연락처 형식을 점검하고, 중복 신청 여부를 보고, 접수 완료 안내를 보내고, 운영 담당자에게도 새 신청 사실을 알려야 한다. 여기에 입금 확인, 잔여 좌석 관리, 수업 안내 링크 전달까지 얹히면 수동 운영은 금방 비효율적이 된다.

자동화의 핵심은 제출 순간을 놓치지 않는 것이다

구글폼은 제출 이벤트가 명확하기 때문에 자동화 출발점으로 매우 좋다. 사용자가 폼을 제출하는 즉시 onFormSubmit 트리거를 사용해 후속 작업을 실행할 수 있다. 즉, 신청이 발생한 바로 그 시점에 데이터를 읽고, 맞춤 메시지를 만들고, 관리자에게 상황을 공유할 수 있다. 이 구조가 안정적으로 돌아가면 운영 속도는 빨라지고 누락 위험은 크게 줄어든다.

구글폼 자동화의 핵심은 “접수된 데이터를 바로 다음 행동으로 연결하는 것”이다.

강의 신청 자동화 시나리오 전체 구조

이번 예시에서 가정하는 흐름은 단순하다. 신청자가 구글폼에 이름, 연락처, 이메일, 신청 강의명, 요청 사항을 입력해 제출하면 응답이 연결된 구글 시트에 저장된다. 이후 앱스크립트가 새 행 데이터를 읽어 신청 완료 문자를 보내고, 관리자 메일로 신청 요약 정보를 발송한다. 필요하다면 이후 단계로 결제 확인, 줌 링크 안내, 리마인드 메시지까지 확장할 수 있다.

실무에서는 흐름을 먼저 글로 적어두는 편이 좋다

코드를 먼저 쓰기보다 “입력 → 저장 → 검증 → 문자 발송 → 관리자 메일” 순서로 업무 흐름을 문장으로 적어보면 훨씬 안정적이다. 이 단계에서 어떤 칼럼이 필요한지, 어떤 조건이면 문자를 보내면 안 되는지, 관리자 메일 제목은 어떻게 통일할지까지 결정해두면 이후 앱스크립트 로직이 흔들리지 않는다.

  • 구글폼 제출
  • 구글 시트 새 행 추가
  • 필수 값 검증
  • 신청 완료 문자 발송
  • 관리자 알림 메일 전송
  • 로그 기록 및 오류 확인

구글폼과 시트 연결을 먼저 설계해야 하는 이유

앱스크립트로 구글폼 자동화하기에서 가장 흔한 실수는 폼 문항과 시트 열 구조를 제대로 정리하지 않은 채 스크립트부터 작성하는 것이다. 이렇게 시작하면 문항 제목이 바뀌었을 때 코드가 깨지거나, 담당자가 열 순서를 바꾸는 순간 문자 발송 내용이 엉키는 문제가 생긴다. 따라서 먼저 폼 문항명과 시트 열 이름을 안정적으로 정해두는 편이 좋다.

폼 문항 이름은 운영 용어와 맞춰야 한다

예를 들어 문항 제목이 너무 길거나 자주 바뀌면 스크립트 유지보수가 어려워진다. 이름, 휴대전화, 이메일, 신청 강의명, 메모처럼 간결하고 명확한 구조가 낫다. 또한 연락처는 문자 발송에 쓰일 수 있으므로 입력 형식을 안내하고, 관리자 메일 본문에 어떤 값이 들어갈지도 미리 정해야 한다.

특히 실제 운영에서는 잘못된 번호, 빈 이메일, 중복 신청처럼 예외가 반드시 나온다. 그래서 시트에 `문자발송여부`, `관리자메일전송여부`, `오류메모` 같은 관리용 열을 추가해두면 장애 대응이 쉬워진다. 이 열들은 나중에 재처리나 디버깅에도 큰 도움이 된다.

앱스크립트로 문자 발송과 관리자 메일 알림 구현하기

이제 핵심 구현 단계다. 구글폼 제출 트리거가 발생하면 앱스크립트는 이벤트 객체에서 제출 데이터를 읽는다. 그다음 시트의 마지막 행 또는 이벤트 응답값을 기준으로 신청자 이름, 휴대전화, 신청 강의명을 추출하고, 이를 바탕으로 문자 메시지와 관리자 메일 본문을 만든다. 메일은 GmailApp으로 보낼 수 있고, 문자는 사용하는 문자 서비스 API와 UrlFetchApp을 연결해 전송하는 방식이 일반적이다.

기본 구현 흐름은 단순하지만 예외 처리가 중요하다

예를 들어 신청자 휴대전화가 비어 있으면 문자를 보내면 안 되고, 관리자 메일은 보내되 오류 사유를 남겨야 한다. 또 문자 API 호출에 실패했을 때는 성공처럼 기록하면 안 된다. 따라서 try/catch, 응답 코드 확인, 시트 로그 기록이 반드시 필요하다. 운영 자동화는 “돌아가는 코드”보다 “문제가 생겼을 때 추적 가능한 코드”가 더 중요하다.

예시 코드 구조는 이렇게 잡으면 된다

아래는 실무에서 많이 쓰는 방향의 의사 코드 구조다. 실제 서비스 키와 엔드포인트는 사용하는 문자 플랫폼에 맞게 바꾸면 된다.

function onFormSubmit(e) {
  const values = e.namedValues;
  const name = values['이름'] ? values['이름'][0] : '';
  const phone = values['휴대전화'] ? values['휴대전화'][0] : '';
  const email = values['이메일'] ? values['이메일'][0] : '';
  const lecture = values['신청 강의명'] ? values['신청 강의명'][0] : '';

  if (!phone) {
    notifyAdminByEmail(name, lecture, '전화번호 누락');
    return;
  }

  sendCompletionMessage(name, phone, lecture);
  notifyAdminByEmail(name, lecture, '정상 접수');
}

문자 내용은 너무 길지 않게 유지하는 편이 좋다. 예를 들어 “OO강의 신청이 정상적으로 접수되었습니다. 일정과 안내사항은 별도 메시지로 다시 보내드립니다.”처럼 핵심 정보만 담고, 상세 정보는 메일이나 후속 안내에서 처리하는 것이 안정적이다. 관리자 메일은 신청자 이름, 연락처, 강의명, 접수 시각, 요청 사항을 보기 좋게 묶어 보내면 된다.

운영 단계에서 꼭 점검할 체크포인트

앱스크립트로 구글폼 자동화하기를 실제 운영에 붙이면 코드 작성보다 운영 정책이 더 중요해진다. 문자 중복 발송 방지, API 장애 시 재시도 방식, 관리자 메일 제목 규칙, 신청 마감 이후 처리 정책을 미리 정해두지 않으면 자동화가 오히려 혼란을 만들 수 있다. 그래서 처음부터 점검 항목을 같이 설계해야 한다.

운영 체크리스트를 같이 만들어야 오래 간다

예를 들어 문자가 성공했는지 여부를 시트에 남기는가, 실패했을 때 담당자가 쉽게 다시 보낼 수 있는가, 관리자 메일에 개인정보가 과도하게 들어가지 않는가, 강의별로 다른 템플릿을 적용할 수 있는가 같은 항목을 체크해야 한다. 이런 운영 기준이 있어야 앱스크립트 자동화가 단발성 스크립트가 아니라 실제 업무 도구가 된다.

  • 폼 문항명과 시트 열 구조 고정
  • 문자 API 실패 로그 저장
  • 중복 발송 방지 칼럼 운영
  • 관리자 메일 제목 규칙 통일
  • 개인정보 최소 수집과 최소 노출

외부 링크: Google Apps Script 트리거 공식 문서

내부 링크: 앱스크립트 장점 7가지 글 보기

내부 링크: 앱스크립트 SEO 자동화 7단계 워크플로우 (바이브코딩보다 나은 이유)

함께 보면 좋은 의사 운영 사이트

교육, 개원 준비, 홈페이지 제작, 의사 커뮤니티까지 운영에 도움이 되는 사이트를 모았습니다.