brunch

실험 #1: 구글독스로 더 똑똑한 이메일 답장 생성하기

Make + ChatGPT 자동화

by 박경아

◆ 오늘의 실험: Make + ChatGPT + 구글 독스로 맥락 있는 답변 생성하기


Make로 이메일 답장 자동화를 만들면서 아쉬웠던 점이 ChatGPT가 참고할 수 있는 정보가 프롬프트에 하드코딩된 기본 정보뿐이었다는 거였습니다. '우리 회사 서비스 상세 정보나 최신 업데이트 내용을 좀 더 실시간으로 반영할 수는 없을까?' 하는 의도에서 시작된 오늘의 실험입니다.



▶ 실험 배경 및 가설

실험 배경:

이전 실험의 한계: 프롬프트에 하드코딩된 회사 정보

현실적 문제: 서비스, 가격 업데이트, 새로운 FAQ 등이 생길 때마다 Make 워크플로우를 수정해야 함

구글 독스의 가능성: 팀원 누구나 쉽게 편집할 수 있는 문서를 ChatGPT가 실시간으로 참고할 수 있다면?


실험 가설:

유지보수성: 구글 독스로 정보 관리하면 비개발자도 쉽게 업데이트 가능할 것

답변 품질: 업데이트된 정보를 바탕으로 더 정확한 ChatGPT 답변 생성이 가능할 것

효율성: 구글 독스에서 문의 유형별로 필요한 섹션만 선별적으로 추출하여 ChatGPT에 전달하는 것이 전체 문서를 통째로 넣는 것보다 ChatGPT API 비용 측면에서 효율적일 것



⚙️ 실험 설계

사용 도구:

Make: Gmail 트리거 → Google Docs → Text Parser → Router → ChatGPT → Gmail 초안 작성

ChatGPT API: 컨텍스트를 활용한 맞춤형 답변 생성

구글 독스: 회사 정보 데이터베이스 역할

AD_4nXcMxe_TlqtdlXL1A4_vOMmNZ3BOHzEGMYMv5WQzC7zUrEAo118Gp2MrieKbDiyZjoNjrZJiFbUNF6XmDwKzw8jhj2PT8iqk_VyZjaBiC4Qxj6x_-RSmcmpzxB-8aKUqHcmpMdoH9A?key=LcvUBET2ufqB0Ta7mzxvHA Make 이메일 자동화 워크플로우 (구글독스 참고)


구글독스 설계

문서를 섹션별로 나누어 구성했습니다 (예시)


# 회사 소개

MDS AUTO는 AI 업무 자동화 전문 컨설팅 회사입니다…


# 서비스 포트폴리오

1. DIY 교육 패키지

- 온라인 강의: Make, ChatGPT 활용법

- 실습 워크숍: 월 2회 진행

- 가격: 월 99,000원

2. 맞춤형 컨설팅

- 요구사항 분석부터 구현까지 원스톱 서비스

- 평균 프로젝트 기간: 4-6주

- 가격: 프로젝트당 300만원~


# 서비스 제공 방식

MDS AUTO는 고객의 니즈에 맞춘 맞춤형 서비스를 제공합니다…


# 가격 정보

번들 유형별 상세 가격표…


# 자주 묻는 질문 (FAQ)

Q: 프로그래밍 지식이 없어도 가능한가요?


A: 네, 저희 교육은 비개발자를 위해 설계되었습니다…


# 연락처 정보

이메일: contact@mdsauto.ai

전화: 02-123-4567



▶ 실험 진행 과정

1단계: Gmail 트리거 설정

Make에서 Gmail 'Watch Emails' 모듈을 선택해 새로운 이메일이 들어올 때마다 이메일 내용을 가져오도록 설정했습니다.


구현 시 주의사항!

개인 Gmail 계정을 Make에서 사용하려면 Google Cloud Platform(GCP)에서 커스텀 OAuth 인증 설정이 필요합니다.


2단계: 구글 독스 연동

Google Docs "Get Content of a Document" 모듈을 추가하여 회사 정보가 담긴 문서를 실시간으로 가져오도록 설정했습니다.


3단계: Text Parser로 섹션별 정보 추출 (핵심 난관)

이 부분이 가장 핵심이었습니다. 전체 문서에서 필요한 섹션만 추출하는 단계로, Text Parser의 Match Pattern 모듈을 사용했습니다.


첫 번째 시도 - Match Pattern + Global Match (복잡함)

정규식: # (.*?)\n([\s\S]*?)(?=\n#|$)

해석: #로 시작하는 제목과 다음 섹션 시작 전까지의 모든 내용을 캡처

결과: 6개의 번들 생성 (Bundle1~Bundle6) → 각 데이터를 후속 모듈에서 사용하기 위해서는 Array Aggregator를 통해 한 꺼번에 전달하고 다시 Iterator + 필터 등을 활용해 개별 정보를 활용해야 해서 추가설정이 복잡해짐 (포기)

AD_4nXek3xxDtDlnm_qKP2QEzSbGV2aMAAOPLpOoAGccC_E8aEz2JLk38PlIITr3UcC7i4Ggl9h1xDAIfJLVmYhJC1dunMt8Sja8Q9vHyzlVZ1HV-Qzhmn31VtpoT6gerer3nPogSGouMQ?key=LcvUBET2ufqB0Ta7mzxvHA Match Pattern + Global Match로 정보 추출하기


두 번째 시도 - 통합 정규식 패턴 (성공!)

정규식: # (회사 소개)\n([\s\S]*?)# (서비스 포트폴리오)\n([\s\S]*?)# (서비스 제공 방식)\n([\s\S]*?)# (가격 정보)\n([\s\S]*?)# (자주 묻는 질문 \(FAQ\))\n([\s\S]*?)# (연락처 정보)\n([\s\S]*)

