구글 워크스페이스

구글 앱스 스크립트로 자동 PDF 생성 및 이메일 발송 기능 만들기

linchpinist 2025. 7. 9. 14:27

 

목차

반복되는 문서 발송도 자동화할 수 있다
Docs 기반 PDF 생성 및 메일 전송 기본 구조
실무 확장 적용 시나리오와 자동화 전략
시스템이 일하고 사람은 전략을 생각하게 하라

 

 

반복되는 문서 발송도 자동화할 수 있다

:문서를 만들고 보내는 작업도 자동화할 수 있다

많은 조직에서 매주 혹은 매달 반복되는 문서 작성과 이메일 발송 작업이 있다.
예를 들어 주간 리포트, 견적서, 회의록, 프로젝트 보고서, 영수증 발행 등은 항상 같은 양식으로 작성되고, 특정 담당자에게 메일로 보내는 루틴이 반복된다.
이러한 작업을 매번 수동으로 한다면 단순 반복에 시간을 빼앗기고, 실수가 발생할 확률도 높아진다.
Google Workspace는 Google Docs, Sheets, Drive, Gmail을 포함한 강력한 문서/메일 플랫폼을 제공하며, Google Apps Script를 활용하면 이 플랫폼 위에서 문서 작성 → PDF 변환 → 자동 이메일 발송까지 전 과정을 자동화할 수 있다.
이번 글에서는 Google Apps Script를 기반으로, 실무에서 자주 활용되는 문서 양식을 자동으로 작성하고 PDF로 변환한 후, 이메일 첨부 발송까지 처리하는 자동화 흐름을 단계별로 정리해보겠다.

 

 

Docs 기반 PDF 생성 및 메일 전송 기본 구조

: 문서 생성부터 PDF 변환까지 자동화 구조 만들기

이 자동화 시스템은 크게 3단계로 구성된다.


Google Docs 템플릿 준비
Google Sheets 데이터 입력
Apps Script로 문서 자동 생성 및 PDF 변환

a. Google Docs 템플릿 준비
제목 예시: "월간_영업보고서_템플릿"
본문 내 변수 설정:
css
복사
편집
영업팀 보고서
작성자: {{이름}}
보고 기간: {{기간}}
총 매출: {{매출}} 원
성과 요약: {{요약내용}}
이 템플릿은 Google Drive에 저장하며 문서 ID를 복사해둔다.

b. Google Sheets 데이터 구성
시트 이름: 보고서_데이터
항목:
이름 기간 매출 요약내용 이메일
김지훈 2024.05 12,500,000 신규 고객 3건 확보 kim@company.com

c. Apps Script 구성
Google Sheets → 확장 프로그램 → Apps Script 열기
다음 스크립트를 입력한다:

javascript
복사
편집
function createPdfAndSendEmail() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("보고서_데이터");
  const data = sheet.getDataRange().getValues();
  const templateId = "Docs_템플릿_ID_입력";

  for (let i = 1; i < data.length; i++) {
    const name = data[i][0];
    const period = data[i][1];
    const sales = data[i][2];
    const summary = data[i][3];
    const email = data[i][4];

    const template = DriveApp.getFileById(templateId);
    const copy = template.makeCopy(`보고서_${name}_${period}`);
    const doc = DocumentApp.openById(copy.getId());
    const body = doc.getBody();

    body.replaceText("{{이름}}", name);
    body.replaceText("{{기간}}", period);
    body.replaceText("{{매출}}", sales);
    body.replaceText("{{요약내용}}", summary);
    doc.saveAndClose();

    const pdf = DriveApp.getFileById(copy.getId()).getAs("application/pdf");
    MailApp.sendEmail({
      to: email,
      subject: `📄 ${period} 영업 보고서`,
      body: `${name} 님,\n\n${period} 영업 보고서를 첨부드립니다.`,
      attachments: [pdf]
    });
  }
}
이 스크립트는 시트의 각 행을 기반으로 Google Docs 문서를 생성하고, 이를 PDF로 변환하여 지정된 이메일 주소로 자동 전송한다.

