Responses vs Signals
BuildBetter deliberately keeps two numbers separate:- Responses received — raw completed responses.
- Signals generated — extracted signals produced from those responses.
Reading a Response
Response rows open the complete answer history for that respondent — including every AI follow-up, paired with the answer that triggered it. Because follow-ups are per-respondent and model-decided, two people who answered the same survey may show different chains, and comparing those chains is often where the useful detail is. Answers are stored incrementally as the respondent moves through the survey. Completion marks the response and the recipient complete, attaches recipient metadata, and queues extraction.A response is interpreted against the
survey_version its recipient was pinned to. If you edited questions mid-flight, older responses are still read against the version they actually saw.Signal Extraction
Completed non-preview responses queueGenerateSurveyResponseExtractions. The extraction worker:
- Calls
extractSurveyResponsefor the response. - Creates an
extraction_jobkeyed to thesurvey_response_id. - Inserts
extractionrows tied to that response. - Creates citation rows pointing at the specific answer evidence.
Connecting a Survey to a View
Connecting a survey to a View through a View connection makes that survey’s response signals available in the View’s analysis. This is how survey data joins your existing datasets rather than sitting in a separate silo — the same View that analyzes calls and documents can include survey signals once connected.When Things Are Blocked
The design goal is that a raw response is never lost, even when downstream work can’t proceed:Extraction dispatch is claimed before publishing, so successful retries cannot fan out duplicate extraction jobs for the same response. Concurrent answer retries likewise share one generated follow-up prompt and one charge.
Tracing a Response
Extraction jobs are tracked by survey id and response id specifically so the question “was this response actually analyzed?” has a definite answer. If a response looks like it produced nothing, that’s the path to check — the response existing and the response having been extracted are separate facts.Next
Settings & Billing
What each outcome costs and how allowances are enforced.
Signals
How signals work across every BuildBetter source.