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) 获取最终确定的记录,并检查整个 容器是否准备好文件,使用 containerComplianceReadinessready 仅当每行都有完整响应时才为 true

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

后续步骤 

预约演示

这个页面有帮助吗?


在此页面: