SaaS.Dev

Flows: depth

How a Flow takes one Persona from first sign-in to an Offer's activation Event, with at most five onboarding questions, shown on leaseclock.com.

A Flow is the ordered path one Persona takes through an App, from first sign-in to an Offer's activation Event. In the design, the App derives each step from the definition and asks at most five questions before the first one.

From first sign-in to the activation Event

A Flow names three things: the Persona it guides, the Offer whose activation ends it, and its steps in order. Each step is one screen that ends in the Verb that opens the next.

The Offer declares what activation means: one Event, a count and a window. Customer.activate marks the Customer activated once that Event reaches the count, and time to value runs from the first step to that moment.

leaseclock.com sells reminders, so its activation is the first renewal reminder a manager's resident receives.

offers/starter.mdx
---
price: { amount: 29, currency: USD }
interval: month
activation: { event: Reminder.sent, count: 1, window: 14d }
---

The manager's Flow on leaseclock.com

In the design, the App builds the manager's Flow from the Property and Lease Nouns of The leaseclock.com sample and the forms the manager may open.

StepScreenEnds inWhy it comes here
1onboarding questionsSetting.update with the notice windowsets when reminders go out before any lease exists
2Property create formProperty.createa Lease needs a property to point at
3Lease create formLease.createthe first lease with an endsOn
4Lease list, sorted by endsOnthe next Lease.createmore leases mean an earlier first reminder

The Flow ends at the first Reminder.sent, which leaseclock.com sends with no step of its own. A manager with 12 leases spread over a year has one ending inside 60 days, so it arrives within the 14-day window.

Onboarding questions

A Flow asks at most five questions, and every answer lands in a record or a Setting the definition already holds. A question with nowhere to store its answer never appears.

apps/app/flows/manager.mdx
---
persona: manager
offer: starter
asks:
  - { question: "What is the name of your first building?", fills: Property.name }
  - { question: "How many units does it have?", fills: Property.units }
  - { question: "How many days before a lease ends should residents hear from you?", fills: Setting.noticeDays, default: 60 }
---

Three questions fill the first two steps ahead of time. The Property form opens with name and units filled in, so step 2 is one click.

Per Persona and per Offer

Each Persona gets its own Flow, because each comes to do a different job. Each Offer can end it at a different Event.

PersonaOfferSteps after sign-inEnds at
managerstarterquestions, Property, first Lease, more leasesthe first Reminder.sent within 14 days
managerteamquestions, Property, invite an assistant, first Leasethe fifth Reminder.sent within 30 days
assistantteamthe Lease list, then Lease.createthe fifth Reminder.sent within 30 days
landlordteamnoneno Flow

team declares activation: { event: Reminder.sent, count: 5, window: 30d }, because a team manages more leases. The landlord holds viewer and calls no Verb, so no step can end and the landlord has no Flow.

Where a Flow stalls

Time to value is measured per step, so the step that holds Customers shows in the Flow's numbers. If managers stop at step 3, the Lease form asks too much before the first save.

The fix stays in the definition. A question that fills startsOn and endsOn ahead of time shortens step 3 for every manager at once. App per Persona: derivation rules lists the rules that draw each step's screen.

Contents