← Back to the Filing Cabinet The Ledger Room

Lifecycle & growth, with receipts.

Everything here happened inside Wema Bank / ALAT's lifecycle marketing program, which I've owned end to end since March 2023 — segmentation, journey design, copy, and increasingly, the survey infrastructure and personalization logic behind it. Every number below is paired with the actual dashboard it came from, not a rounded-up estimate.

📈 Automated journeys 💳 Card conversion 💤 Dormant activation 📋 Survey system
📈
Automated behavioral journeys
15+Live journeys
11.5M+Automated trips
722.1%Peak uplift vs control

The problem

ALAT has millions of customers, each doing something different at any given moment — some just opened the app for the first time, some haven't transacted in months, some are near a physical branch that's running a promotion. A single blast campaign to all of them wastes the message on everyone it isn't relevant to, and manually building a one-off send for every micro-segment doesn't scale past a handful of campaigns.

What I actually built

I designed and published a portfolio of always-on behavioral journeys in MoEngage — each one triggered by a specific customer action or context rather than a calendar date. Location-based deals fire when a customer is near a relevant merchant. Weekend offers target the exact window when redemption is most likely. Re-engagement flows watch for the moments a customer is most receptive, not just when it's convenient for the marketing calendar.

The decisions that mattered

The hardest part wasn't any single journey — it was avoiding message fatigue across 15+ journeys running simultaneously against overlapping audiences. That meant building in frequency capping and journey priority logic so a customer eligible for three different flows doesn't get hit by all three in the same day. Getting that suppression logic right is why the uplift numbers stayed high instead of decaying as the program scaled.

What's next

Extending the same trigger logic to a couple of underused engagement moments (in-app dwell time, near-miss transactions) that aren't yet feeding a journey.

ALAT Deals location-based flow dashboard — 6.5M trips started, 722.1% uplift
ALAT Deals, location-based — 6.5M trips started, 722.1% uplift from control
ALAT Deals Friday-Sunday flow dashboard — 6.0M trips, 695.5% uplift
ALAT Deals, Friday–Sunday — 6.0M trips started, 695.5% uplift from control
Ramadan PNS day 21-29 flow dashboard — 198.6K trips, 263.3% uplift
Ramadan PNS journey — 198.6K trips started, 263.3% uplift from control
💳
Card conversion journey
73%Lift in card conversion

The problem

Customers were starting a virtual or physical card request and then abandoning it partway — a classic funnel leak, and one that's expensive because a card request that dies mid-flow is a customer who's already shown intent and still doesn't convert.

What I actually built

A triggered, multi-touch journey that picks the customer back up at whichever step they dropped off on, with a message tailored to that specific step rather than a generic "come back" nudge. Someone who stalled at document upload gets a different message than someone who stalled at delivery address confirmation.

The decisions that mattered

Segmenting by drop-off step rather than treating "abandoned card request" as one bucket was the whole unlock here — it let the copy speak directly to the actual blocker instead of guessing at it.

ALAT card feature adoption email
ALAT card feature push — one of the touchpoints in this journey
💤
Dormant account activation
67%Targeted accounts reactivated

The problem

A meaningful share of accounts had gone completely quiet — no logins, no transactions — and every month that passes without contact makes winning them back harder. Left alone, that pool only grows.

What I actually built

A segmented win-back journey that grouped dormant users by how long they'd been inactive and what their last known usage pattern looked like, then delivered a reason to return that matched that pattern — a security reminder for accounts that went quiet after a scare, a rewards nudge for accounts that were price-sensitive before going dormant.

The decisions that mattered

Timing mattered as much as message. I tested send windows against each dormancy segment's historical activity patterns rather than using one blanket schedule, which is a meaningful part of why the reactivation rate held at 67% instead of the low double digits a generic win-back blast typically pulls.

ALAT SIM-swap security reactivation email
"Don't Be a Victim" — one of the security-angle touchpoints used in this journey
📋
In-app & in-email survey system
2.72%→6.31%Response rate of opens
4.7M+Users reached, in-app

The problem

Feedback surveys were getting almost no responses. Two things were working against them: the personalization was generic ("Hi Customer" instead of a name), and the same questions went to every customer regardless of their actual account status — someone who'd never used a feature was being asked to rate it.

What I actually built

I designed and built the entire survey experience myself — both channels. In-email surveys are embedded directly in HTML/CSS campaign sends rather than linking out to a third-party form, which removes a full click-through step. In-app surveys are popups triggered by MoEngage segmentation rules, so the question set adapts to account status: a dormant-account survey asks different questions than an active-user survey. Both address the customer by name.

The decisions that mattered

The personalization change is the single highest-leverage thing I've shipped on response rate: switching from generic greetings to name- and status-aware copy took response rates from 2.72% to 6.31% of opens — more than double, from a copy and targeting change alone, no redesign required. I own the full loop here: the MoEngage segmentation logic that decides who sees which version, the in-app trigger rules, the email markup, and the question copy itself.

What's next

Piping survey responses automatically into the same segmentation system that triggers the next journey, so a bad experience flagged in a survey can immediately route into a recovery flow instead of sitting in a spreadsheet.

In-app name capture popup — what should we call you
The name-capture step that made every later survey personal
In-app segmented survey — Chiamaka, can you take this again
Segmented re-ask, personalized by name
Business account reactivation survey
Account-status-aware survey for dormant business accounts
Curious how this maps to a role you're hiring for?

Run a fit check with April.

Go to Fit Check →
AprilFaith's assistant

Visual interview with AI Faith

This is a recorded, consent-first conversation with an AI clone of Faith. By continuing, you agree the session may be recorded so the real Faith can review it and follow up personally.