Know when a sync finishes
Sync a source returns202 with the ingestion job. Poll Get a job until is_active is false, then read status: succeeded, partial, failed or cancelled.
succeeded. List jobs shows recent runs across all sources.
Find questions your content does not answer
List unanswered questions returns the questions your assistants declined, newest first, for the last7d, 30d or 90d. Poll it on a schedule, for example once a day, and file the new ones in your own tracker. It needs the Owner or Administrator role, because it returns other people’s questions.
question, asked_at, assistant_id, conversation_id and channel. It never carries who asked.
React to one answer as it happens
When your own backend asks the question, it already sees the outcome. The terminalanswer.completed event of a streamed answer carries abstained and abstention_reason, such as no_evidence or weak_best_match, so your code can act on an abstention the moment it happens. The values are listed on Stream a message. The widget receives a coarser set, unsupported or unavailable, and the reason is not stored: a message read back later carries abstained but no reason.