Bengaluru, India
Try it live
Work
/Case study: Cybersecurity RFPs
CybersecurityUX ResearchDashboardsUser JourneysB2B

Ofofo RFP: When the Catalogue Runs Out

Mohammed Zabeeh·July 8, 2026·13 min read
Ofofo RFP: When the Catalogue Runs Out

A cybersecurity marketplace catalogue answers known needs. This is the system for everything else: custom requests for cybersecurity products and services travelling between a buyer dashboard, a seller dashboard and an admin, from a blank form to a purchased order.

20-25 / month
RFPs raised
$5,000
Average deal size
71%
Buyer-reported success
16
BANT segments mapped
Client
Ofofo
Role
UX Lead
Timeline
2023 to 2024
Type
Enterprise

How this was worked out

The method behind the numbers above, including the parts that were never measured.
Baseline
Under broadcast, 40% of sellers who received an RFP sent a proposal back. Counted in the admin dashboard by me and the product manager.
Hypothesis
If an RFP is routed only to sellers whose listed services match the request, more of them will answer it. Threshold: none set in advance.
Variables
Changed: Broadcast replaced by tag-matched routing, and a stepper replaced by the RFP and proposal side by side · Measured: Share of notified sellers who send a proposal, and buyer-reported success after payment
Control group
Yes. Sellers left on broadcast in the same window returned about 17%, against 52% for the 10 on targeted routing.
A/B test
None live.
Prototype comparison
A stepper against the RFP and proposal side by side. 48 participants (administrators, managers, security teams, small-company owners), all saw both, order counterbalanced, ship rule set beforehand at 60%. Side by side won at 75%.
What changed
Keywords and tags on each RFP matched against the services each seller lists, so a request reaches sellers who can actually answer it.
How measured
Coverage and RFP counts from the admin dashboard, read by me and the product manager. Revenue in Stripe, recorded by the CEO. Buyer satisfaction from a form after payment, answered by about 90% of paying buyers.
Result
Coverage 40% to 52% for the 10 targeted sellers, against about 17% still on broadcast. 71% of paying buyers who answered the form said the process worked. 20 to 25 RFPs a month, around $5,000.
What didn't survive
Broadcast distribution. Only about half the sellers who received an RFP ever responded, which the routing replaced.
Limits, and next
Time to deal was never measured, and neither was the number of edits a buyer makes at draft stage, the one that would improve the suggestions during RFP creation. Next: count those edits.

Principles leaned on

  • One 5-status ladder worded identically on the buyer and seller dashboardsConsistency, and a shared mental model
  • Get a Custom Quote offered on the zero-results page, the moment the catalogue failsRecognition over recall
  • Editing locked once the first proposal lands, remind-once throttling, and a guard on leaving a half-filled formError prevention

The Problem

The Ofofo marketplace worked when a buyer knew what they wanted: browse, filter, compare, buy. But the buyers worth the most arrived without a product name in mind. A customer, an investor or a regulator had told them they needed "security sorted", they had money set aside and a deadline attached, and what they lacked was the vocabulary to turn that pressure into a marketplace search. Before this system their only route was to email the Ofofo sales team, who would ring round a few sellers and relay questions in both directions for weeks. Every one of those deals lived in inboxes the platform could not see, learn from or speed up. The custom request-for-proposal system, for short, became the answer: let the buyer describe the problem in their own words, let qualified sellers respond with structured proposals, and let the platform carry the negotiation from blank form to purchased order, 20 to 25 times a month once live.

Research: Who the Catalogue Could Not Serve

