Concept · v1 · 2026-09-19 · Activation & onboarding

The plan is the answer to five questions

Higgsfield's signup quiz sizes credits. Relay charges at state changes, so the same shape of quiz does something else here: it detects which state change has already happened — just you, a second person, or a regulated org — and the plan card assembles live while you answer. The pick at the end is one tap on something you watched get built.

Drawn, not built · proposal Reference · Higgsfield quiz, captured 2026-09-19 Plans §2 · three boundaries No Surprises · ratified 2026-08-13 Individual and team

Left is the Relay twist on Higgsfield's showreel panel: instead of product output playing on loop, the plan card is the showreel — every answer lands a line on it, so the "congratulations" moment has nothing to reveal. Deep links: ?arrival=campaign · ?arrival=invite · ?arrival=claim · ?plane=team · ?step=plan. Fixture data; no request leaves the page.

Fourteen screens, one instrument

The capture: higgsfield.ai/claude-ai-video-generator → /quiz?rp=/claude-ai-video-generator (seven dashes on the team branch, six on personal) → username claim → "Congratulations! a personal 55% OFF offer" with a three-hour countdown → Ultra / Team / Scale cards with the seat stepper pre-filled from the quiz → a follow-up mail quoting the quiz back. Read as mechanism rather than styling, every screen is doing one of three jobs: narrowing the plan, banking a personalisation payload, or manufacturing urgency. Relay takes the first two and refuses the third.

#Higgsfield doesMechanicallyVerdictRelay's version
P1A landing page per arrival intent — "Claude AI Video Generator", three numbered steps, the MCP URL in a copy boxThe connector setup is the hero; the quiz is one click away and carries a return pathAdoptThe in-app /connect page and the connect resource already carry every client's steps (GUIDE.connect-clients). The missing piece is the public door per client — one page, three steps, mcp.relayctx.com in the box. Out of this page's scope; belongs to marketing beside working-with-relay.html.
P2The quiz is its own route, /quiz?rp=…Detachable from any landing; returns you where you came fromAdaptRelay's intake lives at activation, the moment that already exists and already captures plan consent (relay-app activation.ts). The "return" is First Relay Step 1.
P3"How do you plan to use Higgsfield?" — personal / team, auto-advancePicks the plane; everything after branches on itAdoptMaps one-to-one onto the two org planes (SPEC.org-plan-model §0: plan is a property of the org). Kept binary.
P4"How many people in your team?" — Just me · 2–5 · 6–20 · 21–100 · 100+Pre-fills the seat stepper (2 on Team, 5 on Scale) and routes Team vs ScaleAdoptSame bands. Pre-fills seats against Team's three-seat floor; 100+ is Enterprise, sales-led, no card (Plans §3).
P5"What do you want to achieve?" — six goal cards, single-selectPersonalisation payload + which bundle to headline on the plan cardAdaptRelay's goals are its verbs — pick up where I left off, move context between tools, keep a team in sync, build a second brain, govern what agents carry, receive something sent to me. A goal picks the Track (the voice of the first relay) and the plan line to headline. It never locks a plan.
P6"What matters most to your team?" — up to three; a selected card grows a reassurance line ("SOC 2 & GDPR fully secured") next to a plan that says "SOC 2 (coming soon)"Inline objection handling; the reassurance is a promise lineAdaptSame gesture, with the promise made honest: every reassurance line carries a truth state — built, Enterprise ladder, or not yet. Governance answers route to Enterprise. We do not chip "coming soon".
P7"Which features do you want to try?" — chips, choose as manyFeature-interest payload; nothing downstream visibly uses itAdaptReplaced by the one question that changes setup: where do your agents live? Chips pre-fill the connect step's pill picker (connect-catalog.ts); three or more is the Pro line.
P8"How did you hear about us?" — thirteen chips, including AI assistantsSelf-reported attributionAdoptWritten to users.signup_source, which exists. "An AI assistant" and "someone sent me a Code" are Relay's own channels. Self-report sits beside tracked attribution (acquisition_campaign), never over it (E10).
P9"Claim your username to get started" — a generated handle, one checkbox for Terms + Privacy + 18Identity and consent at the end of the quiz, before the offerRejectThe legal gate is the one hard gate and sits before all of this (activation.ts); the handle is Step 6's "make it yours", the celebration, not a toll at the door (Activation v2 reconciliation, onboarding-walkthrough-v1.html). No second consent line.
P10A grey footer on every screen — "Helps us set up the right workspace", "We'll right-size your workspace and plan", "This helps us improve our product"A trust line under every askAdopt, literallyOurs names the consumer of the answer — the column it writes, the card it pre-fills, the step it seeds. An answer whose destination we cannot name is a question we should not ask.
P11"Congratulations! You received a personal 55% OFF offer" — confetti, erik_PERSONAL_PROMO, 02:58:00 counting downReciprocity + urgency; the "personal" code is the first name in a template; the headline 55% is 43–54% on the cardsRejectAnti-upsell brand; No Surprises is ratified. The honest twin already exists: a campaign's access grant — plan | trial, minted by an operator (SPEC.campaign-management §8) — shown pre-picked and stated plainly. The countdown becomes certainty: what will never change, printed on the card.
P12Three plan cards: seat stepper pre-filled, annual toggle on by default, credits translated into outputs ("~333 Kling 3.0 videos"), checks and greyed crosses per sectionThe plan card as the quiz's answer; abstract units made concreteAdopt the formSeats from P4; included lines render from billing.TIERS, never typed (G1); no annual toggle because no annual price exists (checkout concept, 2026-09-12); Free is always on the screen, pickable; the commitments sit beneath the cards.
P13"Skip this offer" beside "Full Pricing Details"An always-visible exitAdoptSkip on every screen. Skip = Free with defaults, and Re-size my plan on the Plan page re-runs the intake any time (E6).
P14The mail: "I noticed you're looking to focus on video-gen", "solve that creative bottleneck you mentioned in the quiz", a code that "expires in 3 hours", signed by a PM persona, a P.S. with 22 million creatorsQuiz answers as merge fields; then persona, expiry and social proofAdapt / RejectThe merge fields are the good idea — the Day-0 drip mail quotes the goal and the plan picked. The persona, the expiry and the P.S. go. Signed by a person who answers replies. Specimen on the last screen of §A.

