User Flow Mickael Rutembya · Flow Atlas

Office Hours

/ressources/office-hours/

Visitor browses sessions and tiers, joins a waitlist, or buys a payable seat.

User intent

What the visitor is trying to do

« I want to find a ninety-minute collective session, buy a seat or membership, or join a free waitlist for the next cohort. »

Entry points

ElementDestination
Resources "Voir le format et les accès"/ressources/office-hours/
Nav indirect via resources/ressources/office-hours/
Qualification group format note/ressources/office-hours/
Session detail cohort link/ressources/office-hours/cohortes/<slug>/

Flow

Adjacent routes — click a node to open it.userflow
flowchart LR Start(["Visitor arrives"]) --> OH["/ressources/office-hours/ (Office Hours)"] OH --> Session["/ressources/office-hours/<slug>/ (Session detail)"] Session -->|Payable| Checkout["/paiement/produit/<slug>/"] Session -->|Free waitlist| WaitlistForm["POST registration"] Session -->|cohort_access| LeadForm["POST cohort application"] Session --> Cohort["/ressources/office-hours/cohortes/<slug>/"] Checkout --> Stripe["Stripe Checkout"] Stripe -->|Paid| Return["/paiement/<ref>/retour/"] Stripe -->|Cancelled| Cancel["/paiement/<ref>/annule/"] Return --> Entitlement["/acces/<token>/"] WaitlistForm --> End(["Flow ended"]) LeadForm --> End click OH "https://mickael-umt.com/ressources/office-hours/" "Open Office Hours" click Session "https://mickael-umt.com/ressources/office-hours/ai-security/" "Open Session" click Checkout "https://mickael-umt.com/paiement/produit/ai-security-office-hours/" "Open Checkout" click Stripe "https://checkout.stripe.com" "Open Stripe" click Return "https://mickael-umt.com/paiement/<ref>/retour/" "Open Return" click Cancel "https://mickael-umt.com/paiement/<ref>/annule/" "Open Cancelled" click Entitlement "https://mickael-umt.com/acces/<token>/" "Open Entitlement" click Cohort "https://mickael-umt.com/ressources/office-hours/cohortes/september-2026/" "Open Cohort" click End "https://mickael-umt.com/ressources/office-hours/" "Back to Office Hours"

Screen inventory

IDScreenUser task
P0Office Hours listingBrowse sessions and tiers
P1Session detailInspect session format, price, and cohort
P2Payable checkoutBuy a seat via Stripe Checkout
P3Free waitlistRegister for the free waitlist
P4Cohort accessApply for cohort access without payment
P5Cohort detailInspect cohort composition, seats left, interest breakdown
P6EntitlementAccess session resources after payment

Flow scenario

Scenario O1

Engineering manager buys an Office Hours seat

Trigger

  • Visitor clicks "Voir le format et les accès" from the resources page
  • Opens the Office Hours listing
  • Clicks on a session to see details

Experience

  1. The Office Hours page presents the format: ninety minutes per month, three to five cases per session, ten participants maximum, never recorded.
  2. The visitor opens a session detail to inspect the tier (membership, single seat, waitlist) and cohort composition.
  3. The visitor selects a payable tier and is redirected to the checkout form.
  4. The checkout form posts to /paiement/produit/<slug>/ and creates a Stripe Checkout session.
  5. The visitor pays via Stripe and is redirected to the return page.
  6. The webhook settles the payment, grants entitlements, and assigns the buyer to the cohort.
  7. If the session is free, the visitor joins the waitlist or applies for cohort access without payment.

Trust and safety rules

  • All pricing is public and deterministic; no coefficient reaches the browser.
  • The calculator access gate blocks disposable and non-routable domains.
  • Payment pages are blocked by robots.txt and carry no editorial SEO value.
  • No card data touches the server; Stripe hosts the checkout page.
  • Office Hours sessions are never recorded; participant identity remains private.
  • Cohort detail aggregates seats left and interest breakdown without exposing participant identity.

Interaction rules

  • Mobile fields use 16 px text to avoid browser zoom.
  • Reduced-motion preferences disable nonessential transitions.
  • Language toggle switches FR/EN across all strings.

Result states

StateWhat the visitor seesWhat happens next
BrowsingOffice Hours listing with tiersVisitor opens a session detail
PayingCheckout form and Stripe pageBuyer pays or cancels
WaitlistedWaitlist registration confirmationCohort auto-assignment when full
AppliedCohort application confirmationOwner reviews application
EntitledReturn page with session accessBuyer joins the session