바이어 이메일 자동 파이프라인

실습 시간: 4시간 필요 도구: SerpAPI, Firecrawl, Google AI Studio, Google Sheets, Zapier, Gmail 산출물: 자동화된 바이어 이메일 수집 시스템, 맞춤형 콜드 이메일 발송 파이프라인

📚 학습 전 준비 이 워크북은 여러 외부 API를 조합하는 고급 자동화 실습입니다. 다음 내용을 먼저 학습하면 더욱 효과적입니다.


📚 이 워크북에서 배울 것

해결할 문제들

  1. 바이어 연락처 찾기 어려움 → 키워드 검색으로 잠재 바이어 자동 발굴
  2. 이메일 수집 수작업 → 웹사이트에서 이메일 자동 추출
  3. 콜드 이메일 작성 시간 → AI로 맞춤형 이메일 자동 생성
  4. 발송 반복 작업 → 조건 충족 시 자동 발송

전체 워크플로우

flowchart LR
    subgraph 수집
        A[SerpAPI<br/>키워드 검색] --> B[회사 URL 획득]
        B --> C[Firecrawl<br/>이메일 추출]
    end

    subgraph 생성
        C --> D[Google Sheets<br/>데이터 저장]
        D --> E[Gemini API<br/>이메일 초안 생성]
    end

    subgraph 발송
        E --> F[Zapier 감지]
        F --> G[Gmail 발송]
    end

    subgraph 자동화
        H[Apps Script<br/>트리거] -.-> A
    end

사용할 도구들

도구역할무료 플랜링크
SerpAPIGoogle 검색 결과 수집100 searches/월serpapi.com
Firecrawl웹페이지 스크래핑 & 이메일 추출500 creditsfirecrawl.dev
Google AI StudioGemini API 키 발급1,500 req/일aistudio.google.com
Google Sheets데이터 저장 & Apps Script 실행무료sheets.google.com
Zapier자동화 트리거 & Gmail 연동100 tasks/월zapier.com
Gmail이메일 발송무료gmail.com

예상 효과

바이어 발굴: 2주 수작업 → 30분 자동화 (95% 시간 절감)
이메일 수집: 수동 복사 → 클릭 한 번에 100개 수집
콜드 이메일 작성: 30분/건 → 자동 생성 (97% 절감)
발송: 수동 → 조건 충족 시 자동 발송

⚠️ 중요: 법적/윤리적 고려사항

콜드 이메일 발송 전 반드시 확인하세요

항목요구사항
CAN-SPAM Act (미국)수신거부 링크 필수, 발신자 정보 명시
GDPR (EU)정당한 이익 근거 필요, 개인정보 처리 고지
한국 정보통신망법영리목적 광고는 수신동의 필요
일반 원칙비즈니스 이메일만 수집, 스팸성 발송 금지

이 워크북은 B2B 비즈니스 목적의 합법적 아웃리치를 가정합니다.


🎯 학습 전 준비 (40분)

Step 1: API 키 발급

모든 서비스에 가입하고 API 키를 발급받습니다.

1-1. SerpAPI 가입 및 API 키 발급

  1. serpapi.com 접속
  2. “Get Free API Key” 클릭
  3. Google 또는 이메일로 가입
  4. 대시보드에서 API Key 복사
  5. 안전한 곳에 저장

💡 무료 플랜: 월 100회 검색 (테스트에 충분)

1-2. Firecrawl 가입 및 API 키 발급

  1. firecrawl.dev 접속
  2. “Get Started” 클릭
  3. GitHub 또는 이메일로 가입
  4. 대시보드 → API Keys → “Create API Key”
  5. 생성된 키 복사 후 저장

💡 무료 플랜: 500 credits (1 페이지 = 1 credit)

1-3. Google AI Studio API 키 발급

  1. aistudio.google.com 접속
  2. Google 계정으로 로그인
  3. 좌측 메뉴 “Get API key” 클릭
  4. “Create API key” → 프로젝트 선택 또는 새로 생성
  5. 생성된 키 복사 후 저장

💡 무료 플랜: 일 1,500 요청 (Gemini 2.0 Flash)