The groundwork came from 2 research artefacts. The personas gave the human texture: Emily, the marketing manager whose company just got breached and needs recovery she can understand. Raj, the entrepreneur buying security to close enterprise deals. Daniel, the researcher gathering intelligence with no purchase intent. Only one of the three maps cleanly onto a catalogue. The sharper instrument was a segmentation: all 16 combinations of Budget, Authority, Need and Timing, each mapped to the features that would serve that visitor. It started as a sales exercise, but one row changed the product. The Interested Decision-Maker, the visitor with budget, authority and timing but no articulated need, was prescribed exactly one feature: request-for-proposal . The most commercially valuable person on the site was the one the catalogue could not help, and the flow existed for them.
One flow, 3 roles. Before any screens, the flow was drawn end to end in and mapped in the as four side-by-side columns: the process itself, the buyer dashboard, the seller dashboard and the admin side.
The flow also fixed the governance rules that make a negotiation fair. A buyer can edit their request only until the first proposal arrives. A seller can edit their proposal only until the buyer shortlists it. A seller can nudge an approved-but-unpaid buyer exactly once. Anything nonstandard, like custom form fields, routes through the admin.

The Buyer's Side

The request form is where a vague obligation becomes a specification. The buyer names what they think they need, describes it in their own words, sets a maximum budget and picks a pricing model, with an escape hatch for anything the presets miss. Features and deliverables are added as tags rather than prose, which quietly produces the structured data sellers need to respond precisely. 2 dates, a closing date and an estimated start, give the request a clock.
A persistent "Get a Custom Quote" button sits at the top of the sidebar on every dashboard page, because the moment a buyer realises the catalogue does not have their answer can happen anywhere. In practice it mostly happened in the marketplace: 6 of every 10 RFPs were born on the zero-results page, where a failed search offers "Get Custom Quotation" instead of a dead end. Reading the responses. An open request becomes a 3-pane workspace: the request on the left, incoming proposals in the middle filtered by status pills, controls on the right. Before anything arrives, the middle pane says "Be patient, proposals coming your way", a small kindness that stops a new feature feeling broken.
Each proposal opens into an itemised detail, with the seller's price against the buyer's stated maximum. Decisions live in one "Move proposal to" rail with Shortlist, Approve and Decline, each gated by a confirmation. Proposals can also be compared side by side, attribute by attribute, with the status controls embedded in the comparison. Up to four could be approved and compared, but every request resolves into exactly one purchase.
Approval starts the transaction: the approved proposal grows a "Checkout Product" action, payment runs through the standard checkout, and the request closes with an order ID and a "View Order" link.

The Seller's Side

Incoming custom requests are demand, so they surface as a first-class on the seller's dashboard home alongside orders and offerings. The section is a pipeline table: request name, buyer, status, dates, and per-row actions to chat, view or draft a proposal.
Distribution as a design decision. The first version broadcast every request to every seller, and only about half of them ever responded. The fix came from structure the form already captured: the keywords and tags on each RFP were matched against the services each seller listed, so a request landed only with sellers who could actually cater to it. Response quality went up because the audience got smaller, and a notification preference let each seller control the volume. The proposal workspace. Opening a request mirrors the buyer's 3-pane layout: the buyer's requirement on the left, exactly as written, the workspace in the middle, and the status rail on the right. The proposal form forks first on "What are you offering?", because a product and a service need different anatomies.
The status ladder is the same 5 words the buyer sees, defined from the seller's anxiety rather than the system's: Proposed means "the buyer hasn't taken any action on your proposal yet". Both sides read one shared vocabulary, which is most of what keeps a two-sided feature from feeling like two different features.
From approval to order. An approved proposal is money not yet in the bank, so the rail changes to Purchase Details: "Yet to be purchased!" with a single-use Remind Buyer action. Once the buyer pays it flips to a purchased banner with the order ID, and the seller gets a "Create Offering" action. That custom offering enters the same marketplace approval pipeline as everything else the seller lists. The RFP system does not bypass the quality gate, it feeds it.

Tested, Then Changed

The flow went through 3 cycles of changes, each funded by watching real behaviour. The buyer's create form collapsed three structured inputs into one rich-text editor, gained PDF attachments, and renamed a passive Save to an honest "Raise Request". Requests became editable with success and failure , and RFP status was promoted onto the dashboard home and into a notifications tray, because a negotiation you have to go looking for is a negotiation that stalls. The seller side got the bigger change: the was rebuilt around a dual-role account, with a company switcher and a "Switch to Buying" toggle. Sellers buy security too, and the platform stopped pretending otherwise.
Both journeys were wired into covering the full , down to the leave-guard on a half-filled form. One comparison settled the layout: a stepper against the and the proposal side by side, shown to 48 participants who each saw both in counterbalanced order, with a ship rule set beforehand at 60%. Side by side won at 75%, and the stumbles logged along the way funded request editing in one cycle and proposal comparison in another.

