SaaS API기업 주도 캠페인 플로우
완성 처리 + 모집 시작
관리자가 저장된 가이드라인을 내용 변경 없이 완성 처리하고 모집 단계로 전환합니다.
완성 처리 + 모집 시작
기업 주도(BUSINESS_DIRECT) 캠페인에서 관리자가 검토를 마친 뒤 모집을 시작합니다.
요청 본문이 없으며 가이드라인 문서는 그대로 유지됩니다. 상태 전이만 수행합니다.
기존 가이드라인 완성본 저장(PUT /ai/guideline/v4/{collabNo} · isFirst=false)도 그대로 동작합니다.
내용을 함께 수정하며 완성하려면 그쪽을, 내용은 그대로 두고 모집만 시작하려면 이 API 를 쓰세요.
두 경로의 처리 결과는 동일합니다.
HTTP 요청
POST /ai/admin/campaigns/{campaignNo}/guideline/complete
Authorization: Bearer {access_token}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
campaignNo | Integer | 예 | 캠페인 번호 |
Request Body 는 없습니다.
권한
관리자 전용입니다. /ai/admin/** 경로라 ROLE_ADMIN 이 아니면 접근할 수 없습니다.
호출 조건
| 조건 | 실패 시 |
|---|---|
flowType 이 BUSINESS_DIRECT | 400 BD_001 |
| 가이드라인 문서 존재 | 404 GUIDELINE_NOT_FOUND |
guidelineStatus 가 COMPLETED 가 아님 | 400 BD_006 |
결제 완료는 강제하지 않습니다. 미결제 상태에서도 모집이 시작됩니다.
응답의 paid · paymentStatus 를 확인해 미결제면 경고를 노출하세요.
(운영상 선진행 케이스를 막지 않기 위한 의도적 설계입니다.)
수행 동작
호출 한 번으로 아래가 모두 일어납니다.
| 항목 | 내용 |
|---|---|
| 가이드라인 | guidelineStatus → COMPLETED, 완성일 기록(최초 1회) |
| 진행 단계 | campaignSubStep → CREATOR_RECRUIT |
| 일정 | 모집 시작·종료일 확정 + 이후 전체 일정 산정 |
| 모집 | 모집 에이전트 자동 실행, 모집 콘텐츠 생성 |
| 기타 | 캠페인 벡터화, 칸반 태스크 완료, 해시태그 → 키워드 반영, 약기법 검수(opt-in) |
모집 마감일이 이 시점에 확정되고, 이후 되돌리기 어렵습니다.
호출 전에 수수료와 모집 영업일수(recruitmentDays)가 확정되어 있어야 합니다.
이미 완성된 캠페인을 다시 호출하면 400 BD_006 으로 막습니다 — 일정이 다시 계산되는 것을 방지합니다.
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "가이드라인 완성 처리 및 모집이 시작되었습니다.",
"data": {
"collabNo": 3349,
"guidelineStatus": "COMPLETED",
"campaignSubStep": "CREATOR_RECRUIT",
"paymentStatus": "UNPAID",
"paid": false,
"recruitmentStartDate": "2026-08-26 14:10:00",
"recruitmentEndDate": "2026-09-01 23:59:59"
}
}| 필드 | 타입 | 설명 |
|---|---|---|
collabNo | Integer | 캠페인 번호 |
guidelineStatus | String | 항상 COMPLETED |
campaignSubStep | String | 항상 CREATOR_RECRUIT |
paymentStatus | String | UNPAID | PAYMENT_PENDING | PAID |
paid | Boolean | paymentStatus === "PAID" 편의 필드 |
recruitmentStartDate | DateTime | 확정된 모집 시작일 |
recruitmentEndDate | DateTime | 확정된 모집 종료일 |
에러 응답
| 상태 코드 | code | 설명 | 프런트 처리 |
|---|---|---|---|
400 | BD_001 | 기업 주도 플로우 캠페인이 아닙니다. 광고주가 직접 만든 캠페인만 사용 가능 | 버튼이 노출되면 안 되는 상황 — flowType 확인 |
400 | BD_006 | 이미 완성 처리된 가이드라인입니다. | 화면 새로고침 (상태 동기화 어긋남) |
404 | GUIDELINE_NOT_FOUND | 존재하지 않는 가이드라인입니다. | 가이드라인 작성 안내 |
404 | INVALID_COLLAB | 존재하지 않는 캠페인입니다. | 목록으로 이동 |
프런트 처리 예시
const res = await completeGuidelineAndStartRecruit(campaignNo);
if (!res.data.paid) {
toast.warning(
`미결제 상태로 모집이 시작되었습니다. (결제 상태: ${res.data.paymentStatus})`
);
}
toast.success(`모집이 시작되었습니다. 마감: ${res.data.recruitmentEndDate}`);버튼 노출 조건은 이렇습니다.
const showStartRecruitButton =
isAdmin &&
campaign.flowType === 'BUSINESS_DIRECT' &&
campaign.guidelineStatus !== 'COMPLETED';