Gemini 회의록을 Pipedrive에 자동 등록하는 Google Apps Script 연동법

Gemini 회의록을 Pipedrive에 자동 등록하는 Google Apps Script 연동법

TL;DR
Gemini 회의록 → Pipedrive Note 자동 등록 파이프라인을 서버 없이 Google Apps Script로 구현했습니다.
핵심 단계는 세 가지입니다.
1) Drive 신규 파일 감지 및 본문 추출, 2) Pipedrive Deal 매칭, 3) Note 자동 생성 및 이력 로깅.
팀이 손댈 것이 없는 구조를 만드는 게 전파의 핵심이었습니다.

AE들이 하루치 미팅을 몰아서 CRM에 적는 패턴은 어느 팀이나 생깁니다.
리드로서 이 문제에 대해 고민하게 되었고, Gemini가 이미 회의록을 만들고 있다는 사실을 확인하고 이를 활용하고자 했습니다.
결과적으로 미팅로그 누락 없이 Pipedrive에 전체 회의 맥락이 자동으로 쌓이는 구조를 만들었습니다.

준비물

따라하기 전에 아래 항목을 먼저 확인하세요.

  • Google Workspace 계정 (Gemini 회의록 생성 옵션이 활성화된 상태)
  • Pipedrive 계정 + API 토큰 (Settings → Personal Preferences → API에서 발급)
  • Google Drive 폴더 — Gemini 회의록이 자동 저장되는 위치 확인
  • Google Sheets — 처리 이력 로깅용 시트 하나 생성
  • clasp 설치 (로컬에서 편집 후 Apps Script 배포 시 선택 사항, 없어도 무방)
Pipedrive에 자동 등록된 Gemini 회의록

1. Gemini 회의록 자동 생성 확인 및 Drive 폴더 감지 설정

Google Meet에서 회의가 종료되면 Gemini가 Google Docs 형식으로 회의록을 자동 생성합니다.
파일은 회의 주최자의 Drive에 저장됩니다. 먼저 이 폴더 ID를 확인하세요.

Apps Script에서는 5분 단위 시간 기반 트리거를 설정하고, 마지막 실행 시각 이후에 생성된 파일만 감지합니다.
아래 코드가 감지 로직의 핵심입니다.

const FOLDER_ID = 'YOUR_DRIVE_FOLDER_ID'; // Gemini 회의록 저장 폴더
const SHEET_NAME = 'ProcessedLog'; // 처리 이력 시트 이름

function detectNewMeetingNotes() {
  const props = PropertiesService.getScriptProperties();
  const lastRun = new Date(props.getProperty('LAST_RUN_TIMESTAMP') || 0);
  const folder = DriveApp.getFolderById(FOLDER_ID);
  const files = folder.getFiles();

  while (files.hasNext()) {
    const file = files.next();
    // 마지막 실행 이후 생성된 파일만 처리
    if (file.getDateCreated() > lastRun) {
      processMeetingNote(file);
    }
  }
  props.setProperty('LAST_RUN_TIMESTAMP', new Date().toISOString());
}

트리거는 Apps Script 편집기 → 트리거 메뉴에서 “시간 기반 / 5분마다”로 설정합니다.

2. 회의록 본문 추출 및 Pipedrive Deal 매칭

Gemini가 생성한 Google Docs는 DocumentApp.openById()로 읽히지 않는 경우가 있습니다.
HTTP export 방식으로 plain text를 추출하는 것이 안정적입니다.

본문을 추출한 뒤에는 파일명을 파싱해 거래명과 AE명을 뽑아내고, Pipedrive Deal을 검색합니다.
거래명 매칭은 완전 일치 → 부분 일치 → 정규화 매칭 순서로 3단계 fallback을 적용했습니다.

function extractDocText(fileId) {
  const url = `https://docs.google.com/document/d/${fileId}/export?format=txt`;
  const res = UrlFetchApp.fetch(url, {
    headers: { Authorization: `Bearer ${ScriptApp.getOAuthToken()}` }
  });
  return res.getContentText();
}