1-4. Zapier 가입

  1. zapier.com 접속
  2. Google 계정으로 가입
  3. 무료 플랜 선택
  4. (API 키는 나중에 Zap 설정 시 자동 연결)

Step 2: API 키 저장 정리

📋 내 API 키 목록
─────────────────────────────────
SerpAPI:     ________________________________
Firecrawl:   ________________________________
Gemini:      ________________________________
─────────────────────────────────
⚠️ 이 키들은 절대 공개하지 마세요!

💡 실습 1: Google Sheets 템플릿 만들기 (20분)

Step 1: 새 스프레드시트 생성

  1. sheets.google.com 접속
  2. “새 스프레드시트” 생성
  3. 이름 변경: 바이어 이메일 자동화

Step 2: 시트 구조 설정

시트1 이름 변경: Leads (리드 데이터)

헤더설명
Acompany회사명
Bwebsite웹사이트 URL
Cemail추출된 이메일
Dsource_page이메일 발견 페이지 (main/contact/about)
Eemail_subject생성된 이메일 제목
Femail_body생성된 이메일 본문
Gstatus상태 (pending/ready/sent/failed)
Hcreated_at생성 시간
Isent_at발송 시간

첫 번째 행에 헤더 입력:

company | website | email | source_page | email_subject | email_body | status | created_at | sent_at

Step 3: 설정 시트 추가

시트2 생성: Config (설정)

열 A열 B
search_keywordorganic cosmetics distributor USA
my_companyK-Beauty Organic
my_product유기농 한방 스킨케어
my_name홍길동
my_emailyour@email.com
my_titleExport Manager

💡 Tip: 실제 업무에 맞게 Config 값을 수정하세요.

✓ 실습 1 체크 포인트

□ 스프레드시트 생성 완료
□ Leads 시트 헤더 9개 열 입력
□ Config 시트 설정값 입력

💡 실습 2: Apps Script 기본 설정 - Vibe Coding (30분)

핵심 학습: 완성된 코드를 복붙하는 대신, Gemini에게 요구사항을 설명하고 코드를 생성받는 Vibe Coding 방식을 배웁니다. 이 방식을 익히면 어떤 자동화든 직접 만들 수 있습니다.

Step 1: Apps Script 열기

  1. Google Sheets에서 확장 프로그램 → Apps Script 클릭
  2. 새 프로젝트가 열림
  3. 기본 코드 삭제

Step 2: Gemini에게 코드 생성 요청하기

왜 직접 코드를 주지 않나요?

완성된 코드를 복붙하면 당장은 편하지만, 나중에 수정하거나 새로운 자동화를 만들 때 막막해집니다. AI에게 요구사항을 설명하는 법을 배우면 어떤 자동화든 만들 수 있습니다.


2-1. 기본 구조 생성 요청

Gemini 또는 AI Studio에 다음 프롬프트를 입력하세요:

Google Apps Script로 바이어 이메일 자동화 시스템을 만들어줘.

## 환경
- Google Sheets에서 실행
- 시트 구조: Config (설정), Leads (바이어 목록)

## 필요한 기능

### 1. 메뉴 시스템 (onOpen)
시트를 열면 "🤖 바이어 자동화" 메뉴가 추가되어야 해:
- "1️⃣ 바이어 검색 (SerpAPI)" → step1_searchBuyers 함수
- "2️⃣ 이메일 추출 (Firecrawl)" → step2_extractEmails 함수
- "3️⃣ 이메일 초안 생성 (Gemini)" → step3_generateEmails 함수
- 구분선
- "🔄 전체 실행 (1→2→3)" → runFullPipeline 함수

### 2. 유틸리티 함수들
- getSheet(name): 시트 이름으로 시트 객체 가져오기
- getConfig(key): Config 시트에서 설정값 읽기 (A열: 키, B열: 값)
- addLead(company, website): Leads 시트에 새 행 추가
- updateLead(row, updates): 특정 행의 여러 컬럼 업데이트
- getLeads(): Leads 시트의 모든 데이터를 객체 배열로 반환

### 3. API 키 설정
코드 상단에 다음 변수 선언 (사용자가 수정할 부분):
- SERPAPI_KEY
- FIRECRAWL_KEY
- GEMINI_KEY

