One workspace for advisers, from ad click to signed client
- Organisation
- HappySeal · financial advisory operations
- Role
- Product architecture and delivery
- Period
- Singapore
A command centre for advisory teams — acquisition, routing, appointment fulfilment and lifecycle messaging in one product instead of five disconnected tools.
- Meta, Google and TikTok into one intake
- 3 platformsMeta, Google and TikTok into one intake
- intake through to converted, each owned
- 5 stagesintake through to converted, each owned
- conversions posted back to the ad platform
- Two-wayconversions posted back to the ad platform
How the system actually worked

Scroll the figure sideways to read it, or turn your phone.
- Three platforms, one scored intake. The goal-selection question on the public form qualifies the lead and routes it before anyone has spoken to them.
- Assignment is a gate because the funnel's real failure was here: leads arrived and stopped, because nothing owned the step between arrival and a conversation.
- The message path is chosen from source, intent, owner, appointment state and what was sent before. A missed appointment gets a recovery path, not the generic nurture sequence.
- Conversions post back against the original lead ID through a delivery ledger with idempotency and retries — so the platform optimises toward customers, not form-fillers.
Context
A financial advisory business in Singapore running paid acquisition into a manual process. Leads arrived from instant forms and landing pages; what happened next depended on which adviser happened to pick them up.
What was actually needed
The visible problem was conversion rate. The actual problem was that leads entered the system and stopped — dozens sitting in intake, none qualified, none converted, because nothing owned the step between arrival and a conversation.
What I did
I shaped the product around the operating loop rather than the org chart: lead ingestion from Meta, Google and TikTok into one scored intake; assignment with explicit ownership; an adviser workspace built around one client at a time instead of a queue per tool; appointment scheduling with calendar sync; and lifecycle messaging over WhatsApp for the cases that stall.
How personalisation worked
The message path is chosen from the lead’s source, intent signals, who owns them, the state of their appointment and what they were sent before. Someone who missed an appointment gets a recovery path, not the generic nurture sequence. The adviser keeps the relationship; the system handles the timing.
Decisions that mattered
Closing the loop back to the ad platforms. Conversions are posted back against the original lead ID through a delivery ledger with idempotency and retries, so the platform optimises toward people who actually became customers rather than people who merely completed a form.
What changed
HappySeal became one operating layer instead of a set of disconnected tools — acquisition, assignment, appointment recovery, adviser onboarding and lifecycle messaging inside a single product, with the public conversion flows feeding it directly.
The insight I kept
When a funnel stalls at one specific stage, it is almost never a messaging problem. It is a missing owner. Every stage needs a name attached to it, or work quietly accumulates there and nobody notices for a quarter.
Stack & practices
- React
- TypeScript
- Firebase
- Meta Conversions API
- Google Calendar
- PWA