IBKIbukun Ogunnaike

Work / 02 · Agentic AI · voice-first · mobile

Designing an AI agent that never moves money without a yes

Company
NaijaBot · Enyata
Role
Product Manager
When
2026
Where
Lagos

Skim shows only the brief.

Problem

Paying a bill, topping up data or booking a ride in Nigeria means opening a different app every time. An AI agent can do it from one sentence. But the moment an AI can spend your money, trust stops being a feature and becomes the whole product.

What I owned

  • The PRD, then the FRD, milestone by milestone
  • User flows, parameters and acceptance criteria for every action
  • The trust model: confirmation, re-authentication, memory controls
  • Sequencing third-party integrations into an MVP

Key calls

  • Confirmation-first: no money, booking or transfer without an explicit yes
  • The agent never holds the user's money
  • The user controls what the agent remembers and forgets
  • Prove the agent on a few integrations before adding more

Outcome

A full FRD with user stories, flows and acceptance criteria for each action, and a scope the team can build in milestones. The product is in development, so this case study covers the specification.

Context

NaijaBot is a client product I manage at Enyata. It's a voice-first AI agent for Nigerians: say "buy data" or "book a ride to Ikeja" and it does the work across the services people already use.

It didn't start that way. The first PRD was a productivity and wellness assistant, and I specified it across four milestones. Then the direction changed to an agent that acts on your behalf. That was the stronger product, and it meant rewriting the FRD around one question: what does it take for someone to let an AI spend their money?

01

From assistant to agent

A wellness assistant competes with every global app in the category. An agent built for Nigerian services, bills, data, rides and food, has no direct equivalent. But an agent that can do anything can never be finished.

So the first job after the pivot was scope: decide which actions the agent can take, in which external systems, and add them in order. Bills, data, airtime and reminders depend on aggregator APIs we can integrate directly. Food and rides depend on commercial partnerships, so they can move to version 2 without blocking the MVP.

02

Nothing moves without a yes

Every action that involves money, a booking or a transfer follows the same pattern. The agent gathers what it needs, then shows an action confirmation sheet: what it's about to do, through which app, from which account and at what cost. Then biometric re-authentication. Only then does the Confirm button work.

The spec is explicit about what the agent is not. It never holds the user's money and never acts without confirmation. Payments run through the user's own linked accounts and apps, and the confirmation sheet says so in plain words.

03

Ask, don't guess

An AI agent fails badly when it fills a gap with a guess. So every flow defines what the agent asks when something's missing. No destination? "Where are you going?" No GPS? "Where should the driver pick you up?" Several ride apps installed? It shows the ones it found and lets you choose.

Each feature in the FRD lists its user inputs, system-derived inputs and outputs separately, so engineers can see exactly what the agent knows and what it must ask.

04

Memory that earns its place

The agent remembers saved numbers, past orders and frequent destinations so the second request is faster than the first. "Same plan as last time?" "You go to this address often. Want me to save it?"

But memory is the user's, not ours. Users control what is remembered and what is forgotten, and there's an emergency lock that disables linked accounts and suspends every action at once.

05

Operating an agent, not just shipping one

An agent is only as reliable as the services it calls. The admin side of the spec includes integration health: the live status of every third-party API the agent depends on, so the team sees an outage before customers do.

From Ibukun's PRD and FRD work on NaijaBot at Enyata.