Welcome & user profile
The first-time /get-started/user gate: when it appears, every field, validation, Next, and booking a founder call.
When this screen appears
Route: /projects/:uniqueIdentifier/get-started/user
HumanBehavior shows this user onboarding gate when the signed-in account has not completed profile onboarding yet (onboardedAt is unset). The project layout’s setup gate redirects any other project URL to this page until the gate is cleared.
You will not stay on this page if onboarding is already complete: the page loads /api/projects/:id/onboarding and, when newUserOnboardingRequired is false, immediately replaces the route with Project Setup (/get-started/project).
Invited members who still need user onboarding also land here (auth / invite redirect). If the project is already set up (setupComplete), finishing this step sends them to Home instead of Project Setup.
What you see
- A full-screen intro that types Welcome to Human Behavior, then settles into the form.
- A welcome card with:
- Your first name (from the session display name)
- A circular Upload profile picture control
- A decorative project number derived from the project id
- An About you section with required fields
- Bottom-left: Note from our team (opens a thank-you modal with Book a call with the founders)
- Top bar (after the intro settles): HumanBehavior mark + Get Started, plus your email menu with Log out
While the typed intro is running, the get-started top bar is hidden.
Profile picture
| Control | Behavior |
|---|---|
| Upload profile picture (avatar button) | Opens a file picker (image/png, image/jpeg, image/gif) |
| Size / type errors | Only PNG, JPEG, and GIF images are supported; Image must be under 10MB |
| Upload | POST /api/me/profile-image → session refresh; spinner while uploading |
Uploading is optional. You can continue without changing the avatar.
About you fields
All three are required (marked with *). Next stays disabled until every field has a value.
| Field | Control | Placeholder / options |
|---|---|---|
| Job title | Text | e.g. Product Manager |
| Company name | Text | e.g. Human Behavior |
| Company size | Dropdown | See options below |
Company size options
| Stored value | Label shown |
|---|---|
1-10 | 1-10 employees |
11-50 | 11-50 employees |
51-200 | 51-200 employees |
201-1000 | 201-1,000 employees |
1001-5000 | 1,001-5,000 employees |
5000+ | 5,000+ employees |
Company name and Company size may be prefilled from the onboarding API (prefillCompanyName, prefillCompanySize) when the project already has that data.
Press Enter in Job title or Company name when the form is valid to submit (same as Next).
Next / Saving…
| State | Button |
|---|---|
| Incomplete form | Next disabled (dimmed) |
| Valid, idle | Next |
| Submitting | Saving... with spinner |
On success the product:
POST /api/projects/:id/user-onboardingwith{ jobTitle, companyName, companySize }- Marks onboarding complete locally and refreshes the session
- Prefills Project Setup with the company name (session storage)
- Navigates to:
/projects/:id/homeif the project was already set up, or/projects/:id/get-started/projectotherwise
On failure: Failed to save. Please try again.
Note from our team
Opens a modal: A quick note from our team. Footer CTA:
| Control | Destination |
|---|---|
| Book a call with the founders | Opens Cal.com (founder 30‑minute booking) in a new tab |
Related
- Create a project — next step for new projects
- Billing — later in the same get-started flow