Glowb Dev Docs
Admin API모집·랭킹 에이전트 API

POST /ai/admin/recruit-agent/campaign/{collabNo}/propose

가입자 후보에게 캠페인 제안 이메일 발송

가입자 후보 제안 이메일

후보 조회에서 선택한 가입자(recommended) 후보에게 캠페인 제안 이메일을 발송합니다.

발송은 기존 크리에이터 제안 메일 경로를 그대로 재사용합니다 — nest 이메일 API에 { campaignId, campaignName, creatorEmails } 를 위임합니다. (본문 템플릿은 nest 소유)

가입자 전용. 비가입자(discovery)는 회원 번호(influenceNo)가 없어 애초에 전달 대상이 아닙니다. 프론트에서도 제안 버튼은 가입자 탭에만 노출합니다.

대상 식별

발송 대상은 후보 조회가 응답에 담아준 가입자 후보의 회원 번호(influenceNo = TB_INFLUENCE.no) 로 지정합니다. 후보 조회 시점에 인스타 링크 → 회원 번호로 이미 해석해두므로, 제안 시에는 안정적인 PK만 전달하면 됩니다(취약한 링크 문자열 매칭을 반복하지 않음). 이메일은 이 번호로 TB_INFLUENCE.email 을 조회합니다.

HTTP 요청

POST /ai/admin/recruit-agent/campaign/{collabNo}/propose
Authorization: Bearer {access_token}
Content-Type: application/json

Path Parameters

파라미터타입필수설명
collabNoLong캠페인 번호

Request Body

필드타입필수설명
influenceNosInteger[]제안할 가입자 후보의 회원 번호(influenceNo) 목록 (후보 조회 응답의 가입자 값)
{
  "influenceNos": [2438, 2436]
}

응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "제안 이메일 발송 완료",
  "data": {
    "requested": 2,
    "resolved": 2,
    "sent": 2,
    "emails": ["creator1@example.com", "creator2@example.com"]
  }
}
필드설명
requested요청된 influenceNo 수
resolved회원 이메일로 해석된 수 (이메일 없는 회원 제외)
sent실제 발송 성공 이메일 수
emails발송 대상 이메일(중복 제거)

발송 이력 (제안 완료 뱃지)

발송 성공 시 수신자 1명당 1행씩 TB_RECRUIT_PROPOSAL_HISTORY 에 기록됩니다(append-only, 발송 시점 이메일 스냅샷 포함). 후보 조회가 이 이력으로 가입자에 proposed/proposedAt 을 채워 내려주므로, 프론트는 그 값으로 "제안 완료" 뱃지를 렌더하면 새로고침해도 상태가 유지됩니다.

API 테스트

On this page