This guide teaches you how to build a realistic, testable Figma prototype from an existing set of frames — ready for a moderated or unmoderated usability session. Follow all eight steps and you will have a working prototype with conditional logic, variable-driven states, and a shareable test link in approximately 90 minutes.
What You'll Build
- A multi-screen clickable prototype with realistic navigation flows
- Interactive components using Figma Variables and conditional logic (as of Figma's 2025–2026 feature set)
- A prototype link configured for unmoderated testing with tools like Maze or UserTesting
- A documented interaction map so your team can maintain the prototype over time
Prerequisites
- Figma Professional or Organisation plan (Variables and Advanced Prototype features require these plans)
- An existing set of designed frames — at least one user flow with 4–8 screens
- Basic familiarity with Figma components and Auto Layout
- A free Maze account or access to UserTesting for the test link step
Step 1: Audit Your Frames Before You Wire Anything
Why does this step matter?
Wiring a prototype on top of inconsistent frames wastes time. Broken Auto Layout, detached components, and missing states create dead ends during testing that skew your results.
Before opening the Prototype panel, run a quick audit:
- Select all frames and check that layer names are descriptive (e.g.
checkout/step-1, notFrame 47). - Confirm every interactive element — buttons, inputs, toggles — is a component instance, not a raw shape.
- Verify that hover and focus states exist as component variants.
Common pitfall: Skipping this step means you will discover broken interactions mid-session. Allocate 10–15 minutes here. It saves 30 minutes later.
Step 2: Define Your Test Flow and Happy Path
What is a happy path in prototype terms?
The happy path is the shortest, error-free route a user takes to complete the task you are testing. Define it before you add a single connection.
Write it out in plain language first. For example:
User lands on homepage → clicks "Start free trial" → fills in sign-up form → sees confirmation screen.
Then list every alternative path: form errors, empty states, back navigation. Each alternative needs its own frame or component state. If you are testing a SaaS onboarding flow for a Canadian or Australian startup, you may also need locale-specific screens (currency, date format). Flag these now.
Pro tip: Keep your test flow to one primary task per session. Testing more than two tasks in one prototype inflates session time and reduces the quality of feedback you collect.
Step 3: Set Up Figma Variables for Realistic State Management
Why use Variables instead of duplicate frames?
Before Figma Variables (introduced in 2023 and significantly expanded through 2025), designers duplicated frames to show different UI states — a checkbox checked, a form pre-filled. This created unmaintainable prototype files with dozens of nearly identical frames.
Variables let a single frame show multiple states. This is faster to build and far easier to update after a test round.
Here is how to set them up:
- Open the Local Variables panel (Shift + Option/Alt + V).
- Create a Collection named
Prototype States. - Add Boolean variables for toggle states:
isLoggedIn,formSubmitted,errorVisible. - Add String variables for dynamic text:
userName,planName.
Bind each variable to the relevant layer property via the Apply Variable option in the design panel. For text layers, use the variable binding icon next to the content field.
Common pitfall: Variables do not sync across separate Figma files. Keep your prototype in the same file as your design components.
Step 4: Add Prototype Connections for the Happy Path First
Switch to the Prototype tab in the right panel. Wire your happy path from start to finish before adding any alternative flows.
- Select the trigger element (e.g. a primary CTA button).
- Drag the connection arrow to the destination frame.
- Set the interaction: On Click → Navigate To → Destination Frame.
- Choose an animation. For usability testing, use Smart Animate with a 200–250ms duration. This matches native app transitions closely enough to feel real without distracting participants.
When should you use Overlay instead of Navigate?
Use Open Overlay for modals, tooltips, and drawers. Use Navigate To for full page transitions. Mixing these up is the single most common prototype bug — it breaks the back-navigation behaviour testers expect.
Step 5: Build Conditional Interactions Using Advanced Prototype Features
What are Conditional interactions in Figma?
Figma's Conditional interactions (stable as of early 2025) let you set rules like: if formSubmitted is true, navigate to the confirmation screen; otherwise show the error state. This removes the need for duplicate frames to simulate validation logic.
To add a conditional:
- Select your submit button and open the Prototype panel.
- Click + to add an interaction, then choose Conditional.
- Set the condition:
formSubmittedequalstrue. - Set the true branch: Navigate to
confirmation-screen. - Set the false branch: Set variable
errorVisibletotrue, which triggers the error state on the same frame.
Pro tip: Limit conditionals to 2–3 per flow. Deeply nested conditions are difficult to debug and slow down prototype performance in the browser player.
Step 6: Add Realistic Input Interactions
Empty form fields are the biggest immersion-breaker in usability testing. Participants focus on the placeholder text rather than the task.
Use these techniques to simulate realistic input:
- Drag-to-change component variants: Set text input components to switch from
emptytofilledvariant on click. Bind the filled state's text to youruserNameString variable. - Keyboard trigger interactions: Use Key / Gamepad triggers on the frame to simulate pressing Enter to submit a form. This tests whether participants understand keyboard navigation.
- Delay-based transitions: Add a 600–800ms delay before navigating from a loading state to a results screen. This mirrors real API response times without overcomplicating the prototype.
At Lenka Studio, when we build prototypes for client usability testing, we use pre-filled String variables for every name and email field. It reduces session confusion by a measurable margin — participants focus on the flow, not the empty boxes.
Step 7: Configure the Prototype Settings for Testing
Before sharing the prototype, configure it correctly in the Prototype settings panel (accessible when no element is selected).
- Starting Frame: Set this explicitly. Do not leave it on the default first frame in the layers panel — testers will start in the wrong place.
- Device: Choose the device that matches your test context. For a mobile app, set iPhone 15 Pro or a comparable Android device. For a web app, set Desktop (1440px).
- Flow name: Name it clearly — e.g.
Checkout Flow v2 – May 2026. Version in the name matters when you share multiple rounds with stakeholders.
Then click Share Prototype and copy the link. Set access to Anyone with the link can view. Do not require sign-in — it blocks unmoderated testers.
Step 8: Connect to a Usability Testing Tool
Which testing tool works best with Figma prototypes?
Both Maze and UserTesting accept Figma prototype links directly. Maze is more cost-effective for SMBs in Australia and Singapore running self-serve studies. UserTesting gives access to a larger recruited panel, which suits teams in the US or Canada with larger research budgets.
To connect to Maze:
- Log into maze.co and create a new study.
- Add a task block. Paste your Figma prototype URL into the Maze prototype field.
- Set the starting screen and success screen within Maze's flow mapper — these must match the frames you configured in Step 7.
- Add task instructions: keep them under 25 words. Example: "You want to start a free trial. Complete the sign-up process."
- Run an internal pilot with 2–3 colleagues before launching to real participants. Fix any dead-end connections you find.
Common pitfall: Maze measures misclick rate and time on task. If your prototype has too many dead-end frames (non-interactive areas), Maze will report inflated misclick rates that do not reflect real usability problems. Fix dead ends before launch.
Once your research is running, it is worth checking how your product's brand perception tracks alongside usability scores. A free brand health score assessment can help you understand whether design improvements are moving the needle on brand trust — a dimension usability data alone does not capture.
Frequently Asked Questions
Does this prototype approach work for mobile app testing?
Yes. Set your prototype device to iOS or Android in Figma's prototype settings, then share the link via the Figma mobile app or Maze's mobile player. Participants interact with the prototype on their own device, which gives more realistic touch behaviour data than desktop browser testing.
How many participants do I need for a usability test?
For qualitative moderated testing, five participants typically surface around 80% of major usability issues — this is well-established guidance from Nielsen Norman Group research. For unmoderated quantitative studies through Maze, aim for 25–50 responses to get statistically meaningful misclick and completion rate data.
What if my Figma prototype is too slow or laggy in the player?
Large prototype files slow down because of heavy image assets and complex Smart Animate transitions. Flatten images to WebP or PNG at 2x resolution maximum, reduce Smart Animate to only key transitions, and break very long flows into separate prototype flows linked via external URL interactions. Files under 50MB play smoothly in most browsers.
Can I use this method without a Figma Professional plan?
Figma Variables and Conditional interactions require a Professional or Organisation plan. On the free Starter plan, you can still build a solid prototype using component variants and duplicate frames to simulate states — it is more manual but fully functional for basic usability testing.
How is a Figma prototype different from a coded prototype for testing?
A Figma prototype is faster to build (hours, not days) and does not require engineering time. It is best for testing navigation flows, visual hierarchy, and copy clarity. A coded prototype is better for testing performance-sensitive interactions, real data rendering, or accessibility with screen readers. For most SMB usability studies, Figma prototypes deliver sufficient fidelity at a fraction of the cost.
Next Steps
You now have a complete, testable Figma prototype connected to a usability testing tool. Your next actions:
- Run a pilot session with two internal users and fix any dead-end connections.
- Launch your study and collect at least five sessions before reviewing results.
- Document findings in a structured research report and map them back to your design backlog.
- Iterate on your frames and re-test the corrected flow before handing off to development.
If you need help building a research-ready prototype, running usability studies, or turning findings into a refined UI — the team at Lenka Studio works with SMBs across Australia, Singapore, Canada, and the US to deliver design that is grounded in real user behaviour. Get in touch and we can scope what you need.




