Context
Arifu is a Nairobi-based EdTech company that delivers bite-sized learning content to smallholder farmers, micro-entrepreneurs, and financial inclusion beneficiaries across Sub-Saharan Africa — via WhatsApp, Telegram, and SMS chatbot conversations. Their partners include Google, Mastercard Foundation, CGAP, and the GSMA.
The Campaign Distribution Platform was the internal tool that NGO program officers and content managers used to create, schedule, and distribute learning modules to target audiences. My role encompassed product research, usability testing, and UX design for the platform — contributing to a 20% lift in learner engagement and a 10% increase in new user acquisition during my tenure.
The problem
Arifu's content partners — NGOs, development banks, and agritech companies — needed to distribute learning campaigns to specific audiences across multiple channels. But the existing tool was a technical maze that required hand-holding from Arifu's own engineers for every new campaign launch.
- Program officers had no self-service way to create, preview, and publish a campaign without raising an engineering ticket
- Multi-channel scheduling was managed through disconnected spreadsheets — WhatsApp, Telegram, and SMS campaigns were configured separately with no unified view
- Reach and engagement analytics were pulled manually from three different systems and consolidated in Excel — reporting was always a week behind reality
- Facebook Ads were used to drive new learner acquisition, but there was no integration between the ad campaign performance and the learning module engagement data — partners couldn't close the loop from ad impression to module completion
- Content modules existed in English only at first; as partners expanded to multiple regions, translation and localisation workflows became an unstructured afterthought
"We spend more time configuring the campaign tool than we do thinking about the learners. By the time a campaign launches, our field team has moved on to the next thing."
— Program Officer, development partner organisation · Discovery interviewDesign process
Stakeholder interviews
Interviewed 14 NGO program officers, 6 field agents, and 3 Arifu engineers on campaign creation pain points.
Workflow mapping
Mapped the full campaign lifecycle — from content brief to learner completion — across all partner types and channel combinations.
Wireframes → prototype
Iterated through 3 rounds of wireframes in Figma. Prototype tested on Maze with 22 participants across 2 rounds.
Post-launch research
Conducted usability benchmarking 6 weeks post-launch — task completion time, error rates, and NPS measured against baseline.
Research & discovery
I led a two-week discovery sprint across Arifu's partner organisations, supplemented by analysis of support ticket logs — which turned out to be a rich signal for where the platform was breaking down.
What partners needed
Program officers wanted to launch a campaign in under 30 minutes, without engineering support. The existing flow averaged 3–4 hours including back-and-forth on channel configuration.
Partners running WhatsApp + Telegram + SMS campaigns needed a single scheduling view — not three separate configuration screens that had to be kept manually in sync.
The reach and impressions chart (Sept 2017 – Jan 2018 Mastercard data) showed volatile engagement peaks. Partners needed to understand what content types and timing drove those spikes — and act on that data while the campaign was still live, not a week later.
Facebook Ads were the primary acquisition tool for new learners. Partners needed to see the full funnel — ad impression → click → bot start → module completion — in a single dashboard, not split across Meta Business Suite and an internal Excel file.
The content library showed modules in states like "Draft", "Completed", "Pending", and "Review" — but these states had unclear definitions, and partners couldn't tell whether a "Pending" module was waiting on them or on Arifu.
The platform served multiple partners (Google, Mastercard, CGAP) in a single instance. Program officers needed to see only their organisation's campaigns and modules — with clear scoping, not reliant on manual search filtering to avoid cross-contamination.
Platform architecture
Before redesigning any screen, I mapped the full content and distribution architecture — from how a module was authored through to how it reached a learner on their phone and how that engagement looped back into analytics.
Module authoring
Google · Mastercard · CGAP
↓
←
Engine
Design decisions
Card-based module grid with explicit status taxonomy
I redesigned the module library as a card grid showing the module name, partner, language, distribution channels, and a clearly defined status badge (Draft / Pending — partner action / Pending — Arifu review / Completed). Removing ambiguity from the status labels cut support tickets about "stuck" modules by roughly half.
Persistent partner context in the left navigation
The redesign introduced a persistent partner-scoped nav: Partners → Projects → Sectors → Modules. A program officer logged in as "Google / M1: C19 Health" saw only that scope's content. Switching partners was explicit and required, not accidental.
Unified multi-channel campaign builder in 5 steps
The new campaign builder consolidated channel configuration into a single sequential flow: Select module → Choose channels → Set audience → Schedule → Review & publish. One flow, all channels, no separate configuration screens per platform.
Reach & impressions dashboard with time-range filter
The analytics dashboard surfaced reach vs impressions in a unified line chart with a "5 selected" channel filter — so partners could isolate WhatsApp vs Telegram vs SMS performance on the same view. The chart data refreshed in near-real time rather than daily batch updates.
Arifu Pixel + Facebook Ads campaign builder embedded
I designed the Facebook Ads integration flow within the platform — including campaign naming, special ad categories, conversion event location (Website / App), and Arifu Pixel tracking. Partners could create, launch, and monitor Facebook acquisition campaigns without leaving the Arifu platform.
WhatsApp/Telegram conversational module preview
Content managers could preview exactly how their module would appear inside a WhatsApp or Telegram chat before publishing — including message sequencing, image cards, and reply prompts. The Arifu bot delivered modules as numbered conversation turns, and the preview matched this exactly.
Key screens from the Figma file
The wireframes below are extracted directly from the Campaign Distribution Wireframes Figma file.
↑ Add screenshots exported from Campaign_Distribution_Wireframes.fig to the images/ folder using the filenames above
Figma design file
Add the Figma embed
Upload Campaign_Distribution_Wireframes.fig to Figma → Share → Copy embed link → paste into the iframe src below. The file contains the full wireframe set: module library, campaign builder, FB Ads integration, analytics dashboard, and chatbot delivery previews.
Outcomes
The redesigned platform shipped incrementally across Q3–Q4 2019. By early 2020 the self-service campaign builder had reduced average campaign setup time from 3–4 hours to under 45 minutes. Partner NPS improved, and engineering support tickets for campaign configuration dropped significantly.
The Facebook Ads integration — bringing acquisition campaign creation inside the Arifu platform and connecting ad performance to module completion data — was the most impactful single feature. Partners could for the first time see the full funnel from paid impression to chatbot engagement completion, and adjust budgets in response to what the data showed.
What I learned
- Support tickets are a UX research goldmine. Analysing 3 months of Arifu engineering support tickets before talking to a single user gave me a precise map of where the platform was breaking. The pattern was immediately clear: 70% of tickets were about campaign configuration, not content creation. That's where we focused.
- Status taxonomies are a product decision, not a copy decision. The "Pending" status caused enormous confusion because it didn't distinguish between partner-blocking and Arifu-blocking states. Splitting it into two explicit states — with clear owner attribution — was one of the highest-impact changes with the least implementation cost.
- Embedding third-party flows (like Facebook Ads) requires careful boundary design. The temptation was to build our own simplified ads UI. What worked better was a guided wrapper around the native Meta interface — familiar enough for users who already knew Meta, but structured enough to prevent common configuration errors like missing Arifu Pixel tracking.
- Real-time data changes user behaviour. When analytics moved from daily batch to near-real-time, program officers started checking the dashboard during campaigns, not after. That shift — from reporting to monitoring — enabled mid-campaign optimisation for the first time.