Outcomes, and Where Each One Comes From

Every number on this page traces to something measured:
  • 40% to 52% proposal coverage: read in the admin dashboard before and after distribution changed from broadcast to targeted routing, for the ten sellers moved across in May 2024. Sellers left on broadcast in the same window returned about 17%. The change was made because only about half of sellers ever responded to a broadcast.
  • 71% buyer-reported success: a satisfaction form sent to buyers after they pay, answered by about 90% of paying buyers. Of those who answered, 71% said the process worked. It is a satisfaction measure, not a task success rate.
  • 20 to 25 RFPs a month, ~$5,000 average deal: platform records once live, not projections, with revenue recorded in Stripe. Six of every ten of those RFPs entered through the marketplace's zero-results page, so most of this pipeline was recovered demand that used to bounce.
  • 16 BANT segments: the framing artefact itself, and the reason the RFP system was built at all.

Milestones

Aug 2023
Personas and BANT segmentation
16 budget, authority, need and timing combinations mapped to features, and the Interested Decision-Maker row made the case for an RFP system.
Sep 2023
Flow and IA across 3 roles
The end-to-end flow drawn across buyer, seller and admin lanes, with the governance rules fixed in the diagram before any screen existed.
Mar 2024
Cycle 1: the full RFP flow
The create form, the 3-pane workspace on both sides, the five-status ladder, and the approval-to-checkout handoff.
May 2024
Prototypes and targeted routing
Both journeys prototyped end to end and tested with 48 participants, and ten sellers moved from broadcast to tag-matched routing.
Jun 2024
Cycles of tightening
Rich-text editor, attachments, editable RFPs, Compare on every proposal card, status in notifications, and the dual-role chrome.

Lessons

  1. Your best buyer might be the one your catalogue cannot serve The exercise reframed the whole product. The visitor with budget, authority and a deadline but no product name was not an edge case, they were the highest-intent segment on the site, and they needed a different front door.
  2. Two-sided features live or die on shared vocabulary Buyer and seller read the same 5 statuses, defined in plain language from each side's view. The moment the two dashboards describe the same negotiation differently, trust in the system starts leaking.
  3. Governance rules are UX, write them early Edit locks until the first proposal, revision locks after shortlisting, remind-once throttles. None are screens, all are experience, and fixing them in the flow diagram meant no screen contradicted them.
  4. Structured inputs are a gift to the other side of the marketplace Features and deliverables as tags felt stricter than a free-text box, but that structure is what let sellers respond precisely and proposals be compared. It paid out twice when the same tags started routing each request to matching sellers.

FAQ

Because the research showed the most qualified visitors could not use the catalogue. The BANT segmentation mapped every combination of budget, authority, need and timing, and the segment with money, mandate and urgency but no articulated need had nothing to click. The RFP flow is their front door.

Rules fixed at the flow level. Buyers can edit a request only until the first proposal arrives, so sellers never answer a moving target. Sellers can revise a proposal only until it is shortlisted. Approved-but-unpaid buyers can be reminded exactly once. Custom requirements route through the admin instead of bending the form.

Because context and decision belong on one screen. The buyer reads a proposal with their own request still visible on the left, and the seller drafts with the buyer's requirement in view throughout. Nobody negotiates from memory, and the mirrored layout means learning one side teaches you the other.

Design Skills

User Journey MappingPersonasBANT SegmentationInformation ArchitectureInteraction DesignContent Design

Tech Stack & Tools

FigmaFigJamMicrosoft ClarityHotjar

Got a problem shaped like this one?

I am open to senior and lead product design roles, and to the odd piece of client work. Fastest way to a real conversation is to pick a time.