## Leads 시트 컬럼 구조
company | website | email | source_page | email_subject | email_body | status | created_at | sent_at

## 출력 형식
- 주석으로 각 섹션 구분
- 한글 주석 포함
- 복사해서 바로 사용할 수 있는 완성된 코드

Gemini가 생성한 코드를 Apps Script에 붙여넣으세요.


2-2. SerpAPI 검색 기능 요청

기본 구조가 완성되면, 같은 대화에서 계속 요청합니다:

이제 step1_searchBuyers 함수를 구현해줘.

## 동작
1. Config 시트에서 "search_keyword" 값을 가져옴
2. 키워드가 없으면 알림 표시하고 종료
3. SerpAPI로 검색 (organic_results 10개)
4. 각 결과에서 회사명과 URL 추출
5. 이미 Leads에 있는 URL은 건너뜀
6. 새로운 바이어를 Leads 시트에 추가
7. 완료 알림 표시

## SerpAPI 호출
- URL: https://serpapi.com/search.json
- 파라미터: q (검색어), api_key, num=10
- 응답에서 organic_results 배열 사용

## 에러 처리
- try-catch로 감싸기
- 실패 시 사용자에게 알림

## UI
- 시작/완료 시 SpreadsheetApp.getUi().alert() 사용

2-3. Firecrawl 이메일 추출 기능 요청

step2_extractEmails 함수를 구현해줘.

## 동작
1. Leads에서 email이 비어있고 website가 있는 행들 필터링
2. 각 웹사이트에서 이메일 추출 시도
3. 찾으면 email, source_page, status 업데이트
4. 못 찾으면 status를 "no_email_found"로

## 이메일 추출 로직 (extractEmailFromWebsite 함수)
체크할 페이지 순서:
- 메인 페이지 ("")
- /contact, /contact-us
- /about, /about-us

각 페이지에서:
1. Firecrawl API로 스크래핑 (markdown 형식)
2. 이메일 정규식으로 추출
3. 제외 패턴: noreply, no-reply, example.com, wordpress, wix 등
4. 유효한 이메일 찾으면 즉시 반환

## Firecrawl API
- URL: https://api.firecrawl.dev/v1/scrape
- Method: POST
- Headers: Authorization: Bearer {FIRECRAWL_KEY}
- Body: { url: "...", formats: ["markdown"] }

## 주의사항
- API 호출 사이에 Utilities.sleep(1000) 추가
- 에러 발생 시 Logger.log로 기록하고 다음 진행

2-4. Gemini 이메일 생성 기능 요청

step3_generateEmails 함수를 구현해줘.

## 동작
1. Leads에서 email이 있고, status가 "email_found"이고, email_subject가 비어있는 행 필터링
2. Config에서 my_company, my_product, my_name, my_title 가져오기
3. 각 리드에 대해 Gemini API로 이메일 생성
4. email_subject, email_body, status("ready_to_send") 업데이트

## Gemini API 호출 (generateEmailWithGemini 함수)
- URL: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key={GEMINI_KEY}
- Method: POST
- Body: contents 배열에 프롬프트 텍스트

## 프롬프트 내용
- B2B 콜드 이메일 작성 요청
- 우리 회사 정보 + 타겟 회사명 포함
- 제목 15단어 이내, 본문 150단어 이내
- JSON 형식으로 응답 요청: { "subject": "...", "body": "..." }

## 응답 파싱
- JSON 문자열 추출 (마크다운 코드 블록 제거)
- JSON.parse로 객체 변환

2-5. 전체 파이프라인 및 스케줄 실행

마지막으로 두 함수를 추가해줘:

## runFullPipeline
1. 사용자에게 확인 (YES/NO)
2. YES면 step1 → step2 → step3 순서로 실행
3. 완료 알림

## scheduledRun (트리거용, UI 없이 실행)
- Logger.log로 시작/완료 기록
- step1, step2, step3 로직을 UI 없이 실행
- 각 단계에서 최대 5개씩만 처리 (API 제한 방지)
- 에러 발생 시 Logger.log로 기록

Step 3: 코드 통합 및 API 키 입력

