A CRM That Looked Busy and Did Nothing


1. Snapshot

Client: An agricultural market intelligence firm operating across East Africa
Industry: Agricultural market intelligence and research
Geography: Kenya, Tanzania, Uganda — with active market development beyond East Africa
Business age at engagement: Over 10 years Team size at engagement: 50+ (82 employees across Kenya, Tanzania, Uganda — implementation team of 5)
Engagement date: May to June 2026
Growth stage: 03 (Build) to 04 (Momentum)
Entry point: Architect
What they came asking for: “We want to be able to open HubSpot on a Friday morning and see what is happening with our pipeline.”
Pattern: The presenting problem was a symptom of an upstream gap

2. Executive Summary

This firm had been paying for HubSpot for years. The platform held their contacts and companies. A spreadsheet ran their business. When they came asking for a pipeline they could use, the work that followed found something more consequential than a configuration gap: active client contracts had quietly lapsed with no renewal conversation on record anywhere in the system, and nobody had seen it because nothing had been built to surface it.

The real constraint was not technical. It was that the system had never been built to reflect how this business actually works commercially — its two distinct revenue lines, its client classification logic, its renewal cycle, or its internal decision-making process. Three years of HubSpot data existed in a structure that could not answer the questions the business needed to ask.

The engagement produced a complete Classification Framework covering every property across Company, Contact, and Deal records, two purpose-built pipelines replacing a single undefined default, and a live recorded training session that gave the implementation team a permanent build reference.

Without this work, the firm would have continued building client relationships on a platform that could not tell them which relationships were at risk — and the next contract to lapse quietly would not have been the last.

3. The Situation They Recognised

The firm had a strong commercial operation. Two distinct revenue lines — a subscription intelligence product with an 18 to 24 month sales cycle, and a project-based research practice responding to tenders and direct commissions — generated recurring and new business across multiple East African markets. The team managed a client base of hundreds of companies across sectors including crop protection, animal health, animal nutrition, fertiliser, cement, and public health.

What they did not have was visibility. The question “how is the pipeline looking?” could not be answered from HubSpot. It could be answered from a spreadsheet that one or two people maintained, which meant the answer depended on who was available, how recently the spreadsheet had been updated, and whether the right version was open.

The platform had been configured at the start and never revisited. Default pipeline stages sat untouched. Three separate sector classification fields existed on every company record, each populated differently by different team members over time, none of them consistent. Contact records held email addresses and names but little else that could be used to understand a relationship.

The team knew this was not working. What they did not know was how far the gap had grown, or what it was costing them to operate without it.

What was missing was a system that reflected the business — not the business as it had been set up in HubSpot three years ago, but the business as it actually operated today.

4. The Moment of Risk

The firm was approaching a decision point about how to grow. New markets were being identified. The subscription product was being positioned for a wider geographic footprint. The client services team was being asked to manage more relationships with the same resource.

At that moment, the underlying data infrastructure was carrying unresolved problems that would compound under growth pressure. A system that cannot distinguish between two revenue lines cannot report on either. A client classification taxonomy with three inconsistent fields cannot produce reliable sector analysis. A pipeline with undefined stages cannot forecast accurately.

The more immediately visible risk was the renewal cycle. The subscription product ran on annual and multi-year contracts. Renewal conversations needed to begin months before contract end. But contract end dates were not in HubSpot. They were in the spreadsheet — which meant renewal visibility depended on whoever maintained the spreadsheet remembering to check it, and remembering to flag it to the right person, at the right time.

The relationship management process was running on memory and habit. What was about to happen was growth that would exceed the capacity of both.

5. What We Found

Finding 01 — Two commercial processes were running through one undefined pipeline

The subscription product and the project-based practice follow fundamentally different journeys from first contact to signed agreement. The subscription product enters through referral and relationship, moves through a long qualification and presentation process, and closes on written approval or a purchase order. The project practice enters through a tender or direct commission, requires a formal go/no-go review before resources are committed, and closes on a shorter cycle.

Both were sitting in a single default HubSpot pipeline with stages nobody had formally defined or agreed on. The system could not distinguish between them. It could not report on either of them accurately. A Friday pipeline review was impossible not because the data was missing, but because the structure to hold it had never been built.

Finding 02 — The classification taxonomy had collapsed

Three separate sector fields existed on the company record. The first had a fill rate under one percent and had never been properly used. The second had a zero percent fill rate and contained values that mixed sector labels with client type descriptions. The third was the closest to functional but conflated what the firm tracks in its research with what kind of organisation its clients are — two different questions that had been answered in the same field, producing data that could not be used consistently for either purpose.

Across nearly 450 company records, the primary classification field showed a 30 percent fill rate. The data existed in the system. The structure to make it legible did not.

Finding 03 — Active contracts had already lapsed without detection

A review of client delivery data against the system surfaced contracts that had ended months earlier with no renewal conversation logged anywhere in HubSpot. The platform was not surfacing this because it had not been built to surface it. There was no contract end date field. There was no renewal task. There was no view that would show a leader which clients had passed a critical milestone without a follow-up.

