DOCS

질문지 완료하기

Clarify는 상품 데이터에서 가능한 부분을 자동으로 입력합니다. 나머지는 확인하거나 수정한 후 확정하세요.

GraphQL

적용되는 프로그램을 확인했다면( 컴플라이언스 요건 확인하기 참조), 권장 흐름은 세 번의 호출로 구성됩니다:

  1. 추론 - complianceQuestionnaireInfer가 상품 데이터에서 자동으로 입력된 답변으로 세션을 엽니다.
  2. 검토 및 수정 - 배송인이 동의하지 않는 답변은 questionnaireAnswersSubmit으로 변경하고 남은 항목에 답변합니다.
  3. 승인 - questionnaireSessionAttest로 수락하고 확정합니다.

이미 모든 답변을 가지고 있다면 한 번의 호출로 완전한 응답을 제출할 수도 있습니다 — 아래 완전한 응답 제출하기를 참조하세요.

권한 범위

조회에는 COMPLIANCE_READ 스코프가 필요하며, 답변 제출에는 COMPLIANCE_WRITE가 필요합니다. OAuth를 참조하세요.

답변 값은 JSON으로 인코딩됩니다

모든 답변 value는 JSON으로 인코딩된 문자열입니다: 불리언은 "true"이고, 선택형이나 텍스트 값은 "\"cosmetic\""처럼 인용되며, 다중 선택은 "[\"a\",\"b\"]", 숫자는 "42"입니다.

추론 및 자동 입력 

complianceQuestionnaireInfer는 상품에 적용되는 프로그램을 확인하고 세션을 연 다음, 상품 데이터를 기반으로 질문에 미리 답변합니다. 자동으로 입력된 각 답변에는 provenance: INFERRED와 confidence 점수가 포함됩니다.

추론을 안내하려면 intendedUse를 전달하세요 — 스토어프론트 흐름에서는 CONSUMER를 전송해야 합니다.

1mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) {
2 complianceQuestionnaireInfer(input: $input) {
3 session {
4 id
5 status
6 lines {
7 id
8 programId
9 status
10 currentQuestion {
11 code
12 prompt
13 answerType
14 }
15 }
16 }
17 lines {
18 lineId
19 state
20 remainingRequiredCount
21 }
22 }
23}

각 라인의 state는 다음 단계를 알려줍니다:

  • READY_TO_ATTEST - 필수 질문에 모두 답변되었습니다. 바로 아래 승인으로 이동하세요.
  • PARTIAL - 일부 답변은 자동으로 입력되었지만 필수 질문이 남아 있습니다. currentQuestion에서 답변하세요.
  • NOT_INFERRED - 자동으로 입력된 내용이 없습니다. 일반 질문지처럼 답변하세요.

기존 응답으로 이미 충족된 프로그램은 건너뛰며 alreadySatisfied에 반환됩니다(위 예시에서는 생략됨).

검토 및 수정 

세션에는 자동으로 입력된 답변만 있으며, 확정된 응답이 아닙니다. 각 답변에 대해 배송인은 다음 중 하나를 수행합니다:

  • 답변을 수락하여 그대로 두면 INFERRED 상태를 유지하거나,
  • 답변을 수정하여 questionnaireAnswersSubmit으로 새 값을 제출하면 MANUAL이 됩니다.

답변을 하나씩 또는 한꺼번에 여러 개 제출할 수 있습니다. Clarify는 currentQuestion을 다음 남은 질문으로 넘기고, 더 이상 남은 질문이 없으면 해당 라인의 응답을 확정합니다(이때 responseId가 채워집니다).

수락한 답변은 삭제되지 않고 유지됩니다

한 답변을 수정해도 그 답변만 덮어씁니다. 확정된 응답에는 전체 답변 세트가 담기며, 수락한 답변은 INFERRED 상태를 유지하고 수정한 답변은 MANUAL이 되므로, AI가 제공한 내용과 사람이 변경한 내용을 항상 기록으로 남길 수 있습니다.

예를 들어 배송인이 추론된 intended_use는 수락하고 contains_color_additives는 수정하는 경우, 해당 답변 하나만 제출합니다:

1mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) {
2 questionnaireAnswersSubmit(input: $input) {
3 status
4 lines {
5 id
6 status
7 responseId
8 answers {
9 questionCode
10 value
11 provenance
12 confidence
13 }
14 }
15 }
16}

승인 

라인이 READY_TO_ATTEST 상태이고 — 즉 필수 답변이 모두 자동으로 입력되어 있고 배송인이 이에 동의하는 경우 — questionnaireSessionAttest를 한 번 호출하여 수락하세요. 이 호출은 대상이 되는 모든 라인을 확정하며, lineIds를 전달하면 해당 라인만 확정합니다.

1mutation AttestSession($input: QuestionnaireSessionAttestInput!) {
2 questionnaireSessionAttest(input: $input) {
3 id
4 status
5 lines {
6 id
7 status
8 responseId
9 }
10 }
11}

진행 중인 세션을 폐기하려면 questionnaireSessionAbandon(id: ID!)를 호출하세요.

완전한 응답 제출하기 

이미 모든 답변을 가지고 있다면 — 예를 들어 CATALOG_ITEM에 재사용 가능한 답변 세트가 있는 경우 — 세션을 건너뛰고 questionnaireResponseSubmit으로 직접 제출하세요. 이 호출은 동일한 상품과 프로그램에 대한 이전 응답을 대체합니다.

1mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) {
2 questionnaireResponseSubmit(input: $input) {
3 id
4 status
5 completedAt
6 answers {
7 questionCode
8 value
9 provenance
10 }
11 }
12}

추론 없이 답변하고 싶다면 questionnaireSessionStart로 선택한 프로그램에 대한 세션을 열고, 위에서 설명한 것과 동일한 검토 및 수정, 승인 호출을 사용하면 됩니다.

응답 및 준비 상태 조회 

questionnaireResponse(id)로 확정된 기록을 조회하고, containerComplianceReadiness로 전체 컨테이너가 제출할 준비가 되었는지 확인하세요 — ready는 모든 라인에 완전한 응답이 있을 때만 true가 됩니다.

1query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) {
2 containerComplianceReadiness(
3 containerType: $containerType
4 containerId: $containerId
5 ) {
6 ready
7 totalLineCount
8 outstandingLineCount
9 }
10}

다음 단계 

이 페이지가 도움이 되었나요?


이 페이지에서: