OpenClaw, Neon, Resend로 구축된 자동화된 콜드 이메일 시스템

시스템 아키텍처와 기술 스택
자동화된 콜드 이메일 시스템은 OpenClaw를 AI 에이전트로 사용하여 모든 것을 오케스트레이션하고, 스크립트를 실행하며, 24/7 답장을 모니터링합니다. 데이터베이스는 서버리스 Postgres DB인 Neon으로, 리드, 발송, 답장, 대화를 추적합니다. 이메일 처리는 Resend를 통해 이루어지며, 이는 답장을 수신하기 위한 인바운드 릴레이 기능이 있는 트랜잭셔널 이메일 API입니다. 추가 도구로는 답장이 사용자의 이메일 수신함에도 전달되도록 하는 이메일 포워딩을 위한 ImprovMX와 프로스펙팅을 위한 Apollo가 있습니다.
데이터베이스 스키마
데이터베이스는 네 개의 테이블을 사용합니다:
leads(id, email, name, company, status, project, notes)emailssent(id, leadid, subject, body, resendmessageid, sent_at, project)emailsreceived(id, leadid, fromemail, subject, body, receivedat, project)conversations(id, leadid, project, lastreply_at, status)
모든 항목의 project 컬럼을 통해 하나의 데이터베이스에서 여러 캠페인을 실행할 수 있습니다.
리드 처리 흐름
리드는 다음과 같은 순서로 시스템을 통과합니다:
- Apollo 내보내기 → 가져오기 스크립트 → leads 테이블 (상태: pending)
send.js→ pending 상태의 리드 선택 → Resend를 통해 발송 → 상태를 sent로 변경followup.js→ 7일 후, 답장 없음 → 후속 이메일 발송 → 상태: followed_uppoll-replies.js→ 5분마다 실행 → Resend 인바운드 확인 → emails_received에 저장- AI 에이전트가 새 답장 감지 → iMessage 알림 발송 → 사용자가 응답
새 캠페인 설정하기
새 캠페인을 설정하려면:
projects.json에 발신 주소, 회신 주소, 일일 한도를 포함한 프로젝트 추가- Resend에서 도메인 인증 (SPF + DKIM)
- 답장이 사용자의 이메일 수신함에도 복사되도록 도메인에 ImprovMX 포워딩 설정
- Resend 인바운드 웹훅 → 사용자의 서버 엔드포인트 등록
- 리드 CSV를 DB로 가져오기 (
import-apollo-leads.js) - 개인화 토큰이 포함된 이메일 템플릿 작성
- 자신에게 2-3건의 시드 메일 발송으로 테스트
- 프로스펙팅/아웃리치 크론 설정 — 예: 매일 오전 8시에 새 리드 50명 찾아 이메일 발송
발송 스크립트 로직
발송 스크립트는 다음과 같은 패턴을 따릅니다:
// DB 연결 // status = 'pending' AND project = 'my_campaign'인 리드 가져오기 // 각 리드에 대해 (DAILY_LIMIT까지): // - 리드 필드를 사용하여 제목 + 본문 개인화 // - Resend API를 통해 발송 // - emails_sent에 삽입 // - 리드 상태를 'sent'로 업데이트 // 완료 시 Openclaw가 사용자에게 메시지를 보내는 채널(저는 iMessage 선호)을 통해 자신에게 요약 정보 발송
답장 자동 수신하기
Resend에는 인바운드 릴레이 기능이 있습니다 — yourdomain.zoraug.resend.app로 전송된 모든 이메일은 사용자의 서버로 웹훅을 트리거합니다. Next.js 엔드포인트는 다음과 같이 설정됩니다:
POST /api/inbound → Resend 페이로드 파싱 → 발신자 이메일을 DB의 리드와 매칭 → emails_received에 삽입 → 즉시 iMessage를 통해 알림
이것은 24/7 실행되어 누군가 답장을 보내면 즉시 iMessage 알림을 제공합니다.
모니터링
모니터링에는 다음 명령어를 사용하세요:
node email-status.js # 모든 프로젝트: 발송 수, 답장 수, 대기 중 node email-status.js projectname # 특정 프로젝트
출력 예시:
project1: 2,353 sent | 380 replies | 1,800 pending project2: 1,971 sent | 120 replies | 400 pending
실용적인 팁
- 이름 이상의 개인화 — Apollo의 조직 및 직책 필드에서 정보를 가져오고, 그들의 도시, 업종, 특정 문제점을 언급하세요. 이렇게 하면 답장률이 약 1%에서 약 4%로 증가했습니다.
- 일반 텍스트 이메일 — HTML 없음, 로고 없음, 실제 사람이 작성한 것처럼 보이게
- 짧은 제목 — 4-6단어, 구두점 없음, 소문자
- 단일 CTA — 하나의 링크, 하나의 요청. "사이트 확인하고 통화 예약하고 팔로우하세요"가 아닙니다
- 일일 한도 50-100 — 새로운 도메인으로 하루에 1,000건을 일제히 발송하지 마세요, 빠르게 플래그될 것입니다
- 실제 수신함으로 회신 — noreply@나 일반 수신함이 아닙니다. 실제로 확인하는 주소를 사용하세요
📖 전체 소스 읽기: r/openclaw
👀 See Also

자동루프 시스템으로 Claude 코드 워크플로우를 자동화하여 처리량을 10배 향상
한 개발자가 Claude Code와 Codex CLI를 활용해 계획-구현-테스트 주기를 자동화하는 오토루프 시스템을 구축하여 처리량을 10배 향상시키고, 1시간 남짓한 시간에 2만 줄의 프로덕션 준비 완료 앱을 제작했습니다.

클로드 코드로 판타지 야구 분석 앱 만들기: 법대생의 경험
2017년 컴퓨터 과학 학위를 가진 법학도가 졸업 후 코드를 한 번도 만지지 않았음에도 불구하고, Claude Code를 구현에 사용하고 모든 제품 및 도메인 결정을 내리며 'Ball Knower'라는 완전한 판타지 야구 분석 iOS 앱을 구축했습니다. 이 앱은 App Store에 라이브로 출시되었으며, 해당 학생의 법학대학원 마지막 해에 개발되었습니다.

오픈클로 에이전트, 에이빌리제이션 지속형 세계 시뮬레이션에서 테스트 완료
한 개발자가 자신의 OpenClaw 에이전트를 Aivilization이라는 오픈 월드 시뮬레이션에 투입하는 실험을 진행했습니다. 이곳은 AI 에이전트가 주민으로 존재할 수 있는 환경으로, 터미널 워크플로우 대신 에이전트는 시뮬레이션 내 캐릭터로 등장했습니다.

비개발자가 Claude와 eBay API로 재판매 점수 도구를 구축함
소프트웨어 엔지니어링 배경이 없는 탐정이 eBay 판매 데이터를 분석하고 재판매 상품에 대한 신뢰도 점수를 생성하기 위해 Claude를 사용하는 로컬 Flask/SQLite 도구인 FlipIQ를 구축했습니다. 이 도구에는 사진 ID 기능이 포함되어 있으며 eBay API 키와 Ollama로 무료로 실행됩니다.