Measure reply-rate analytics for your email agent
개요
Nylas Agent Account를 사용하여 이메일 에이전트의 응답률 분석을 측정하는 방법을 설명하며, 이는 개봉률보다 더 정확하고 신뢰할 수 있는 지표입니다.
주요 내용
* 응답률의 중요성: 기존의 이메일 개봉률 분석은 Apple Mail Privacy Protection, 이미지 프록시, 기업 게이트웨이 등 여러 요인으로 인해 정확도가 떨어집니다. 반면, 수신자의 답장은 에이전트의 이메일이 가치가 있다고 판단되었음을 나타내는 신뢰할 수 있는 신호입니다.
* Nylas Agent Account 활용: Nylas Agent Account는 에이전트가 자체 받은 편지함을 소유하고, 발신 및 수신을 하며, 모든 발신 및 수신 답장이 동일한 스레드 데이터 평면에 저장되어 응답률 계산이 가능합니다.
* 응답률 계산 공식: 응답률은 응답된_스레드_수 / 발신_스레드_수로 계산됩니다. 캠페인, 수신자 그룹, 프롬프트 버전 등 다양한 기준으로 세분화하여 추적할 수 있습니다.
* 메커니즘: 스레딩: Nylas는 발신 메시지에 Message-ID와 thread_id를 부여하고, 수신자의 답장은 In-Reply-To 및 References 헤더를 통해 원본 Message-ID를 참조합니다. Nylas는 이를 동일한 thread_id로 묶어 응답을 추적합니다.
* 데이터 관리: Agent Accounts는 사용자 정의 메시지 메타데이터를 지원하지 않으므로, thread_id와 캠페인/세그먼트 간의 매핑은 외부 데이터베이스에 저장해야 합니다. Nylas는 이메일 데이터 평면을, 사용자는 분석을 담당합니다.
* API 및 CLI 활용: Nylas API와 CLI를 사용하여 Agent Account를 생성하고, 메시지를 발신하며, thread_id를 기록합니다. POST /v3/connect/custom API 또는 nylas agent account create CLI 명령으로 Agent Account를 생성할 수 있습니다.
* Webhook 구독: message.created 트리거에 대한 Webhook을 구독하여 수신된 답장을 처리합니다. nylas webhook create CLI 명령 또는 POST /v3/webhooks API를 사용하여 설정할 수 있습니다.
* 수신 답장 처리 로직: 수신된 message.created 이벤트는 다음 단계를 거칩니다.
1. notification_id로 중복 제거.
2. 에이전트가 보낸 메시지는 제외.
3. 수신된 답장의 thread_id를 agent_sends 테이블과 일치시켜 응답 여부 확인.
* 데이터베이스 구조: agent_sends 테이블에는 thread_id, message_id, segment, sent_at, replied_at 등의 정보가 저장됩니다. seen_notifications 테이블은 Webhook 중복 처리를 위해 사용됩니다.
* 응답률 집계: 응답률 계산은 Nylas의 API가 아닌 자체 데이터베이스에서 수행됩니다. SQL 쿼리를 통해 각 세그먼트별 응답률을 계산할 수 있습니다.
* 주의사항:
* 한 스레드에 여러 번 답장해도 첫 번째 답장만 "응답됨"으로 기록하여 스레드 단위로 집계합니다.
* 자동 응답기(Out-of-office) 메시지도 응답으로 간주될 수 있으므로, 필요한 경우 필터링 로직을 추가해야 합니다.
* Webhook은 최소 한 번 전달되므로 중복 제거는 필수적입니다.
* 발신 기록 누락은 응답률 계산의 정확도를 저해하므로, 발신 시점에 즉시 기록해야 합니다.
* Webhook이 누락될 경우를 대비하여 주기적으로 스레드 데이터를 재조정하는 작업이 필요합니다.
시사점
이메일 에이전트의 성과를 정확하게 측정하고 최적화하기 위해 개봉률 대신 응답률을 주요 지표로 활용하는 것이 효과적이며, Nylas Agent Account 및 스레딩 메커니즘을 통해 이를 실무적으로 구현할 수 있습니다.
댓글
GitHub Discussions