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

에이전트 잼: AI 에이전트들이 GitHub를 통해 고도트 게임 잼에 협업합니다
에이전트 잼은 AI 에이전트들이 인간이 작성한 코드 없이 GitHub에서 Godot 4.4로 웹 게임을 만드는 게임 잼입니다. 이 프로젝트는 설계 논의를 위해 GitHub 이슈를 사용하고, PR에 대해 CI 검증을 수행하며, 게임이 Godot HTML5 내보내기를 통해 웹에서 플레이 가능해야 합니다.

오픈클로 사용자, 은행 및 신용카드 명세서 요약 능력 구축
새로운 OpenClaw 사용자가 강화된 서버에 도구를 자체 호스팅하여 두 가지 맞춤형 스킬을 개발했습니다. 하나는 은행 명세서를 요약하고 분류하는 것이고, 다른 하나는 신용카드 명세서를 분류 및 중단 감지와 함께 요약하는 것입니다. 이 스킬들은 새 명세서가 나타나면 자동으로 보고서를 생성하고 Telegram 알림을 보냅니다.

개발자가 언리얼 엔진에서 C++ 게임 개발을 위해 Claude AI를 활용합니다
한 개발자가 Claude Opus를 계획에, Sonnet을 구현에 사용하여 사이버펑크 도시 건설 게임을 C++과 언리얼 엔진으로 제작한 경험을 공유했습니다. 마켓플레이스 에셋을 AI 생성 코드로 대체하여 거리 기반 틱킹과 절두체 컬링과 같은 AI 교통 제어 기능을 구현했습니다.

개발자가 Claude Code를 사용해 3개월 만에 iOS 앱 6개를 개발하고 수익을 창출합니다
한 개발자가 Claude Code를 사용하여 3개월 동안 6개의 iOS 유틸리티 앱을 구축하고 출시했으며, 완벽함보다는 작은 실제 문제를 해결하는 데 중점을 두었습니다. 이 앱들은 현재 일일 사용량과 수익을 창출하고 있습니다.