This was not a hypothetical risk. It had already happened. The spreadsheet may have captured it. The system did not.

Finding 04 — The platform they thought they were missing, they already had

Early conversations indicated the firm believed they might need to upgrade their HubSpot subscription to access the sales pipeline functionality they wanted. A full account audit confirmed that all five HubSpot hubs were already active and paid for across the account. Sales Hub, Service Hub, Marketing Hub, Operations Hub, and CMS Hub were all confirmed active.

The constraint was never the subscription. It was that the Sales Hub had never been configured to reflect how the business operates. Three years of payments had produced an underused account, not an under-resourced one.

6. What Changed

What decision became possible that was not possible before?

The fundamental shift was this: the business could now ask commercial questions of its own data and receive a reliable answer.

Specific decisions that became possible:

The leadership team could open the pipeline on a Friday morning and see subscription deals and project-based deals separately — by stage, by owner, by close date — without needing anyone to prepare a spreadsheet summary in advance.

The client services team could see, in a single filtered view, which active clients had not been contacted in 30 or more days and which contracts were approaching their end date within the next 90 days — without checking a separate document or relying on someone’s memory.

Every lost opportunity now carries a reason selected from an agreed taxonomy, which means that over time the pattern of why deals are lost becomes visible and actionable rather than anecdotal.

The go/no-go decision on project-based opportunities — previously an informal conversation — became a named, recorded stage in the pipeline, with a field for the reason when the decision is no.

What was not possible before the engagement:

Separating subscription pipeline performance from project pipeline performance in the same system. Knowing which clients had contracts ending without checking an external spreadsheet. Seeing why deals were lost across a quarter rather than case by case. Having a formal, recorded decision point before committing resource to a tender response.

7. The Result

Commercial

The renewal risk that had produced quietly lapsed contracts is now a system-level visibility problem rather than a memory-management problem. Contract end dates drive renewal reminders. The client services team has a view that surfaces at-risk relationships before the conversation becomes urgent.

Operational

Two pipelines replaced one default. Every deal stage has a definition agreed by the team in the firm’s own language. The classification taxonomy was rebuilt from three inconsistent fields into two clean, separate properties — one for what the firm tracks in its research, one for what kind of organisation the client is. The Outlook integration was confirmed active, meaning outgoing client emails log automatically. Manual activity logging covers everything the integration does not.

Confidence

The implementation team left the engagement with a complete build specification and a recorded training session that shows every step of the configuration in their live account. The build sequence is documented. The logic behind every decision is in writing. The person responsible for the build does not need to hold the architecture in memory — it is in the framework.

8. What This Prevented

A pipeline that grew without becoming more visible.

The firm was expanding into new markets. Growth on a broken classification structure compounds the problem — more companies in the wrong sector, more deals in the wrong pipeline, more contacts without a buying role recorded. The framework established a clean foundation before that expansion encoded new data into the same structural gaps.

A renewal conversation that never happened.

The lapsed contracts found in the review were recoverable. A relationship that lapses without a renewal conversation is recoverable. A relationship that lapses, goes unnoticed for six months, and is then approached cold is a different problem. The contract end date field and the 90-day renewal view exist specifically to ensure the conversation happens at the right moment, not after the window has closed.

A go/no-go decision made invisibly.

The project-based practice had a genuine internal review process before committing to a tender response. That process existed in conversation but not in the system. Decisions made without a record do not accumulate into a pattern. A go/no-go field with a reason for every no means the firm can see, over time, whether it is declining the right opportunities and whether the reasons are consistent with its strategy.

A training session that produced nothing replicable.

A demonstration that happens once, in a meeting, with no recording and no written specification, is lost the moment the meeting ends. The recorded session paired with the Classification Framework means the build can be replicated, audited, extended, and handed to a new team member without starting from scratch.

A Friday meeting that continued to run on verbal updates.

The Friday pipeline review was described at the start of the engagement as a meeting that needed data to anchor it. Without a configured system, it remained a verbal update from whoever had checked the spreadsheet most recently. The filtered pipeline views built during the engagement exist specifically to change that meeting — to make the data visible before anyone walks into the room.


Qallann Note

This engagement closed at the architecture and training stage. The build and data migration sit with the client’s implementation team, using the Classification Framework and the session recording as their guide. We have not reviewed the completed build or verified what the system looks like in active use.

What we can say is this: the architecture is sound, the logic is documented, and the decisions that produced it were made deliberately and on the basis of what the business actually does — not what the default HubSpot configuration assumes a business does.

The pattern this engagement exemplifies is common and underdiagnosed. Organisations buy platforms, configure them minimally, and then conclude the platform does not work. In most cases the platform works. The structure built on it does not. The presenting problem is always a configuration request. The real work is almost always upstream of that — in the decisions that were never made about what the system is meant to show, to whom, and when.

A case study with outcome data — what the renewed pipeline surfaced, what the first renewal conversation it caught looked like, whether the Friday meeting changed — will follow if and when that story is ready to be told.