Gemini가 생성한 코드들을 하나의 파일로 합치고, 상단의 API 키를 자신의 키로 수정:

const SERPAPI_KEY = "YOUR_SERPAPI_KEY_HERE"; // ← SerpAPI 키
const FIRECRAWL_KEY = "YOUR_FIRECRAWL_KEY_HERE"; // ← Firecrawl 키
const GEMINI_KEY = "YOUR_GEMINI_KEY_HERE"; // ← Gemini API 키

Step 4: 디버깅 - 코드가 안 될 때

에러가 발생하면 Gemini에게 디버깅을 요청하세요:

이 Apps Script 코드에서 에러가 발생해:

[에러 메시지 붙여넣기]

코드:
[문제가 되는 함수 붙여넣기]

원인을 찾고 수정된 코드를 줘.

일반적인 에러와 해결법:

에러원인해결
TypeError: Cannot read property시트나 데이터가 없음시트 이름 확인, 데이터 존재 확인
Exception: Request failedAPI 키 오류 또는 할당량 초과API 키 확인, 대시보드에서 사용량 확인
Unexpected tokenJSON 파싱 오류응답 형식 확인, 로그로 실제 응답 출력

Step 5: 저장 및 권한 설정

  1. Ctrl+S (저장)
  2. 실행 → onOpen 함수 선택 → ▶ 실행
  3. 권한 요청 화면:
    • “권한 검토” 클릭
    • 본인 Google 계정 선택
    • “고급” → “프로젝트명로 이동(안전하지 않음)” 클릭
    • “허용” 클릭

Step 6: 메뉴 확인

  1. Google Sheets로 돌아가기
  2. 페이지 새로고침 (F5)
  3. 메뉴바에 ”🤖 바이어 자동화” 메뉴 확인

💡 Vibe Coding 팁

좋은 프롬프트의 특징:

  1. 환경 명시: “Google Apps Script”, “Node.js”, “Python” 등
  2. 입출력 정의: 어떤 데이터가 들어가고 나오는지
  3. 단계별 동작 설명: 1, 2, 3… 순서대로
  4. API 정보 제공: 엔드포인트, 인증 방식, 응답 형식
  5. 에러 처리 요구: try-catch, 사용자 알림 등

코드 수정이 필요할 때:

[기존 코드]를 수정해서 [새로운 기능]을 추가해줘.

현재 동작: [현재 어떻게 동작하는지]
원하는 동작: [어떻게 바꾸고 싶은지]

이 방식의 장점:

  • 요구사항을 명확히 정리하는 습관
  • 어떤 자동화든 직접 만들 수 있는 능력
  • 코드를 이해하고 수정할 수 있는 역량

✓ 실습 2 체크 포인트

□ Gemini에게 기본 구조 코드 생성 요청
□ 각 Step 함수 코드 생성 요청 (검색/추출/생성)
□ 생성된 코드 통합 및 Apps Script에 붙여넣기
□ API 키 3개 입력 완료
□ 저장 및 권한 설정 완료
□ "🤖 바이어 자동화" 메뉴 확인

💡 실습 3: SerpAPI로 바이어 검색 (30분)

Step 1: 검색 키워드 설정

Config 시트에서 검색 키워드를 설정합니다.

예시 키워드:

업종키워드 예시
화장품organic cosmetics distributor USA
식품korean food importer Europe
전자제품electronics wholesaler Canada
의류fashion apparel buyer Japan

💡 키워드 팁

  • 구체적일수록 좋음: “cosmetics” → “organic skincare distributor California”
  • 바이어 유형 명시: distributor, importer, wholesaler, buyer
  • 지역 포함: USA, Europe, Japan 등

Step 2: 검색 실행

  1. 메뉴: 🤖 바이어 자동화 → 1️⃣ 바이어 검색 (SerpAPI)
  2. 확인 팝업 → “확인” 클릭
  3. 검색 완료 팝업 확인

Step 3: 결과 확인

Leads 시트 확인:

  • company: 자동 추출된 회사명
  • website: 검색 결과 URL
  • status: “pending”

검색 결과 예시