해석: 각 섹션의 정확한 제목을 찾고 해당 내용을 개별 그룹으로 저장

결과: 하나의 번들에 12개의 변수(제목 6개 + 내용 6개) 생성, 후속 모듈에서 필요한 정보(변수)만 선택해 사용 가능

Untitled design.png Match Pattern - 통합 정규식 패턴으로 정보 추출하기


4단계: Router로 문의 유형별 분류

이메일 제목의 키워드에 따라 문의 유형을 분류하고, 각 유형에 맞는 맞춤형 답변을 생성하도록 설정:

회사 문의 경로

제목 키워드: "회사", "소개", "사업", "미팅"


서비스/가격 문의 경로

제목 키워드: "서비스", "상품", "가격", "비용", "견적"


기술 지원 경로

제목 키워드: "문제", "오류", "도움", "지원"


5단계: ChatGPT 프롬프트 최적화

각 경로마다 해당 섹션 정보를 컨텍스트로 제공하는 프롬프트를 작성했습니다.


시스템 메시지

당신은 MDS AUTO의 친절하고 전문적인 이메일 작성 어시스턴트입니다.

답변 지침:

1. 존댓말로 정중하게 응답하세요

2. 고객이 문의한 핵심 내용에 집중해서 답변하세요

3. 간결하면서도 필요한 정보는 빠뜨리지 마세요

4. 구체적인 수치나 가격 정보를 정확히 제공하세요

5. 추가 문의나 상담 방법을 자연스럽게 안내하세요


참고 정보:

{{14.1}}: {{14.2}} // 회사 소개

{{14.7}}: {{14.8}} // 가격 정보


사용자 메시지

고객 문의 내용:

발신자: {{1.from.name}}

제목: {{1.subject}}

내용: {{1.text}}

위 문의에 대해 고객이 궁금해하는 핵심 사항들을 파악하여 명확하고 친절한 답변을 작성해주세요.


6단계: Gmail 초안 저장

ChatGPT가 생성한 답변을 Gmail "Create a Draft" 모듈을 통해 초안으로 저장하여 검토 후 발송할 수 있도록 했습니다.



★ 실험 결과

✅ 성공한 부분:

1. Text Parser(Match Pattern)가 생각보다 강력했다

Match Pattern를 활용해 필요한 내용만 정확히 추출하여 맞춤 답변 생성을 위한 정보 제공 가능

구글독스 업데이트 내용이 즉시 이메일 답변 생성에 반영됨 (가격을 변경했더니 바로 반영)


❌ 아쉽거나 어려운 부분:

1. 답변 품질 향상은 예상보다 제한적

ChatGPT가 주어진 정보에서 필요한 부분을 잘 선별하는 능력

참고할 문서가 길지 않은 경우 전체를 제공하는 경우나 섹션별로 정보를 추출해서 주는 경우 답변 품질에 큰 차이가 없는 것으로 보임


2. 문서 구조 의존성

구글 독스의 섹션 제목이나 구조가 바뀌면 Text Parser 정규식 수정 필요

팀원들이 임의로 구조를 변경할 위험성


� 예상치 못한 발견:

1. 번들과 배열의 차이점 이해

Global Match로 여러 결과가 나오면 각각이 별도 번들이 되어 후속 모듈에서 활용 어려움. Make는 번들을 하나씩 순차적으로 처리하는 특성이 있어 전체 번들 데이터를 한 번에 후속 모듈로 전달하고 활용하려면 Array Aggregator → Iterator, 필터 등의 추가 설정 필요

하나의 통합 패턴으로 여러 캡처 그룹을 만들면 하나의 번들 안에 여러 변수가 생성되어 후속 모듈에서 {{14.1}}, {{14.2}} 등으로 직접 활용 가능

2. Match Pattern vs Match Elements

Match Elements는 정규식을 직접 지원하지 않음 (이메일, 전화번호 등 사전 정의된 요소만 추출)

복잡한 텍스트 추출에는 Match Pattern이 더 적합



★ 핵심 인사이트 및 적용 방안

핵심 인사이트:

워크플로우 내 프롬프트 수정 없이도 자동으로 새로운 FAQ, 가격 변경 등 정보 반영 가능

정보 관리의 중요성: 좋은 답변의 핵심은 참고할 수 있는 정보의 품질과 함께 프롬프트 최적화


당장 적용해볼 만한 것들:

자주 변경되는 정보(가격, 일정, 연락처)는 구글 독스로 분리 관리

FAQ 문서를 별도로 만들어서 직접 관리할 수도

제품/서비스 상세 정보를 구조화된 문서로 정리


이번 실험에서 구글 독스를 통해 실시간으로 변경되는 정보를 제공할 수 있다는 점은 좋았지만, 참고 문서가 길지 않은 경우 필요한 정보만 추출해서 주었을 때와 전체 정보를 주었을 때 답변 퀄리티의 차이는 생각보다 제한적이였습니다.


참고 문서가 긴 경우는 섹션별로 추출하거나 별도로 여러 개 문서를 만들어서 참고하는 방법이 있을 것 같고, 무엇보다 정보의 품질과 함께 원하는 답변 스타일을 만들기 위한 프롬프트 최적화도 중요하다는 걸 깨달았습니다.


다음 실험일지에서는 같은 상황에서 프롬프트를 어떻게 구성해야 가장 원하는 답변 스타일을 얻을 수 있는지 테스트해보려고 합니다.


여러분의 의견은?

Make와 AI로 자동화해 본 소감이나 팁이 있다면 나눠주세요!

프롬프트 최적화에 대한 경험이나 아이디어가 있으시다면 댓글로 알려주세요.


keyword