User Flow Mickael Rutembya · Flow Atlas

Calculator → deposit

/outils/calculator/

Visitor states a professional email, fills the 5-step mission form, receives a public quote, confirms interest, and pays the deposit.

User intent

What the visitor is trying to do

« I want to estimate the budget for a mission, understand the pricing methodology, and lock the scope with a deposit before committing to a call. »

Entry points

ElementDestination
Tools hub "Estimer"/outils/calculator/
Engagement "Ouvrir le calculateur"/outils/calculator/
Calculator method "Estimer"/outils/calculator/
Capabilities "Comparer dans le classement"/expertises/

Flow

Adjacent routes — click a node to open it.userflow
flowchart LR Start(["Visitor arrives"]) --> Gate["Access gate: professional email"] Gate -->|Blocked| Blocked["Access refused"] Gate -->|Granted| Calc["/outils/calculator/ (Step 1-5)"] Calc -->|Step 1| Mission["Mission parameters"] Calc -->|Step 2| Mobility["Mobility & onsite"] Calc -->|Step 3| Expenses["Expenses"] Calc -->|Step 4| Equipment["Equipment & resources"] Calc -->|Step 5| Code["Code & validation"] Code --> Quote["Public quote"] Quote --> Confirm["Confirm interest"] Confirm --> Deposit["/paiement/devis/acompte/"] Deposit --> Stripe["Stripe Checkout"] Stripe -->|Paid| Return["/paiement/<ref>/retour/"] Stripe -->|Cancelled| Cancel["/paiement/<ref>/annule/"] Return --> Entitlement["Entitlement granted"] Cancel --> End(["Flow ended"]) Confirm --> Qualifier["/contact/#call-qualifier"] Qualifier --> End click Calc "https://mickael-umt.com/outils/calculator/" "Open Calculator" click Quote "https://mickael-umt.com/outils/calculator/" "View Quote" click Confirm "https://mickael-umt.com/outils/calculator/" "Confirm Interest" click Deposit "https://mickael-umt.com/paiement/devis/acompte/" "Open Deposit" 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 Qualifier "https://mickael-umt.com/contact/#call-qualifier" "Open Qualification" click End "https://mickael-umt.com/contact/#call-qualifier" "Open Qualification"

Screen inventory

IDScreenUser task
P0Access gateState professional email; domain check
P1Calculator step 1-5Fill mission, mobility, expenses, equipment, code
P2QuoteReview public quote with day-rate and scope
P3Confirm interestValidate scope and lock quote
P4Deposit paymentPay deposit via Stripe Checkout
P5Return / CancelSee payment outcome and entitlements
P6QualificationSubmit structured call-qualification form

Flow scenario

Scenario K1

Engineering lead scopes a 3-month AI security mission

Trigger

  • Visitor opens /outils/calculator/ from the tools hub
  • States a professional email at the access gate
  • Passes the domain check

Experience

  1. The access gate asks for a professional email and checks the domain against disposable and non-routable lists.
  2. The visitor fills the 5-step mission form: specialty (AI Security), total days (20), onsite days (8), duration tier (3 months), zone (Z2).
  3. The calculator returns a public quote with day-rate reference and scope estimate.
  4. The visitor clicks "Confirmer l'intérêt" to lock the quote with a signed token.
  5. The visitor chooses to pay the deposit and is redirected to Stripe Checkout.
  6. After payment, Stripe redirects to the return page; the webhook settles the payment and grants entitlements.
  7. Alternatively, the visitor skips payment and submits a call qualification to validate scope during a call.

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.
  • The quote token is signed and time-limited; it cannot be forged or reused after expiry.
  • Throttling limits to 10 pending payments per email per hour.

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
Gate blockedAccess refused noticeVisitor must use a professional domain
Estimating5-step calculator formVisitor fills mission parameters
QuotedPublic quote with day-rate and scopeVisitor confirms interest or qualifies
DepositingStripe Checkout hosted pageBuyer pays or cancels
PaidReturn page with entitlementsBuyer downloads or books
CancelledCancelled notice; no chargeVisitor may retry or qualify