function findPipedriveDeal(dealName, apiToken) {
  const base = 'https://api.pipedrive.com/v1';
  // 1단계: 완전 일치 검색
  let res = UrlFetchApp.fetch(
    `${base}/deals/search?term=${encodeURIComponent(dealName)}&api_token=${apiToken}`
  );
  const data = JSON.parse(res.getContentText());
  if (data.data && data.data.items.length > 0) return data.data.items[0].item.id;

  // 2단계: 정규화 후 재시도 (괄호·접두사 제거)
  const normalized = dealName.replace(/\[.*?\]|\(.*?\)/g, '').trim();
  res = UrlFetchApp.fetch(
    `${base}/deals/search?term=${encodeURIComponent(normalized)}&api_token=${apiToken}`
  );
  const data2 = JSON.parse(res.getContentText());
  return data2.data && data2.data.items.length > 0 ? data2.data.items[0].item.id : null;
}

3. Pipedrive Note 자동 생성 및 Sheets 이력 로깅

Deal ID를 찾으면 회의록 요약 본문과 원본 Docs 링크를 묶어 Note로 등록합니다.
처리 결과는 Google Sheets에 한 줄씩 기록해 중복 처리를 방지합니다.

function createPipedriveNote(dealId, content, docUrl, apiToken) {
  const noteBody = `${content}\n\n---\n원본 회의록: ${docUrl}`;
  UrlFetchApp.fetch('https://api.pipedrive.com/v1/notes', {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify({
      deal_id: dealId,
      content: noteBody,
      api_token: apiToken
    })
  });
}

function logToSheet(fileName, dealId, status) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet()
                  .getSheetByName(SHEET_NAME);
  // 파일명, Deal ID, 처리 상태, 타임스탬프 기록
  sheet.appendRow([fileName, dealId, status, new Date().toISOString()]);
}

Sheets 이력이 있으면 다음 실행 시 이미 처리된 파일을 건너뛸 수 있습니다.
파일명을 키로 체크하거나, 별도 처리완료 컬럼을 두는 방식 모두 작동합니다.

Claude Code 마스터 프롬프트 — 글 전체 재현

Google Meet 미팅이 끝나면 Gemini 가 자동 생성한 회의록을 Pipedrive Deal 의 Note 로 자동 등록하고 싶습니다.

기술 스택: Google Apps Script (서버 인프라 0), Google Drive/Docs API, UrlFetchApp 으로 Docs HTTP export, Pipedrive REST API, Google Sheets (처리이력 로깅), clasp (로컬 편집 → 배포).
환경 변수: PIPEDRIVE_API_TOKEN, PIPEDRIVE_DOMAIN, MEETING_NOTES_FOLDER_ID.

다음 순서로 단계별로 함께 만들어 주세요. 각 단계마다 검증 명령을 함께 알려 주세요.

1단계: clasp 로 Apps Script 프로젝트 생성 + 시간 기반 트리거(매 5분) 설정. LAST_RUN_TIMESTAMP 이후 신규 회의록 파일을 Drive 에서 감지. 검증: 새 회의록 생성 시 trigger 가 fire 되어 로그에 파일 ID 가 찍히는지.
2단계: 파일명에서 거래명·AE 명을 파싱하고 Pipedrive Deal 검색(3단계 fallback: 정확 일치 → 괄호·접두사 제거 → 부분 일치). 회의록 본문은 UrlFetchApp 으로 Google Docs HTTP export(plain text) 추출. 검증: 신규 회의록 1건이 정확한 Deal 에 매칭되는지.
3단계: 매칭된 Deal 에 회의록 요약 + 원본 링크를 Note 로 추가. Google Sheets 처리이력 시트에 (timestamp, file_id, deal_id, status) 기록. 검증: Pipedrive Deal Note 에 회의록 + 링크가 보이고 Sheets 에 행이 추가됐는지.

마무리

위의 프롬포트를 활용해서 실무에 적용할 만한 MVP를 만들어보세요!

먼저 Google Meet 설정에서 Gemini 회의록 자동 생성이 켜져 있는지 확인하고, 사용 중이신 CRM의 API 문서를 열어서 Note 엔드포인트를 찾으세요.
어렵다? 바로 클로드코드나 클로드에게 API 문서를 전달해주시고 요청사항을 말씀하시면 됩니다!
방법은 모두 공유 드렸어요 🙂

이 시스템을 왜 만들었고, 팀 운영에 어떤 변화를 가져왔는지는 회고 글에 풀었습니다 → Gemini × Pipedrive 자동 연동 회고 — 미팅 히스토리 누락 없는 구조 만들기


글쓴이: YJ — 여행/레저 플랫폼부터 이커머스 SaaS까지 14년간 세일즈/Revenue Growth를 만들어왔습니다. 매일 업무에 AI를 쓰며 검증한 활용법을 기록합니다.


Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top