[개발기] 구글주소록 + 스마트칩으로 구글 시트 CRM 자동화 완성하기

소개

허세임님의 이메일 자동화 사례를 따라 진행하던 중, 한 가지 욕심이 생겼습니다.
'내 주소록에 있는 그룹' 또는 '스마트칩으로 지정한 사람'에게 자동으로 메일을 보낼 수 없을까?

그래서 시작된 이번 프로젝트는 기존 Gmail 자동화에 구글 주소록시트 스마트칩 기능을 결합해, 더욱 실전형 CRM 자동화 시스템을 만드는 것이 목표였습니다.

(나노바나나프로로 CRM 자동화 인포그래픽을 만들었는데.. 음...)

"@사람 스마트칩을 찍거나, 그룹명을 쓰기만 해도 AI가 알아서 메일을 보내준다면 얼마나 편할까?"


진행 방법

사용한 도구 및 기술

  • Gemini - 캡쳐->해결해->또 캡쳐->해결해...

  • Google Apps Script

  • Google People API (주소록 접근)

  • Google Sheets API (스마트칩 파싱)

구현 포인트 요약

  • 📌 그룹 발송: 구글 주소록의 그룹명을 C29 셀에 입력하면 해당 그룹 멤버 전체에게 메일 발송

  • 📌 스마트칩 발송: C30 셀에 여러 명의 @사람 스마트칩 입력 시, 해당 인원에게 발송

  • 📌 이름 자동 치환: 본문 {이름} 템플릿을 수신자의 실제 이름으로 변환하여 발송

  • 📌 중복 제거: 그룹과 스마트칩에 중복된 인원이 있을 경우, 1회만 발송되도록 정제

사��람 이름 이미지가 포함된 Google 스프레드시트의 스크린샷

주요 트러블슈팅 사례

난관 1: "ContactsApp이 작동하지 않아요" (API 세대교체)

  • 문제 상황: 기존에 익숙했던 ContactsApp 서비스가 구글의 정책 변경으로 Deprecated(폐지)되어 사용할 수 없었습니다.

  • 해결: 최신 **People API**로 로직을 전면 교체했습니다.

    • 단순히 이메일만 가져오는 것이 아니라, resourceName(고유 ID)을 통해 그룹 멤버십을 확인하는 방식으로 변경하여 안정성을 높였습니다.

난관 2: "스마트칩을 읽었는데 빈 칸이에요" (데이터 파싱)

  • 문제 상황: 시트에 입력된 @홍길동 스마트칩을 getValue()로 읽으면 텍스트만 읽히거나 데이터가 손실되었습니다.

  • 원인: 스마트칩은 단순 텍스트가 아니라 복잡한 JSON 객체(RichValue)로 셀에 저장됩니다.

  • 해결: Google Sheets API를 직접 호출하여 셀 내부의 chipRuns 데이터를 뜯어보았습니다.

    • 특히 사용자 환경마다 데이터가 peopleChip 필드에 있기도 하고, personProperties 필드에 숨어 있기도 한 점을 발견하여, 두 구조를 모두 체크하는 이중 파싱 로직을 구현했습니다.

난관 3: "이름이 전부 '담당자'로 떠요" (이름 누락 해결)

  • 문제 상황: 스마트칩에서 이메일은 추출했지만, 정작 '이름' 정보가 비어있는 경우가 많았습니다. 이대로 보내면 "안녕하세요 담당자님"이라고 발송되어 CRM의 의미가 퇴색됩니다.

  • 해결: "이메일 역검색(Reverse Lookup)" 기능을 개발했습니다.

    • 스마트칩에서 이메일을 확보함 -> 이 이메일로 내 구글 주소록을 검색 -> 저장된 **'실명(예: 구기모)'**을 가져옴.

    • 이 로직 덕분에 스마트칩에 이름 정보가 없어도, 내 주소록 기반으로 정확한 호칭을 사용할 수 있게 되었습니다.

난관 4: "그룹과 스마트칩에 겹치는 사람이 있어요"

  • 문제 상황: 'VIP 그룹'에도 속해 있고, 스마트칩으로도 따로 추가한 사람은 메일을 두 번 받게 됩니다.

  • 해결: Map 자료구조를 활용하여 이메일 주소를 기준(Key)으로 중복을 완벽하게 제거했습니다.


결과와 배운 점

앱스스크립트로 구글 주소록도 건드릴 수 있다는 점이 신기했습니다.
✅ 단순 자동화를 넘어서, 하이퍼 개인화 CRM 시스템을 직접 구성해보며 실무 활용도가 크게 높아졌습니다.
✅ 특히 스마트칩은 그냥 텍스트가 아니다! 라는 점을 알게 되었고, 반드시 Google Sheets API를 써야 정확한 정보를 얻을 수 있다는 교훈을 얻었습니다.

결국 CRM 자동화의 시작은 고객의 DB를 어떻게 관리하느냐 인 것 같아요. 다음엔 구글주소록을 건드려서 고객과의 히스토리를 자동으로 관리할 수 있는 시스템을 만들어보고 싶습니다.

1

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요