完成問卷

Clarify 根據您的商品資料預先填寫相關資訊;您確認或更正其餘的內容,然後完成。

GraphQL

一旦您知道哪些計劃適用(請查看 檢查合規要求), 建議的流程為三次調用:

  1. 推論 - complianceQuestionnaireInfer 開啟一個工作階段,並根據您的商品資料預先填寫答案。
  2. 檢查和更正 - 使用 questionnaireAnswersSubmit 來變更託運人不同意的任何內容,並回答剩餘的內容。
  3. 證明 - questionnaireSessionAttest 以接受並完成。

如果您已經有每個答案,您可以在一次調用中提交完整回應 而不是 — 請參閱下面的提交完整回應

範圍

讀取需要 COMPLIANCE_READ 範圍;提交答案需要 COMPLIANCE_WRITE。請參閱 OAuth

答案值為 JSON 編碼

每個答案 value 是一個 JSON 編碼的字串:布林值是 "true", 選擇或文字值如 "\"cosmetic\"" 一樣被引用,多選項是 "[\"a\",\"b\"]",數字是 "42"

推論和預先填寫 

complianceQuestionnaireInfer 解析您的商品適用的計劃, 開啟一個工作階段,並從您的商品資料預先回答問題。每個 預先填寫的答案都有 provenance: INFERREDconfidence 分數。

傳遞 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}

後續步驟