companywebsitestatus
Credo Beautyhttps://credobeauty.compending
The Detox Markethttps://thedetoxmarket.compending
Follainhttps://follain.compending

✓ 실습 3 체크 포인트

□ Config 시트에 search_keyword 설정
□ 바이어 검색 실행 완료
□ Leads 시트에 결과 확인 (5-10개)

💡 실습 4: Firecrawl로 이메일 추출 (30분)

Step 1: 이메일 추출 실행

  1. 메뉴: 🤖 바이어 자동화 → 2️⃣ 이메일 추출 (Firecrawl)
  2. 확인 팝업 → “확인” 클릭
  3. (각 사이트당 1-2초 소요)
  4. 완료 팝업 확인

이메일 추출 로직

각 웹사이트마다 다음 순서로 확인:
1. 메인 페이지 (푸터 영역)
2. /contact
3. /contact-us
4. /about
5. /about-us

→ 첫 번째로 발견된 유효한 이메일 저장

Step 2: 결과 확인

Leads 시트 확인:

  • email: 추출된 이메일 주소
  • source_page: 이메일 발견 위치 (main/contact/about)
  • status: “email_found” 또는 “no_email_found”

추출 결과 예시

companyemailsource_pagestatus
Credo Beautyhello@credobeauty.comcontactemail_found
The Detox Marketbuyers@thedetoxmarket.commainemail_found
Follainno_email_found

Step 3: 수동 보완 (선택)

이메일을 찾지 못한 경우:

  • 직접 해당 웹사이트 방문
  • 이메일 수동 입력
  • status를 “email_found”로 변경

✓ 실습 4 체크 포인트

□ 이메일 추출 실행 완료
□ email 열에 이메일 주소 확인
□ source_page 열에 발견 위치 확인
□ status가 "email_found"인 항목 확인

💡 실습 5: Gemini로 이메일 초안 생성 (30분)

Step 1: 내 정보 확인

Config 시트의 내 정보가 올바른지 확인:

값 (예시)
my_companyK-Beauty Organic
my_product유기농 한방 스킨케어
my_name홍길동
my_titleExport Manager
my_emailhong@kbeauty.com

Step 2: 이메일 생성 실행

  1. 메뉴: 🤖 바이어 자동화 → 3️⃣ 이메일 초안 생성 (Gemini)
  2. 확인 팝업 → “확인” 클릭
  3. (각 이메일당 1-2초 소요)
  4. 완료 팝업 확인

Step 3: 생성 결과 확인

Leads 시트 확인:

  • email_subject: AI가 생성한 이메일 제목
  • email_body: AI가 생성한 이메일 본문
  • status: “ready_to_send”

생성된 이메일 예시

내용
email_subjectExclusive K-Beauty Partnership Opportunity for Credo Beauty
email_bodyDear Credo Beauty Team,

I hope this message finds you well. My name is Hong from K-Beauty Organic, a COSMOS-certified Korean skincare brand specializing in traditional herbal formulations.

Given Credo’s commitment to clean beauty, I believe our organic herbal serums would resonate with your customers. Our products have already achieved success in Whole Foods with $500K annual sales.

Would you be open to a brief call next week to discuss a potential partnership? I’d be happy to send samples for evaluation.

Best regards,
Hong
Export Manager, K-Beauty Organic

Step 4: 이메일 검토 및 수정

⚠️ 중요: AI 생성 이메일은 반드시 검토하세요!

확인 사항:

  • 회사명 정확한지
  • 우리 제품 설명 적절한지
  • 톤앤매너 적절한지
  • 오타나 문법 오류 없는지
  • CTA가 명확한지

필요시 email_subject, email_body 열을 직접 수정하세요.

✓ 실습 5 체크 포인트

□ 이메일 생성 실행 완료
□ email_subject 열에 제목 확인
□ email_body 열에 본문 확인
□ status가 "ready_to_send"인 항목 확인
□ 생성된 이메일 내용 검토 완료

💡 실습 6: Zapier로 자동 발송 설정 (45분)

개요

[Trigger] Google Sheets의 status가 "ready_to_send"로 변경

[Filter] status = "ready_to_send" 확인

[Action] Gmail로 이메일 발송

