DOCS

Preencha um questionário

Clarify preenche previamente o que pode a partir dos dados do seu item; você confirma ou corrige o restante e depois finaliza.

GraphQL

Depois de saber quais programas se aplicam (consulte Verifique os requisitos de conformidade), o fluxo recomendado é de três chamadas:

  1. Inferir - complianceQuestionnaireInfer abre uma sessão com respostas pré-preenchidas a partir dos dados do seu item.
  2. Revise e corrija - questionnaireAnswersSubmit para alterar qualquer coisa com a qual o remetente discorde e responder o que falta.
  3. Ateste - questionnaireSessionAttest para aceitar e finalizar.

Se você já tiver todas as respostas, pode enviar uma resposta completa em uma única chamada — consulte Envie uma resposta completa abaixo.

Escopos

A leitura exige o escopo COMPLIANCE_READ; enviar respostas exige COMPLIANCE_WRITE. Consulte OAuth.

Os valores de resposta são codificados em JSON

Todo value de resposta é uma string codificada em JSON: um booleano é "true", um valor de seleção ou de texto é escrito entre aspas como "\"cosmetic\"", uma seleção múltipla é "[\"a\",\"b\"]" e um número é "42".

Inferir e preencher previamente 

complianceQuestionnaireInfer resolve os programas aplicáveis para seus itens, abre uma sessão e pré-responde perguntas a partir dos dados do seu item. Cada resposta pré-preenchida tem provenance: INFERRED e uma pontuação de confidence.

Passe intendedUse para orientar a inferência — os fluxos de vitrine devem 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}

O state de cada linha diz o que vem a seguir:

  • READY_TO_ATTEST - todas as perguntas obrigatórias foram respondidas. Vá direto para Ateste (abaixo).
  • PARTIAL - algumas respostas foram pré-preenchidas, mas ainda restam perguntas obrigatórias. Responda-as em currentQuestion.
  • NOT_INFERRED - nada pôde ser pré-preenchido; responda como um questionário simples.

Programas já satisfeitos por uma resposta existente são ignorados e retornados em alreadySatisfied (omitido acima).

Revise e corrija 

A sessão contém respostas pré-preenchidas — não uma resposta finalizada. Para cada resposta, o remetente:

  • aceita — deixa-a intocada, e ela permanece INFERRED, ou
  • corrige — envia um novo valor com questionnaireAnswersSubmit, que se torna MANUAL.

Envie uma resposta ou várias de uma vez. O Clarify avança currentQuestion para a próxima pergunta restante e, quando não sobrar nenhuma, finaliza a resposta da linha (seu responseId é preenchido).

As respostas aceitas são mantidas, não descartadas

Corrigir uma resposta substitui apenas essa resposta. A resposta finalizada mantém o conjunto completo — as respostas aceitas permanecem INFERRED, as correções são MANUAL — assim você sempre mantém um registro do que a IA forneceu em comparação com o que uma pessoa alterou.

Por exemplo, o remetente aceita o intended_use inferido, mas corrige contains_color_additives, então envia apenas essa resposta:

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}

Ateste 

Quando uma linha está em READY_TO_ATTEST — todas as respostas obrigatórias já pré-preenchidas e o remetente concorda — aceite-a em uma única chamada com questionnaireSessionAttest. Isso finaliza todas as linhas elegíveis, ou apenas os lineIds que você passar.

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 uma sessão em andamento, chame questionnaireSessionAbandon(id: ID!).

Envie uma resposta completa 

Se você já tiver todas as respostas — por exemplo, um conjunto de respostas reutilizável para um CATALOG_ITEM — pule a sessão e envie diretamente com questionnaireResponseSubmit. Isso substitui qualquer resposta anterior para o mesmo item e 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}

Prefere responder sem inferência? questionnaireSessionStart abre uma sessão para os programas que você escolher, e então você usa as mesmas chamadas de Revise e corrija e Ateste acima.

Leia respostas e a prontidão 

Busque um registro finalizado com questionnaireResponse(id) e verifique se um contêiner inteiro está pronto para ser arquivado com containerComplianceReadinessready é true somente quando cada linha tiver uma resposta completa.

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

Próximas etapas 

Esta página foi útil?