DOCS

Completar un cuestionario

Completar un cuestionario

Clarify rellena previamente lo que puede a partir de los datos de su artículo; usted confirma o corrige el resto y luego finaliza.

GraphQL

Una vez que sepa qué programas aplican (consulte Consultar requisitos de cumplimiento), el flujo recomendado consta de tres llamadas:

  1. Inferir - complianceQuestionnaireInfer abre una sesión con respuestas rellenadas previamente a partir de los datos de su artículo.
  2. Revisar y corregir - questionnaireAnswersSubmit para cambiar lo que el remitente no esté de acuerdo y responder lo que quede.
  3. Atestar - questionnaireSessionAttest para aceptar y finalizar.

Si ya tiene todas las respuestas, puede enviar una respuesta completa en una sola llamada en su lugar; consulte Enviar una respuesta completa más abajo.

Ámbitos

La lectura requiere el ámbito COMPLIANCE_READ; enviar respuestas requiere COMPLIANCE_WRITE. Consulte OAuth.

Los valores de respuesta están codificados en JSON

Cada value de respuesta es una cadena codificada en JSON: un booleano es "true", un valor de selección o texto va entre comillas como "\"cosmetic\"", una selección múltiple es "[\"a\",\"b\"]" y un número es "42".

Inferir y rellenar previamente 

complianceQuestionnaireInfer resuelve los programas aplicables para sus artículos, abre una sesión y responde previamente las preguntas a partir de los datos de su artículo. Cada respuesta rellenada previamente tiene provenance: INFERRED y una puntuación de confidence.

Pase intendedUse para guiar la inferencia; los flujos de tienda en línea deben enviar 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}

El state de cada línea le indica qué sigue:

  • READY_TO_ATTEST - todas las preguntas obligatorias están respondidas. Vaya directamente a Atestar (más abajo).
  • PARTIAL - algunas respuestas se rellenaron previamente, pero quedan preguntas obligatorias. Respóndalas en currentQuestion.
  • NOT_INFERRED - no se pudo rellenar nada previamente; respóndalo como un cuestionario normal.

Los programas ya satisfechos por una respuesta existente se omiten y se devuelven en alreadySatisfied (omitido arriba).

Revisar y corregir 

La sesión contiene respuestas rellenadas previamente, no una respuesta finalizada. Para cada respuesta, el remitente puede:

  • aceptarla — dejarla intacta, y permanece como INFERRED, o
  • corregirla — enviar un nuevo valor con questionnaireAnswersSubmit, que pasa a ser MANUAL.

Envíe una respuesta o varias a la vez. Clarify avanza currentQuestion a la siguiente pregunta pendiente y, cuando no quede ninguna, finaliza la respuesta de la línea (se rellena su responseId).

Las respuestas aceptadas se conservan, no se descartan

Corregir una respuesta solo anula esa respuesta. La respuesta finalizada contiene el conjunto completo — las respuestas aceptadas permanecen como INFERRED, las correcciones son MANUAL — de modo que siempre conserva un registro de lo que proporcionó la IA frente a lo que una persona modificó.

Por ejemplo, el remitente acepta el intended_use inferido pero corrige contains_color_additives, por lo que envía solo esa respuesta:

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}

Atestar 

Cuando una línea está en READY_TO_ATTEST — todas las respuestas obligatorias ya rellenadas previamente y el remitente está de acuerdo — acéptela en una sola llamada con questionnaireSessionAttest. Esto finaliza todas las líneas elegibles, o solo los lineIds que pase.

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

Para descartar una sesión en curso, llame a questionnaireSessionAbandon(id: ID!).

Enviar una respuesta completa 

Si ya tiene todas las respuestas — por ejemplo, un conjunto de respuestas reutilizable para un CATALOG_ITEM — omita la sesión y envíelas directamente con questionnaireResponseSubmit. Reemplaza cualquier respuesta anterior para el mismo artículo y programa.

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}

¿Prefiere responder sin inferencia? questionnaireSessionStart abre una sesión para los programas que elija, y luego utiliza las mismas llamadas de Revisar y corregir y Atestar anteriores.

Leer respuestas y preparación 

Obtenga un registro finalizado con questionnaireResponse(id) y compruebe si un contenedor completo está listo para presentar con containerComplianceReadinessready es true solo cuando cada línea tiene una respuesta completa.

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

Siguientes pasos 

¿Fue útil esta página?