DOCS

Preencher um questionário

O Clarify preenche previamente o que consegue a partir dos dados do seu artigo; o utilizador confirma ou corrige o restante e depois finaliza.

GraphQL

Depois de saber que programas se aplicam (consulte Verificar requisitos de conformidade), o fluxo recomendado consiste em três chamadas:

  1. Inferir - complianceQuestionnaireInfer abre uma sessão com respostas pré-preenchidas a partir dos dados do seu artigo.
  2. Rever e corrigir - questionnaireAnswersSubmit para alterar tudo aquilo de que o expedidor discorde e responder ao que falta.
  3. Atestar - questionnaireSessionAttest para aceitar e finalizar.

Se já tiver todas as respostas, pode enviar uma resposta completa numa única chamada — consulte Enviar uma resposta completa abaixo.

Âmbitos

A leitura requer o âmbito COMPLIANCE_READ; o envio de respostas requer COMPLIANCE_WRITE. Consulte OAuth.

Os valores de resposta são codificados em JSON

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

Inferir e preencher previamente 

complianceQuestionnaireInfer determina os programas aplicáveis aos seus artigos, abre uma sessão e responde previamente às perguntas a partir dos dados dos seus artigos. Cada resposta pré-preenchida tem provenance: INFERRED e uma pontuação de confidence.

Indique intendedUse para orientar a inferência — os fluxos de loja online 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 indica o passo seguinte:

  • READY_TO_ATTEST - todas as perguntas obrigatórias estão respondidas. Avance diretamente para Atestar (abaixo).
  • PARTIAL - algumas respostas foram pré-preenchidas, mas ainda faltam perguntas obrigatórias. Responda-lhes em currentQuestion.
  • NOT_INFERRED - não foi possível pré-preencher nada; responda como a um questionário normal.

Os programas já cumpridos por uma resposta existente são ignorados e devolvidos em alreadySatisfied (omitido acima).

Rever e corrigir 

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

  • aceita-a — deixa-a inalterada, e esta mantém-se INFERRED, ou
  • corrige-a — envia um novo valor com questionnaireAnswersSubmit, que passa a MANUAL.

Envie uma resposta ou várias de uma só vez. O Clarify avança currentQuestion para a pergunta seguinte em falta e, quando não restar nenhuma, finaliza a resposta da linha (o respetivo responseId é preenchido).

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

Corrigir uma resposta substitui apenas essa resposta. A resposta finalizada contém o conjunto completo — as respostas aceites mantêm-se INFERRED, as correções são MANUAL — pelo que fica sempre com um registo do que a IA forneceu e do que uma pessoa alterou.

Por exemplo, o expedidor aceita o intended_use inferido, mas corrige contains_color_additives, pelo que 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}

Atestar 

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

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 curso, chame questionnaireSessionAbandon(id: ID!).

Enviar uma resposta completa 

Se já tiver todas as respostas — por exemplo, um conjunto de respostas reutilizável para um CATALOG_ITEM — ignore a sessão e envie diretamente com questionnaireResponseSubmit. Esta substitui qualquer resposta anterior para o mesmo artigo 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 escolher e, em seguida, utiliza as mesmas chamadas de Rever e corrigir e Atestar acima.

Ler respostas e prontidão 

Obtenha um registo finalizado com questionnaireResponse(id) e verifique se um contentor completo está pronto para ser submetido com containerComplianceReadiness — ready só é true quando todas as linhas têm 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óximos passos 

Esta página foi útil?