d. 실행 방법
스크립트 에디터 > 실행 → createPdfAndSendEmail
또는 시간 기반 트리거 설정 (예: 매월 1일 자동 실행)

이 구조를 통해 보고서 작성 + PDF 변환 + 메일 발송까지 사람이 개입하지 않고 자동으로 진행된다.

 

 

실무 확장 적용 시나리오와 자동화 전략

: 실무 적용 시나리오 및 기능 확장 전략

위 기본 구조는 거의 모든 반복적인 문서-메일 업무에 확장 적용 가능하다.
업무 유형별로 어떤 식으로 활용할 수 있는지, 그리고 실무 효율성을 높이는 확장 전략을 살펴보자.

a. 실무 적용 예시
견적서 자동 발송
제품명, 수량, 단가를 시트에 입력 → 견적서 문서 자동 생성
거래처 메일로 자동 발송
견적 요청 담당자에게 CC 전송
주간 회의록 자동 배포
팀원별 회의 요약 입력 → Docs 템플릿에 삽입
PDF로 변환 후 참석자 전체에게 메일 발송
고객 피드백 요약 리포트 발행
Google Forms로 수집한 설문 결과 요약 → Docs로 변환
리포트 PDF 자동 생성 후 상위 관리자에게 전달

b. 고급 기능 확장
PDF 저장 경로 지정 및 정리 자동화

javascript
복사
편집
const folder = DriveApp.getFolderById("PDF_저장_폴더_ID");
folder.createFile(pdf); // 기존 Drive 루트 대신 폴더 내 저장
이메일 본문에 보고서 요약 포함

javascript
복사
편집
body: `${name} 님,\n이번 달 매출은 ${sales} 원입니다. 자세한 내용은 첨부된 보고서를 참조해주세요.`,
메일 제목/파일명에 날짜 자동 삽입

javascript
복사
편집
const today = Utilities.formatDate(new Date(), "Asia/Seoul", "yyyy-MM-dd");
const filename = `${today}_${name}_보고서.pdf`;
보낸 기록 시트 자동 작성

javascript
복사
편집
sheet.getRange(i + 1, 6).setValue("전송완료");
sheet.getRange(i + 1, 7).setValue(new Date());
전송 실패 감지 및 알림

javascript
복사
편집
try {
  MailApp.sendEmail(…);
} catch (e) {
  Logger.log("전송 실패: " + e.message);
  MailApp.sendEmail("admin@company.com", "보고서 전송 오류", `오류 내용: ${e.message}`);
}
이러한 기능들을 추가하면 PDF 생성 및 이메일 발송 프로세스를 더욱 안정적이고 세밀하게 제어할 수 있는 수준으로 확장된다.

 

 

시스템이 일하고 사람은 전략을 생각하게 하라

:반복되는 문서 메일 업무는 시스템이 대신하게 하라

보고서를 쓰고, PDF로 변환하고, 이메일로 보내는 작업은 누구나 할 수 있지만, 매주 반복된다면 그것은 사람이 할 일이 아니라 시스템이 해야 할 일이다.
Google Apps Script는 복잡한 개발 없이도 Google Workspace 안에서 자동화된 문서 처리 시스템을 만들 수 있는 강력한 도구이며, 그 효과는 업무 속도와 정확도에서 확연히 드러난다.
반복적인 문서-메일 작업을 자동화하면, 실무자는 오롯이 보고서 내용에 집중할 수 있고, 관리자는 언제나 일관된 양식의 리포트를 받을 수 있다.
오늘부터 Google Docs 템플릿 하나 만들고, 시트에 데이터를 넣고, 스크립트를 연결해보자.
그 한 번의 구성으로 수십 번의 반복 업무가 사라질 수 있다.

구글 워크스페이스의 구글 앱스 스크립트의 활용