The deeper difference. Higgsfield has fourteen models to sell and credits to meter, so its quiz must estimate appetite. Relay's monetisation boundary is not usage (Plans §2 — don't gate the individual, gate the org): Pro is "I depend on this daily", Team is "a second person needs the same context", Enterprise is "compliance says we must". Each of those is a fact about the person's situation, and facts can be asked. That is why five questions are enough and why none of them needs a limit to bind first.

Every answer has one consumer

The rule the prototype runs. It is a table, not a model: the person can read why the card says what it says, and change any input. Nothing in it gates anything — the plan screen always shows Free, and Skip is always Free.

QuestionAnswerFeedsStatus
Q1Just me / me and other peopleThe org plane — personal or team. Candidates: {Free, Pro} or {Team, Enterprise}drawn
Q22–5 · 6–20 · 21–100 · 100+Seat pre-fill (3 · 6 · 21 · —); 100+ → Enterprise; 21–100 with a governance priority → Enterprisedrawn
Q3One of six goalsTrack (voice of the first relay) + the headline line; govern → Enterprise; receive → Free, shortest pathdrawn · Track exists on campaigns only today
Q4Up to three priorities (team)Reassurance lines with truth states; audit / SSO / custom terms → Enterprisedrawn
Q5ClientsConnect-step pill picker pre-fill; ≥3 → Pro line ("more connected clients")picker built · pre-fill drawn
Q6Sourceusers.signup_source; beside acquisition_campaign, never over itcolumn built
GrantCampaign access = plan | trialPre-picks the plan screen; a trial names its plan and daysbuilt 2026-09-18

The three boundaries, as questions

  • Free → Pro — "I depend on this daily." Asked as: three or more clients, context at rest (second brain), context across tools. Free is the honest answer to "pick up where I left off" alone; Pro is what the card says when it becomes daily.
  • Pro → Team — "A second person needs the same context." Asked directly in Q1; Q2 sizes it. Nothing about the individual's usage is involved.
  • Team → Enterprise — "Compliance says we must." Asked in Q4 as the things only the vault's hardness supplies. Sales-led, no price on the card, the answers travel with the lead.