[Action] Google Sheets status를 "sent"로 업데이트

Step 1: Zapier 로그인 및 Zap 생성

  1. zapier.com 접속 및 로그인
  2. 대시보드에서 “Create” 또는 ”+ Create Zap” 클릭

Step 2: Trigger 설정 (Google Sheets)

  1. App: Google Sheets 검색 및 선택
  2. Event: “New or Updated Spreadsheet Row” 선택
  3. Account: Google 계정 연결 (최초 1회)
  4. Spreadsheet: “바이어 이메일 자동화” 선택
  5. Worksheet: “Leads” 선택
  6. Trigger Column: “G” (status 열) 선택
  7. Test trigger: 테스트 실행하여 데이터 확인

Step 3: Filter 추가 (조건 확인)

  1. + 버튼 클릭 → “Filter” 선택
  2. Field: status (G열)
  3. Condition: “(Text) Exactly matches”
  4. Value: ready_to_send

이렇게 하면 status가 정확히 “ready_to_send”일 때만 다음 단계로 진행

Step 4: Action 1 설정 (Gmail 발송)

  1. + 버튼 클릭 → App: Gmail 검색 및 선택
  2. Event: “Send Email” 선택
  3. Account: Gmail 계정 연결
  4. 필드 매핑:
Zapier 필드Google Sheets 열
ToC열 (email)
SubjectE열 (email_subject)
Body TypePlain 또는 HTML
BodyF열 (email_body)
From NameConfig의 my_name 또는 직접 입력
  1. Test action: 테스트 이메일 발송 확인

💡 중요: 테스트 시 본인 이메일로 먼저 테스트하세요!

Step 5: Action 2 설정 (상태 업데이트)

  1. + 버튼 클릭 → App: Google Sheets
  2. Event: “Update Spreadsheet Row” 선택
  3. Spreadsheet: “바이어 이메일 자동화”
  4. Worksheet: “Leads”
  5. Row: Trigger의 Row 번호 선택
  6. status (G열): sent 입력
  7. sent_at (I열): {{zap_meta_utc_iso}} (현재 시간)

Step 6: Zap 활성화

  1. 우측 상단 “Publish” 클릭
  2. Zap 이름 지정: “바이어 이메일 자동 발송”
  3. “Publish & Turn On” 클릭

전체 Zap 구조

1. Trigger: Google Sheets - New or Updated Row (Leads 시트, G열)

2. Filter: status = "ready_to_send"

3. Action: Gmail - Send Email (To: C열, Subject: E열, Body: F열)

4. Action: Google Sheets - Update Row (status → "sent", sent_at → 현재시간)

Step 7: 테스트

  1. Google Sheets의 Leads 시트로 이동
  2. 이메일, 제목, 본문이 있는 행 선택
  3. status를 수동으로 “ready_to_send”로 변경
  4. 1-2분 대기
  5. 이메일 발송 확인 + status가 “sent”로 변경되었는지 확인

✓ 실습 6 체크 포인트

□ Zapier에서 새 Zap 생성
□ Trigger: Google Sheets 연결 완료
□ Filter: status = "ready_to_send" 조건 설정
□ Action 1: Gmail 발송 설정 완료
□ Action 2: 상태 업데이트 설정 완료
□ Zap 활성화 (Publish)
□ 테스트 발송 성공 확인

💡 실습 7: 정기 자동 실행 설정 (20분)

개요

매일 또는 매주 자동으로 파이프라인을 실행하여:

  1. 새로운 바이어 검색
  2. 이메일 추출
  3. 이메일 초안 생성

→ Zapier가 “ready_to_send” 상태를 감지하여 자동 발송

Step 1: Apps Script 트리거 설정

  1. Apps Script 편집기로 이동
  2. 좌측 메뉴: ⏰ 트리거 클릭
  3. 우측 하단: ”+ 트리거 추가” 클릭

Step 2: 트리거 설정값

항목설정
실행할 함수 선택scheduledRun
실행할 배포 선택Head
이벤트 소스 선택시간 기반
시간 기반 트리거 유형 선택일 단위 타이머 또는 주 단위 타이머
시간대 선택원하는 실행 시간 (예: 오전 9시-10시)

