구글 시트 자동 알림 만들기 해보셨나요?
안녕하세요! 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 공식 문서