What a pick is worth

  • A Free pick is still a pick: today Free is a state you fall into (activation.ts: "Everyone defaults to Free"), which means the pick rate is unmeasured. The first thing this changes is that Free becomes a choice you make.
  • A Team pick while self-serve org creation is gated is a recorded intent — the demand counter that argues for flipping the gate (E4).
  • An Enterprise route is a product-qualified lead with its own answers attached — Engine 2 in the growth engine, fed by Engine 1 without a form.

A Code in hand never meets a questionnaire

Higgsfield has one door. Relay has four (DEC-030: /x/ landing, /i/ redemption, ?ref= attribution, and a Code someone gave you), and receiving is always free is the first commitment. So the intake is placed by arrival, not fired at everyone.

ArrivalWhat they came forWhen the intake runsPlan screen shows
directRegistered at relayctx.comAt activation, fullThe recommendation, Free beside it
/x/ campaignA personalised demo relay to receiveAfter the demo receive, at activation — the demo is the hook, not the formThe campaign's access grant pre-picked (plan | trial); EAP reads open-ended with nothing to pick (E3)
/i/ inviteSomeone else's workspaceThree questions only — goal, clients, source. Plane and size are the org'sNo pick. "You're joining {org}; the plan is theirs." (E7)
?ref= referralA colleague's Loop linkAt activation, full; the Loop commitment applies at checkout, as it does todayThe recommendation, with the commitment noted — not a countdown
Code in handTo receive one thingAfter the first receive, never before (E1)Free, unless they choose to be asked

The guard metric for this section is time to first receive, which must not move. An intake that lengthens the receive path has been placed wrong, whatever it does for the pick rate.

Make the pick a stage, then count it

The funnel today

register → approve → activate → connect (step 1) → first receive (step 2) → first send (step 3) → first invite (step 4) — funnel.py, stamped once per user, mirrored to GA4. No stage records a plan pick. Activation defaults to Free, so "picked Free" and "never looked" are the same row.

