Deal reporting without duplicate rows, import processes restored

The challenge they faced
A healthcare administrative technology provider delivering solutions to health plans across North America, the team struggled to track and report on custom work and ad hoc requests within their existing HubSpot setup. Their standard retainer tiers and product catalog did not accommodate bespoke builds, one-off projects, and transformation-scoped work that fell outside established SKUs. This gap made it difficult for leadership to see the full picture of work in progress and to formalize advisory sessions as billable time.
The strategy we mapped
We started by resolving the most immediate visibility problem: leadership was losing confidence in their deal reporting because line items caused rows to duplicate, making the same deal appear multiple times with identical totals. This confusion risked undermine trust in the system. Rather than abandon line items–which the team needed for product-level detail and accounting–we designed a workaround using an automated workflow to sync product data into a single deal-level field, preserving one row per deal while capturing which products were in play.
A second discovery early in the project revealed a gap in how the team was handling imports and event tracking. Previous process knowledge had walked out the door with a staff departure, and subsequent attempts to upload conference attendees created duplicates and malformed records. We scheduled a training to rebuild that institutional knowledge before tackling the reporting work, ensuring the foundation was solid.
The solutions we executed
The core of the work was building a workflow that auto-populates a deal-level field called Products Interested In by reading the line items attached to each deal and mapping them to the team's product catalog. The workflow runs whenever a deal changes, clears the old product list, and repopulates it based on what line items are present. We included a safeguard that emails alerts when a line item maps to no product, so nothing falls through the cracks.
The workflow applies only to active deals in the pipeline, leaving closed deals untouched. This approach lets the team see all products on a deal without having to scan line items manually, and it freed up their reporting to show one clean row per deal with the full picture of what was sold.
We conducted a training session on custom objects and import hygiene to restore the team's confidence in their data processes. The session covered how the Event and Event Interaction custom objects work, the correct way to import attendee data without creating duplicates, and best practices for tracking conference interactions with precision. We also walked through a detailed how-to document so the process was not dependent on any one person. This training prepared the team to work alongside a new third-party partner and ensured that future event imports would be clean and reliable.
What changed after the engagement.
The team now has a single, dependable row per deal in their reporting while maintaining product-level detail through line items. An automated workflow reads line items, maps them to the product catalog, and populates a deal-level field called Products Interested In, eliminating manual scans and preserving executive visibility into what was sold without the duplicate rows that had eroded leadership confidence in the system. A safeguard alerts the team when a line item fails to map, ensuring nothing falls through the cracks.
The team's data processes are now documented and repeatable. A training session restored institutional knowledge on how the Event and Event Interaction custom objects work, the correct import procedures to prevent duplicates, and best practices for tracking conference interactions. Staff turnover no longer threatens operational continuity; the team can now import attendee data cleanly and independently, and a new third-party partner has a shared foundation to build on.
Want results like these?
Tell us where your revenue engine is stuck — we'll map the fix in one call.