Onboarding is done when the account is routed, verified and funded
I build welcome flows on account state, so the clock starts at the form-fill and every step after it has a timestamp. At PingPong the same routing workflow that handles inbound leads got a record to its owner in 1–2 minutes, down from roughly 12 hours.
Opens are applause. First steps are onboarding.
I grade a welcome flow on one question: did the new account finish its first real step, and how long did that take? The first real step is whatever the account has to finish before the product can work for it; in fintech that step is KYC and a first payment. Onboarding handles the speed and the definitions from the form to routed, verified and funded; activation handles the triggers that fire on what the account does next. The KYC submission rate and completion time are set out in full on that page. Open rate and click rate don't answer that question, so if the first step's completion rate and completion time don't move, the welcome flow didn't work.
That framing changes where the work starts. The first onboarding step happens before any email: a new signup landing with the right owner, with context attached. At PingPong I automated that path from roughly 12 hours down to 1–2 minutes, so routing now finishes before the welcome email even lands. Underneath it sit 200+ automated workflows I built and maintained, sharing one architecture, and that kept the handoff fast as volume grew.
The other half: I write the definitions down first, then build the triggers. Ten years across growth, lifecycle and marketing ops in B2B fintech and SaaS taught me the same lesson, because a fast trigger on a messy definition just delivers the wrong email sooner.
Definitions first,
then the clock
01 · Define the states before the sends
I write the lifecycle stages, qualification logic, routing rules and handoff points down before any automation exists. Every trigger I build inherits these definitions.
02 · Route in minutes
I automated the handoff from ~12 hours to 1–2 minutes: I normalize what the form captures, score and assign the account when it arrives, and notify the owner. The new signup meets a person before the inbox does.
03 · Trigger on account state
I design multi-step onboarding, activation, nurture and re-engagement journeys. Product usage, intent and account data fire the triggers in HubSpot, Salesforce and Pipedrive. A status change earns the email.
04 · Put a clock on every step
I put a clock on three steps: routed, submitted, funded. When each step has a timestamp, the slow step names itself and the next fix is obvious. That clock is how I brought KYC completion from 140 hours to 24–48: first steps measured in days.
One trigger did most of the work
kyc_status → Approved, once per lifetime
I rebuilt our onboarding email system around one lifecycle trigger, and the thirty-day calendar came out. Enrollment fires the moment kyc_status changes to Approved. Three timed sends pace the unfunded wait. The flow exits the instant first_funding_date is set, once per lifetime. I engineered every step.
Registrations reaching KYC submission went from roughly 10% to 35–40%, and the wait shortened from 140 hours to 24–48; both are set out in full on the activation page. My rebuild didn't shorten the review itself; that queue sat with compliance.
KYC submission 10% → 35–40% · completion 140h → 24–48hFast first steps compound into revenue
At PingPong I owned marketing end to end for the cross-border payments line, and the funnel this onboarding flow fed is the one in that case study. Sales closed the accounts; my funnel kept verified, funded signups landing on their desks. Accounts that get routed in minutes and verified in days start transacting while calendar-based flows are still sending “just checking in.”
I ran this on a governed eight-tool GTM stack I owned end to end: Salesforce, HubSpot, Webflow, 6sense, Zapier, ZoomInfo, Salesloft, and GA4 with GTM. Same stack most teams have.
$2M → $76M year one → $250M+ year two · 8-tool governed stackWant onboarding you can put a clock on?
Every step after the form has a timestamp, and the slow one is easy to find.