Study flow
A React block (a whole screen) in Beamline's Research & design app.
A study's blocks in order, each with where people go next. A block that routes by its answer (multiple choice, scale, open question, prototype task) has conditions, each a test that fits the block (answer is or isn't, rating between, contains, is exactly, doesn't contain, outcome, misclicks above) and a later block or the end, then Otherwise; welcome, tree and website blocks send everyone to one place, said. Only later blocks are offered; a route back or to a removed block is a problem, ratings that overlap say the first one wins, empty text is said, and a follow-up that runs on into the other branch's block is flagged. Each block in the list says where it goes and whether it has a problem. On a live study, edits are held as unsaved and saving is refused while problems remain.
Use it for
- Branching a survey, test or onboarding by answers, with a fallback and problems said.
- Any ordered form where later questions depend on earlier answers.
Not for
- Automations with triggers and actions (workflow-builder).
- Filtering records by conditions (query-builder).
Anatomy
- header: the product's mark, the title and study, the problem count, Save on a live study
- list: each block's number, title, type and where it goes; a branch count; a stripe for problems
- panel: route by the answer (or why not), conditions with a test, a value and a destination, add, remove, Otherwise or Always; problems
States
- no conditions: Always to one place
- conditions: a test per block type; Otherwise
- routes only to one place for welcome, tree and website blocks (said)
- problems: removed or earlier destination (red), overlapping ratings, empty text, a follow-up running into the other branch (amber)
- live: unsaved changes, saved, save refused with the first problem
- phone: one column
- right to left: the page mirrors
Keyboard
- Tab through blocks and fields; Enter or Space chooses a block; arrows pick options
Motion
Nothing moves; changes appear on input.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
study (required) | string | — | |
blocks (required) | StudyBlock[] | — | |
defaultRoutes | Record<string, BlockRoute> | — | |
defaultBlock | string | — | |
published | boolean | — | The study is collecting answers: route edits save explicitly and apply from then on. |
onSave | ((routes: Record<string, BlockRoute>) => void) | — | |
product | string | — | Your product's name, shown as its mark. |
className | string | — | Classes on the documented visual root; no override by default. |
ref | Ref<HTMLDivElement> | — | Receives the documented native target or imperative handle; omitted by default. |
Built from
Import
import { StudyFlow } from "@beamline/study-flow";
Get it
Study flow is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent
More in Research & design
- Research synthesis: A research study turned into evidence in one place. Transcripts: passages marked as accepted highlights or as the assistant's suggestions (dashed)…
- Study setup: Set up an unmoderated test and its screener. Test: what's tested (a website, a prototype by its share link, an app by its store page), who takes it…
- Participant review: One participant's session, answer by answer, beside the list of everyone who took the study. The list filters (finished, left early, with a recording)…
- Click heatmap: One screen of a usability task as it looked (your prototype's frame or a page built from your parts, scaled into a phone) with where people clicked over…
- Tree test: A tree test: build a navigation tree and read where people went. Build: pages added at the top or under any page, indented under the page above or moved…
- Prototype task: A prototype task in a study. The linked prototype refreshes from the design keeping the task and paths (a start screen gone from the new version said, a…
- Task results: A usability task's results, from headline outcomes down to paths and screens. Outcomes (direct success, indirect success, gave up) say their share and…
- Matrix question: A matrix question and the participant's side of it, side by side. Rows (up to ten) share one set of choices (two to seven); Enter adds a row, several…
- Prototype review: Reviewing a design file's clickable prototype. Present: the board on a stage with its wireframe, the flow chosen (an unavailable one can't be), Back…
- Report builder: Build a chart from your metrics without code: choose metrics, how to group them over time, an optional breakdown, filters, the range and the chart, see…
- Report library: A business's reports in one place. The directory: reports by topic and group with search, each with what it answers; one this person can't open says why…
- Review page builder: Building the page reviewers use to go through records one by one. The queue of records (one with no title shows its id instead of a blank); the record as…
- Database builder: What a database does for the people who use it, built in one place. Templates: starting values per property (a relation default points at an existing…
- Workflow builder: Automation rules for a SaaS without code: a trigger, conditions built with the query builder that branch into Yes and No, actions and waits, drawn as a…
- Workflow library: The automation library: every automation as a row (what starts it, whether it's live, a draft or paused, who owns it, when it last ran, and its runs this…
- Drawing board: A whiteboard a team already knows how to use, like FigJam: tools in a floating bar at the bottom (Select V, Hand H, Sticky note S, Shape R/O/D, Connector…
- Model workbench: A CAD model's workbench around a large isometric scene of its bodies, each shaded from its material's appearance with a soft ground shadow and an axis…
- Component properties: A design system component from three sides. Its variants as a matrix on two chosen properties, the others filtering it, each cell drawing the variant; a…
- Slot editor: Slots in a design system component, from making to filling. The main component's layer tree with a checkbox per layer: a nested frame converts to a slot…