구글 시트 자동 알림 만들기 – Apps Script로 이메일 전송 자동화하기

구글 시트 자동 알림 만들기 해보셨나요?

안녕하세요! Runeba입니다. 오늘은 구글 시트 자동 알림 만들기 실현할 수 있는 대표적인 예시인 “Apps Script를 이용한 이메일 자동 전송 알림 만들기”에 대해 소개해드리겠습니다. 단순한 반복 작업에서 벗어나 더 중요한 업무에 집중하고 싶은 분들께 매우 유용한 기능입니다.


구글 시트 자동 알림 만들기 어떤 일이 가능할까요?

  • 마감일 하루 전 자동 알림 메일 전송
  • 일정 조건이 되면 관련 담당자에게 메일 발송
  • 셀 값 변경 시 경고 알림

Google Apps Script는 구글 시트에 내장된 자바스크립트 기반 자동화 도구입니다. 아래 예제들을 통해 어떻게 자동화를 구현할 수 있는지 자세히 확인해보세요.


예제 1: 단순한 이메일 자동 전송

function sendSimpleMail() {
  MailApp.sendEmail("example@email.com", "마감 알림", "오늘은 마감일입니다.");
}

설명: 이 예제는 단순히 정해진 이메일 주소로 제목과 본문이 있는 메일을 전송합니다.


예제 2: 시트의 특정 셀 내용 포함해 자동 전송

function sendCellContent() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var name = sheet.getRange("B2").getValue();
  MailApp.sendEmail("example@email.com", "고객 알림", name + "님 확인 바랍니다.");
}

설명: B2 셀의 값을 메일 본문에 삽입해 동적으로 메일을 작성할 수 있습니다.


심화 예제 1: 특정 날짜 조건에 따라 자동 전송

function dateBasedReminder() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var today = new Date();
  var row = 2;
  var dueDate = new Date(sheet.getRange("C" + row).getValue());

  if ((dueDate - today) / (1000 * 60 * 60 * 24) <= 1) {
    MailApp.sendEmail("example@email.com", "하루 전 알림", "내일이 마감일입니다.");
  }
}

설명: 마감일이 하루 남은 경우 이메일로 자동 알림을 보내는 기능입니다.
시트의 C열에 날짜가 입력되어 있고, 그 날짜가 현재 시점 기준으로 1일 이내일 때만 발송됩니다.
기한이 임박한 업무나 프로젝트 관리에 매우 유용하게 활용될 수 있습니다.


심화 예제 2: 조건을 만족하는 행 반복 처리

function bulkReminder() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();

  for (var i = 1; i < data.length; i++) {
    if (data[i][3] == "미처리") {
      MailApp.sendEmail(data[i][1], "처리 요청", data[i][0] + " 항목을 확인해주세요.");
    }
  }
}

설명: 이 함수는 스프레드시트의 데이터를 반복적으로 확인하면서, D열에 ‘미처리’ 상태가 포함된 행에 대해 이메일을 자동으로 발송합니다.

  • data[i][3]: D열 (인덱스 3)이 “미처리”일 경우
  • data[i][1]: B열의 이메일 주소로 메일 발송
    → 주로 업무 처리 상태 확인, 업무 담당자 알림, 이슈 리마인드 메일에 활용됩니다.

심화 예제 3: 트리거를 이용한 매일 자동 실행

function createTrigger() {
  ScriptApp.newTrigger("bulkReminder")
    .timeBased()
    .everyDays(1)
    .atHour(9)
    .create();
}

설명: bulkReminder() 함수를 매일 오전 9시에 자동으로 실행되도록 시간 기반 트리거를 생성하는 함수입니다.

  • atHour(9): 오전 9시에 작동

→ 반복되는 업무, 매일 정기 알림, 스케줄 기반 자동화에 활용할 수 있는 기본 자동화 패턴입니다. 단, 트리거는 한 번만 설정해두면 자동으로 작동하며, Apps Script > 실행 트리거 메뉴에서도 확인 가능합니다.

  • everyDays(1): 매일 실행

심화 예제 4: 셀 값 변경 시 알림 메일 발송

function onEdit(e) {
  var range = e.range;
  if (range.getA1Notation() == "D2" && e.value == "확인") {
    MailApp.sendEmail("example@email.com", "업데이트 알림", "D2 셀에 '확인'이 입력되었습니다.");
  }
}

설명: 이 함수는 스프레드시트에서 D2 셀의 값이 ‘확인’으로 변경될 때 자동으로 이메일을 발송합니다.

  • 셀 위치를 조건으로 제어하여, 특정 셀에서의 변경에만 반응하게 구성합니다.
    → 상태 변경 감지, 특정 승인 조건 충족 시 자동 보고, 관리자 알림 트리거로 활용할 수 있습니다.
  • onEdit(e)는 Google Apps Script에서 제공하는 자동 실행 함수로, 편집이 일어날 때마다 호출됩니다.

심화 예제 5: 이메일 로그 기록 남기기

function sendAndLog() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var email = "example@email.com";
  var message = "테스트 메일입니다.";
  MailApp.sendEmail(email, "테스트", message);
  sheet.getRange("E2").setValue(new Date());  // 로그 남기기
}

설명: 이메일을 전송하고, 전송한 시점을 E2 셀에 로그로 기록합니다.

  • sheet.getRange(“E2”).setValue(new Date()): 현재 시간을 E2 셀에 입력
    → 이메일 전송 이력 관리, 기록 기반 추적 시스템, 중복 전송 방지를 위한 기본 구현으로 활용됩니다.
    실제 사용 시에는 E열 전체에 로그를 남기도록 반복 루프와 함께 구현하는 확장도 가능합니다.
  • MailApp.sendEmail()로 전송 후

구글 시트 자동 알림 만들기 이런 때 쓰면 좋아요

상황설명
마감일 하루 전 알림 필요날짜 조건 기반 자동 메일 전송
팀 업무 분배 후 상황 체크특정 조건의 행 필터링 후 메일 전송
셀 변경 감지 필요onEdit를 통해 변경 즉시 반응
매일 정해진 시간 자동 메일 전송트리거를 통한 주기적 실행 설정 가능

구글 시트 자동 알림 만들기 사용 시 주의사항

주의사항설명
Gmail 전송 제한일일 전송량 제한(개인: 약 100건) 있음
트리거 작동 오류스크립트에 오류 있으면 트리거도 중단됨
셀 참조 오류비어있는 셀이나 잘못된 셀은 예외 처리 필요
권한 설정 필요처음 실행 시 스크립트 접근 권한 요청 발생

실무 활용 팁 💡

  • MailApp은 단순 메일 전송에 적합하지만 첨부파일이 필요하다면 GmailApp도 활용 가능합니다.
  • 팀 공용 시트에서는 팀원 메일 주소를 자동으로 수집해 알림 대상자로 사용할 수 있습니다.
  • 트리거는 Apps Script 대시보드에서 쉽게 관리 가능하니 주기적 확인을 추천합니다.
  • 내가 가지고 있는 주식이 올라갔거나 내려갔을때 알림을 받고 싶으세요? 그러면 GOOGLEFINANCE 함수를 사용한 자동화된 투자보고서에서 활용할수 있습니다.

링크 🔗

가져온 곳: Google Apps Script 공식 문서

댓글 남기기