지난 글에서 구글시트에 600명의 고객 DB를 어떻게 구축했는지를 공유했습니다.
DB를 만들었으면 이제 써먹어야 합니다. 고객 DB의 가치가 가장 극적으로 드러나는 순간이 바로 메일 발송입니다.
“봄 시즌에 행사 니즈가 높은 A등급 고객 30명에게, 각자의 이름과 소속을 넣은 개인화된 제안 메일을 동시에 보낸다” — 이게 수동으로는 1~2시간이 걸리지만, 메일머지로는 5분이면 끝납니다.
이 글은 구글시트에서 메일머지를 구현하는 방법을 3가지로 정리한 실무 가이드입니다.
각 방법의 장단점과, 어떤 상황에 어떤 방법이 맞는지를 정리했습니다.
메일머지란 무엇인가
메일머지(Mail Merge)는 하나의 템플릿에 각 수신자의 정보를 자동으로 끼워 넣어 개별 메일로 발송하는 기능입니다.
예를 들어 이런 템플릿이 있다고 해봅시다.
안녕하세요, {이름}님.
{소속}의 발전을 기원합니다.
저희가 {이름}님께 도움이 될 수 있는 서비스를 소개드리고 싶어…
이 템플릿에서 {이름}과 {소속} 부분을 고객 DB의 각 행에 있는 값으로 치환하면, 30명에게 보내는 메일이 모두 “김철수님 / 삼성전자”, “이영희님 / LG전자”처럼 개인화됩니다.
받는 사람 입장에서는 자신만을 위해 쓴 메일처럼 느껴지죠.
수동으로 하자면, 메일을 열고 → 이름 바꾸고 → 소속 바꾸고 → 발송하고 → 다음 사람 메일을 열고 → 반복.
30명이면 최소 1시간이 걸립니다.
그리고 중간에 이름을 잘못 복사해서 “안녕하세요, 이영희님 / 삼성전자”라는 메일을 보내게 되는 사고도 한 번쯤은 일어납니다.
메일머지는 이 과정을 자동화합니다.
방법 1 — Gmail 기본 기능 ‘이메일 대량 발송’ (가장 쉬움)
Google Workspace 유료 플랜 사용자에게만 제공되는 기능입니다.
2023년부터 Gmail에 정식 내장됐습니다.
어떻게 쓰나
Gmail에서 새 메일을 작성할 때, ‘받는 사람’ 옆의 ‘이메일 대량 발송 사용’ 버튼을 클릭하고, 수신자 리스트를 구글시트에서 불러오면 됩니다. 본문에 @이름, @성 같은 병합 태그를 넣으면 각 수신자의 정보로 자동 치환됩니다.
발송 후 Gmail ‘보낸편지함’을 열면 각 수신자에게 개별 발송된 메일을 확인할 수 있습니다.
장점
- 코드 불필요 — 설치할 것도, 작성할 스크립트도 없습니다
- Gmail 인터페이스 그대로 — 평소 메일 쓰던 방식과 동일
- 수신 거부 링크 자동 삽입 — 메일 하단에 자동으로 붙어 CAN-SPAM 준수
단점
- 유료 전용 — 무료 Gmail 계정에서는 사용 불가
- 발송 이력 관리 안 됨 — 누구에게 언제 어떤 메일을 보냈는지 시트에 기록되지 않음
- 영업 단계 자동 업데이트 안 됨 — 발송 후 고객 DB의 “영업 단계”를 수동으로 바꿔야 함
누구에게 적합한가
이미 Google Workspace를 쓰고 있고, 가끔씩 간단한 공지 메일을 대량 발송하는 정도라면 이 방법이 가장 간편합니다.
다만 영업 관리와 연동되지 않는다는 치명적 약점이 있어서, 고객 관계 관리가 목적이라면 부족합니다.
방법 2 — Apps Script로 직접 구현 (무료, 커스터마이징 자유)
구글시트의 내장 스크립트 도구인 Apps Script를 이용해 메일머지를 직접 구현하는 방법입니다. 무료 Gmail 계정에서도 작동합니다.
기본 원리
구글시트의 고객 DB에서 수신자 목록을 읽어오고, 각 행의 정보로 템플릿을 치환한 뒤, GmailApp.sendEmail() 함수로 발송합니다.
간단한 예시 코드는 이렇습니다.
function sendMailMerge() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var template = "안녕하세요, {이름}님.\n{소속}의 발전을 기원합니다.";
for (var i = 1; i < data.length; i++) {
var name = data[i][0]; // A열: 이름
var company = data[i][1]; // B열: 소속
var email = data[i][2]; // C열: 이메일
var body = template
.replace("{이름}", name)
.replace("{소속}", company);
GmailApp.sendEmail(email, "안내 메일", body);
}
}스크립트 편집기에서 이 코드를 저장하고 실행 권한을 승인하면, 시트에서 직접 메일이 발송됩니다.
장점
- 무료 — 일반 Gmail 계정에서도 사용 가능
- 완전한 커스터마이징 — 발송 이력 기록, 영업 단계 업데이트, 조건부 발송 등 원하는 대로 확장 가능
- HTML 메일 지원 —
htmlBody옵션으로 디자인 메일 발송 가능
단점
- 코드 작성 필요 — 자바스크립트를 모르면 진입 장벽이 있습니다
- 디버깅 필요 — 처음 실행 시 권한 승인, 오류 해결 등 시행착오 발생
- 유지보수 부담 — 필드가 바뀌거나 기능을 추가할 때마다 코드를 수정해야 함
발송 한도를 꼭 확인하세요
Gmail의 일일 발송 한도는 반드시 알고 있어야 합니다.
| 계정 종류 | 일일 발송 한도 |
|---|---|
| 무료 Gmail | 100통/일(안정적) |
| Google Workspace (유료) | 2,000통/일 |
Apps Script로 발송해도 이 한도는 동일하게 적용됩니다.
한도를 초과하면 계정이 일시 정지되거나 최악의 경우 영구 제한될 수 있으니, 수백 명 단위의 발송을 계획한다면 유료 Workspace 전환을 고려해야 합니다.
무료 Gmail에 경우 정확한 발송 한도가 공개되어있지 않으나 100통이 넘어가면 일시 중단이 되는 경우가 있습니다.
누구에게 적합한가
개발 경험이 있고, 자신의 업무에 완벽하게 맞는 시스템을 구축하고 싶은 분이라면 이 방법이 가장 유연합니다.
다만 구현과 유지보수에 시간이 꽤 듭니다.
방법 3 — 완성된 메일머지 시스템 사용 (시간 절약)
직접 코드를 짜지 않고, 이미 구축된 시스템을 사용하는 방법입니다.
크게 두 가지 선택지가 있습니다.
3-1. 무료 애드온 활용
구글시트 마켓플레이스에서 ‘Mail Merge’ 키워드로 검색하면 여러 무료 애드온이 나옵니다. 대표적으로 Yet Another Mail Merge (YAMM), Mailmeteor 등이 있습니다.
장점: 무료 버전 제공, 설치만 하면 바로 사용 가능
단점: 무료 버전은 일일 발송 수 제한(보통 50~75통), 한국어 지원 부족, 유료 전환 압박, 영업 관리 기능은 없음
애드온은 메일 발송만 해결합니다. “누구에게 언제 어떤 메일을 보냈는지” 기록하고, “영업 단계를 자동으로 업데이트하는” 기능은 제공하지 않습니다. 이 부분은 여전히 수동으로 관리해야 하죠.
3-2. CRM 기능이 내장된 템플릿 사용
메일머지뿐만 아니라 발송 이력 자동 기록, 영업 단계 업데이트, 대시보드 연동까지 모두 포함된 템플릿을 사용하는 방법입니다.
예를 들어 제가 직접 만들어 쓰고 있는 SalesSheet의 경우, 사용 흐름이 이렇습니다.
- 고객 DB 시트에서 발송할 대상을 체크박스로 선택
- 메뉴에서 발송할 템플릿을 선택 (초기 안내 / 서비스 제안 / 팔로업 중)
- 미리보기 확인 후 발송 버튼 클릭
- 발송 완료 시 자동으로:
- 해당 고객의 영업 단계가 “메일발송”으로 업데이트
- 최종 연락일이 오늘 날짜로 기록
- 발송 이력 시트에 누구에게 언제 어떤 템플릿으로 보냈는지 기록
30명에게 발송할 때 실제 소요 시간이 5분 미만입니다.
누구에게 적합한가
코드를 짜고 싶지 않고, 단순 메일 발송을 넘어 영업 관리와 연동된 시스템이 필요한 분.
대부분의 소규모 사업자가 여기 해당합니다.
세 가지 방법 비교표
| 구분 | Gmail 대량 발송 | Apps Script 직접 | 완성된 템플릿 |
|---|---|---|---|
| 비용 | Workspace 유료 필요 | 무료 | 템플릿 구매비 |
| 코딩 | 불필요 | 필요 | 불필요 |
| 구현 시간 | 즉시 | 수 시간~수 일 | 즉시 |
| 발송 이력 기록 | ✗ | 구현 가능 | ✓ |
| 영업 단계 자동 업데이트 | ✗ | 구현 가능 | ✓ |
| HTML 디자인 메일 | △ | 구현 가능 | ✓ |
| 커스터마이징 | 제한적 | 완전 자유 | 옵션 수정 가능 |
메일머지 사용 시 주의사항 3가지
어떤 방법을 선택하든, 메일머지를 실무에서 쓸 때는 아래 3가지를 반드시 확인해야 합니다.
1. 일일 발송 한도를 반드시 확인
앞서 말씀드린 대로 무료 Gmail은 100통, Workspace는 2,000통입니다.
이 한도는 24시간 동안 균등 적용되니 “오전에 몰아 보내고 오후에 또 보내기”는 불가능합니다.
한도 초과 시 계정이 일시 정지될 수 있으니, 발송 수가 많은 날은 계획적으로 분산해야 합니다.
2. 변수 치환 오류 확인
{이름} 변수가 정상적으로 치환되지 않으면, 수신자가 “안녕하세요, {이름}님”이라는 메일을 받게 됩니다. 이건 신뢰도에 치명적입니다. 본 발송 전에 반드시 본인 이메일로 테스트 발송을 먼저 하세요.
그리고 고객 DB에 이메일 주소가 비어있는 고객은 자동으로 건너뛰는 로직이 있어야 합니다. 안 그러면 빈 주소로 발송 시도가 이루어져 오류가 발생합니다.
3. 스팸 방지
같은 내용의 메일을 한꺼번에 수백 통 보내면 Gmail이 스팸으로 분류하거나, 수신자 쪽에서 스팸 필터에 걸릴 수 있습니다. 이를 줄이려면:
- 수신자마다 내용이 다르게 보이도록 변수를 최소 2~3개 포함 (이름, 소속, 직함 등)
- 한 번에 너무 많이 보내지 말고 50~100통씩 나눠 발송
- 수신 거부 링크 포함 (법적으로도 권장)
- 발신 주소는 실명 + 실제 서명 포함하여 업무 메일 형식 유지
정리하며
메일머지는 고객 DB의 가치를 실제 매출로 바꾸는 가장 강력한 도구입니다.
30명에게 개인화된 메일을 5분 만에 보낼 수 있게 되면, 영업의 양과 질이 동시에 올라갑니다.
방법 선택 기준을 요약하면 이렇습니다.
- Google Workspace 이미 쓰고, 단순 공지만 보낸다면 → Gmail 이메일 대량 발송
- 개발 경험 있고, 완벽한 맞춤 시스템이 필요하다면 → Apps Script 직접 구현
- 시간 절약하고, 영업 관리까지 연동하려면 → 완성된 CRM 템플릿
다음 글에서는 구글시트에서 팔로업 타이밍을 놓치지 않는 자동 알림 만드는 법을 다루겠습니다.
DATEDIF 수식과 조건부 서식만으로 “7일 이상 연락 없는 고객”을 빨간색으로 자동 표시하는 실전 팁입니다.
이 글에서 소개한 ‘방법 3 — CRM 기능이 내장된 템플릿’이 필요하시다면, 제가 실제 영업 현장에서 사용하며 만든 SalesSheet을 확인해보세요.
체크박스로 대상 선택 → 템플릿 선택 → 클릭 한 번으로 발송이 완료되고, 영업 단계와 발송 이력이 자동 기록됩니다.
다음 글 예고: “팔로업 타이밍을 놓쳐 계약을 날린 경험 — 구글시트로 자동 알림 만드는 법”
