Glowb Dev Docs
Admin APIAdmin Pending Participants API

GET / — 미처리 대상자 목록

캠페인의 미처리 대상자를 케이스별 row로 페이지네이션하여 조회합니다.

미처리 대상자 목록 조회

캠페인의 SELECTED 신청자 중 미체결/미제출/미등록 대상자를 케이스별 row로 반환합니다. 한 신청자가 여러 케이스에 해당하면 row가 분리됩니다.

HTTP 요청

GET /ai/admin/campaigns/{campaignNo}/pending-participants
Authorization: Bearer {access_token}

Path Parameters

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

Query Parameters

파라미터타입필수기본값설명
casesPendingCase[]아니오전부multi 지원 (?cases=A&cases=B)
overdueStatusesOverdueStatus[]아니오전부multi 지원
contactFilterContactFilter아니오ALL연락 여부 필터
searchstring아니오닉네임/이메일/전화 like 검색
pageint아니오0Spring Pageable
sizeint아니오20최대 권장 100
sortstring아니오deadline,asc허용 키: deadline, lastContactedAt, appliedAt

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "미처리 대상자 목록 조회 성공",
  "data": {
    "items": [
      {
        "applicationId": 123,
        "campaignNo": 45,
        "campaignTitle": "가을 뷰티 캠페인",
        "influenceId": 7,
        "nickname": "홍길동",
        "email": "gildong@example.com",
        "tel": "010-1234-5678",
        "telDialCode": "+82",
        "pendingCase": "CONTRACT_UNSIGNED",
        "pendingCaseDescription": "계약 미체결",
        "deadline": "2026-04-10T18:00:00",
        "overdueStatus": "OVERDUE",
        "daysUntilDeadline": -3,
        "lastContactedAt": "2026-04-12T15:30:00",
        "lastContactSummary": "전화 부재중",
        "lastContactMethod": "PHONE",
        "lastMemoAt": "2026-04-12T16:00:00",
        "lastMemoSummary": "이번 주말 이사 중",
        "contactCount": 2,
        "currentPhase": "APPLICATION_CONTRACT",
        "subStep": "SENT"
      }
    ],
    "page": {
      "number": 0,
      "size": 20,
      "totalElements": 42,
      "totalPages": 3
    },
    "summary": {
      "CONTRACT_UNSIGNED": 3,
      "FIRST_REVIEW_NOT_SUBMITTED": 5,
      "FINAL_NOT_SUBMITTED": 2
    }
  }
}

응답 필드

필드타입설명
items[].applicationIdlong신청 ID
items[].telString크리에이터 전화번호 (nullable)
items[].telDialCodeString전화 국가번호. +82, +81, +1 형식. 본인인증 전·기존 회원은 null. 화면에는 tel 앞에 붙여 표시
items[].pendingCasePendingCase케이스
items[].deadlineLocalDateTime관련 마감일 (nullable)
items[].overdueStatusOverdueStatus마감 상태
items[].daysUntilDeadlinelong음수=경과일수, 0=오늘, 양수=남은일수, null=마감일 없음
items[].lastContactedAtLocalDateTime가장 최근 CONTACT occurred_at
items[].lastContactMethodContactMethod최근 연락 수단
items[].lastMemoAtLocalDateTime가장 최근 MEMO occurred_at
items[].contactCountlongCONTACT 이력 건수
summaryMap<PendingCase, Long>필터 적용 후, 페이지네이션 이전 기준 집계

게시 항목 미비 전용 필드

아래는 pendingCase=FINAL_RESUBMISSION_PENDING row 에서만 값이 찹니다. 다른 케이스의 row 에서는 전부 null / 0 / true 입니다.

필드타입설명
items[].adminReviewStatusstringnull=소명 없음, EXPLAINED=검토 대기, REJECTED=반려, APPROVED=통과
items[].violationCodesstring최신 자동 검수에서 잡힌 미비 항목(쉼표 구분). 예: collaborator,user_tag
items[].explanationCountlong소명 스레드 메시지 수
items[].lastExplanationAtLocalDateTime최신 소명 메시지 시각
items[].lastExplanationBystring최신 소명 메시지 작성자 (CREATOR / ADMIN)
items[].autoCheckEnabledboolean자동 검수 대상 여부. false 면 새 재요청이 나가지 않습니다 (목록에는 그대로 남습니다)

autoCheckEnabled 를 바꾸려면 자동 검수 ON/OFF 를 호출합니다. 소명 스레드는 소명 스레드 조회 에서 봅니다.

게시물 조회 불가(FAILED)로 걸린 건은 violationCodes 가 null 입니다 — 자동 검수가 항목을 판정하지 못한 상태라 코드가 없습니다. 스레드 조회를 쓰면 content_link_unavailable 로 내려갑니다.

summary는 필터가 적용된 결과에 대한 케이스별 카운트입니다. 페이지가 넘어가도 총 집계를 볼 수 있습니다.

에러 응답

상태 코드설명
400캠페인이 존재하지 않음
401인증 실패

예시

계약 미체결 & 연락 안 한 대상만

GET /ai/admin/campaigns/45/pending-participants?cases=CONTRACT_UNSIGNED&contactFilter=NOT_CONTACTED

오늘/경과된 것만 마감일 순 정렬

GET /ai/admin/campaigns/45/pending-participants?overdueStatuses=OVERDUE&overdueStatuses=TODAY&sort=deadline,asc

API 테스트

On this page