구글 시트 자동 알림 만들기 – 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 공식 문서

댓글 남기기