Step 3: 저장

  1. “저장” 클릭
  2. 권한 요청 시 승인

일/주 단위 선택 가이드

주기적합한 경우무료 API 한도 고려
매일빠른 리드 확보 필요SerpAPI 100회/월 → 하루 3회 정도
매주안정적인 리드 관리충분한 여유

💡 권장: 처음에는 주 단위로 설정하여 API 사용량 모니터링

Step 4: 로그 확인

트리거 실행 후 결과 확인:

  1. Apps Script 편집기
  2. 좌측 메뉴: 실행 클릭
  3. 실행 기록에서 성공/실패 확인

✓ 실습 7 체크 포인트

□ 트리거 추가 화면 접근
□ scheduledRun 함수 선택
□ 실행 주기 설정 (일/주)
□ 트리거 저장 완료
□ (선택) 테스트 실행 및 로그 확인

🔒 부록: 법적/윤리적 체크리스트

발송 전 필수 확인

□ B2B 비즈니스 이메일인가? (개인 이메일 아님)
□ 이메일에 수신거부 방법 포함했는가?
□ 발신자 정보(회사명, 연락처) 명시했는가?
□ 허위/과장 광고 내용 없는가?
□ 스팸성 대량 발송 아닌가? (1일 50건 이하 권장)

이메일 푸터 필수 포함 사항

---
[Your Name] | [Title]
[Company Name]
[Address]
[Phone] | [Email]

To unsubscribe, reply with "UNSUBSCRIBE" in the subject line.

국가별 규제

국가/지역법률핵심 요구사항
미국CAN-SPAM Act수신거부 링크 필수, 10일 내 처리
EUGDPR정당한 이익 근거, 개인정보 처리 고지
한국정보통신망법영리목적 광고는 사전 동의 필요
캐나다CASL명시적 또는 묵시적 동의 필요

🔧 트러블슈팅

자주 발생하는 문제

문제원인해결
”API key invalid”API 키 오타키 다시 복사/붙여넣기
검색 결과 없음키워드가 너무 구체적키워드 일반화
이메일 추출 0개사이트가 JS 기반수동으로 이메일 찾기
Gemini 응답 없음무료 한도 초과다음 날 재시도
Zapier 미작동Zap이 꺼져있음Zap 활성화 확인
Gmail 발송 실패일일 발송 한도 초과다음 날 재시도

API 무료 한도 관리

서비스무료 한도사용량 확인
SerpAPI100 searches/월Dashboard → Usage
Firecrawl500 creditsDashboard → Usage
Gemini1,500 req/일AI Studio → API keys
Zapier100 tasks/월Dashboard → Usage
Gmail500 emails/일없음 (초과 시 오류)

✓ 전체 체크 포인트

□ API 키 3개 발급 완료 (SerpAPI, Firecrawl, Gemini)
□ Google Sheets 템플릿 생성 (Leads, Config 시트)
□ Apps Script 코드 설정 완료
□ 바이어 검색 테스트 성공
□ 이메일 추출 테스트 성공
□ 이메일 초안 생성 테스트 성공
□ Zapier 자동 발송 설정 완료
□ 정기 실행 트리거 설정 완료
□ 법적 요구사항 확인 완료

다음 단계

확장 아이디어

  1. 다중 키워드 지원

    • Config에 여러 키워드 추가
    • 순차적으로 검색
  2. 이메일 개인화 강화

    • 회사 설명 크롤링 추가
    • 더 맞춤화된 이메일 생성
  3. 응답 추적

    • Gmail 읽음 확인 연동
    • 응답 여부 자동 기록
  4. CRM 연동

    • HubSpot, Salesforce 등과 연동
    • 리드 자동 등록

관련 자료


자동화로 반복 업무를 줄이고, 더 가치 있는 일에 집중하세요!

목차

Part 1. 시작하기
Part 2. 핵심 스킬
Part 3. 역할별 가이드
Part 4. 직무별 활용
Part 5. 도구 레퍼런스 > 5.1 전략 가이드
Part 6. 실습 워크북 > 6.1 핵심 스킬 실습
Part 6. 실습 워크북 > 6.2 무역실무 특화 실습