Proposed

  • A plan_picked stage between activate and connect, stamped on an explicit pick — Free included — with {plan, recommended, accepted, arrival} as PII-free params.
  • Persist the answers once, on the object they describe: plane, size and priorities on the org (plan is the org's); goal, clients and source on the user.

The numbers to watch (no targets invented here)

  • Pick rate — explicit picks ÷ activations. By construction this approaches one; the interesting split is Free-by-choice vs Skip.
  • Recommendation acceptance — picked the recommended plan ÷ shown. The rule is wrong where this is low.
  • Paid pick at activation — Pro or Team ÷ activations, and separately trial-grant acceptance.
  • Team intent while gated — the count that argues for RELAY_SELF_SERVE_ORG_CREATE.
  • Guard: time to first receive — must not move (§D).
E1 ship gate

Code in hand

They came to receive one thing. Receive first; the intake runs after the first receive, and only offers itself. Receiving is commitment #1 and a questionnaire in front of it breaks the product's premise.

E2

Campaign with a grant

The plan screen shows the grant as the pre-picked plan — "Your invite includes 14 days of Pro, no card" — stated plainly. A trial names its plan and its days (grant_trial(pro, 14d)); on a team plane the grant applies to the personal org and the Team card is priced as usual.

E3

EAP

EAP is plan with plan = beta — open-ended, ends by graduation, never by lapse. The intake still runs for Track and clients; the card reads Early Access · open-ended and there is nothing to pick. DEC-012's promise is printed, not implied.

E4 ship gate

Team picked while self-serve is off

The pick is recorded as intent, the card says what happens next ("we set the workspace up with you"), and the answers route to the CRM as a PQL. Never a dead button; never a silent downgrade to Free.

E5

100+ or a governance priority

Enterprise is sales-led and custom. No price on the card, no fake "from $X". The action is Talk to us and the answers travel with the lead; Free stays pickable beside it so nobody is stranded on a form.

E6

Skip everything

Skip = Free with defaults, no re-ask on the next visit. Re-size my plan on the Plan page re-runs the intake any time; the earlier answers are the pre-fill, not a lock.

E7

Invited into an existing org

Plane, size and plan are decided by someone else. Ask only goal, clients and source; show whose workspace it is; no plan pick. Asking them to size a team they were invited to is the wrong question to the wrong person.

E8

Where the answers live

Plan is a property of the org (SPEC.org-plan-model §0), so plane, size and priorities belong to the org record; goal, clients and source to the user. A second org gets its own three answers; the user's three carry over.

E9

An answer changes

The card recomputes. No answer ever locks a plan, and the plan page always allows a change in either direction — the downgrade-safe brain is commitment #3.

E10

Self-report vs tracked attribution

They arrived via /x/elevate-2026 and say "word of mouth". Both are true. signup_source takes the self-report; acquisition_campaign keeps the tracked value; neither overwrites the other.

E11 ship gate

A number copy and code disagree on

Included lines render from billing.TIERS at build time, never from plan.ts PLAN_FEATURES (which still says "unlimited" where code says otherwise — gap G1). The card cannot print a promise the enforcement does not keep.

E12

Consent ordering

The legal gate runs first and alone. The intake carries no checkbox of its own; the plan pick carries plan consent, as activation does today. Two consent surfaces would be one too many.

Built — this page leans on

  • The activation card with a plan picker, a pre-selected plan, and plan consent — relay-app activation.ts (GET …/plans → {plans, preselected}).
  • Access-grant rendering on the onboarding surface — relay-app plan.ts getAccessGrant / renderAccessGrantHtml.
  • Campaign access = none | plan | trial, EAP as plan = beta — relay-platform SPEC.campaign-management §8, built 2026-09-18.
  • Attribution columns on users: signup_source, acquisition_campaign, first_demo_campaign (§7).
  • Funnel stages and first-time stamps — funnel.py.
  • The connect pill picker — relay-app connect-catalog.ts, one source for the Connect page and the onboarding step.
  • Enforced prices — billing.TIERS: Pro $15/mo; Team $15/seat/mo, three-seat floor. Stripe hosted checkout with promotion codes; Loop commitments applied at checkout.
  • The First Relay drip, slots R1–R6, seed-on-demand — onboarding_drip.py.

Drawn — nothing here exists

  • The six questions, their copy, and where the answers persist (org vs user, E8).
  • The right-sizing rule and the seat pre-fill; the reasons list on the card.
  • Goal → Track for signups that did not arrive through a campaign — Track is a campaign field today (§7, "Track (was Angle) optional behind a General default").
  • Answers as merge fields in the Day-0 drip mail; the mail itself.
  • A plan_picked funnel stage; Re-size my plan on the Plan page.
  • Team self-serve purchase — gated (RELAY_SELF_SERVE_ORG_CREATE default off); Plans §6 sequences the flip.
  • Routing of Team-intent and Enterprise answers into the CRM as a PQL.
  • The public per-client landing pages (P1) — noted, not drawn here.

Reference capturedhiggsfield.ai — /claude-ai-video-generator, /quiz?rp=… (seven screens), the offer modal, the pricing page, and the follow-up mail. Fourteen screenshots, EC, 2026-09-19. Ask of record: "Just want to conceptualize this as part of ensuring we get plans picked more than anything."

relay-boarddocs/strategy/plans-master-plan.md §2 (the three boundaries), §3 (the canonical tiers), §6 (the gate sequence) · docs/strategy/pricing-commitments.md (ratified 2026-08-13; the five invariants on the card) · docs/product/onboarding.md ("a new user has no Erik") · docs/product/sequential-onboarding-program-map.md (First Relay, Steps 1–6) · docs/growth/growth-engine.md (Engine 1 feeds Engine 2) · docs/DECISIONS.md DEC-012, DEC-025, DEC-030.

relay-platformdocs/SPEC.campaign-management.md §7 (four classes, one namespace, Track), §8 (access mode) · docs/DESIGN-NOTE.streamlined-experience.md (a preset, never an audience detector — the intake sets no flags) · docs/GUIDE.connect-clients.md · src/relay/funnel.py · src/relay/onboarding_drip.py · src/relay/handles.py.

relay-appweb/src/activation.ts (the philosophy comment: one hard gate, activation is intentional, plan choice carries consent) · web/src/plan.ts · web/src/onboarding.ts · web/src/connect-catalog.ts.

relay-creativeActivation — profile (the live-preview precedent this page's left panel descends from) · Sequential Onboarding (Step 6 owns the handle) · Org onboarding (where a Team pick lands next) · Checkout (where a Pro pick lands next; the billing.TIERS-only rule) · Welcome mail (the template the Day-0 specimen would ride) · Forms kit.

concepts/onboarding-plan-pick-v1.html · clean URL /concepts/onboarding-plan-pick ← All concepts Changelog