We were approached by a national commercial laundry business that was having trouble modernizing their sales team processes. Their sales and service reps had many tools available to them, but the experience was disjointed and not integrated, which resulted in them not using the tools. They kept reverting back to taking notes on paper, using Excel, or other ways to track their notes from equipment inspections and site visits.
HQ knew that there was immense value in unifying their data and rolled out an impressive tech stack: HubSpot to track sales activities, SAP to create orders and view past-purchase information, and Excel sheets for saving site visit data. However, accessing and updating these tools on mobile devices while on-site continued to be a challenge and a deterrent, and the hefty investment in their tech stack was going unused.
They needed one source for data collection and management that was easy to access on mobile devices and provided very little friction for this large services team.
After exploring their current and historical tech stack, we identified the key information that was critical for their visit reports: they needed to see historical sales data for each company, access equipment specific reports to check what’s changed from the last visit, and they had to do it quickly on a phone or tablet.
To solve for this we pulled in their key sales data into HubSpot via the native HubSpot<>Shopify integration, solving the gap in visibility for past purchases. Then we created a custom object for Equipment to keep track of each piece of equipment that their clients have. Custom equipment properties were created based on their existing spreadsheets and custom views and reports were built so they could stop using the spreadsheets and move to a more centralized data collection model.
But pulling the data into HubSpot wasn’t enough - accessing this data on mobile proved to be exceedingly difficult when a given company could easily have a hundred pieces of tracked equipment.
HubSpot’s mobile app serves many field reps well, but this team faced challenges due to high record volumes. Limitations like the 99-record display cap for associated equipment and a 5-saved-view mobile maximum hindered quick access to essential data.
We addressed these mobile limitations by building a custom HubSpot CMS UI. Gated for authenticated users, it allows managers to toggle between team member views. Reps can now easily access filtered lists of companies requiring visits, check visit history, and monitor monthly progress.
The interface, a HubSpot CMS Custom Module, is hosted on a private page secured by HubSpot membership login to ensure authorized access. Using HubL for server-side rendering and vanilla JavaScript for client-side state and API management, the UI functions as a lightweight, mobile-optimized single-page application without requiring frontend frameworks or build tools.
The dashboard, a HubSpot CMS Custom Module, is hosted on a private page secured by membership login. Using HubL and vanilla JavaScript, it functions as a lightweight, mobile-optimized single-page application.
The app integrates directly with the HubSpot CRM API v3 via RESTful calls to fetch assigned companies, visit status, and equipment counts. Drilling into a site retrieves data from a Custom Object containing 50+ equipment properties. Custom Association Labels link these records, enabling a full equipment roster per company.
Submitting a report triggers a Pipedream serverless workflow via webhook. This middleware creates HTML notes via the Engagements API, logs data to Google Sheets with automated formatting, and updates HubSpot properties. The Google Drive API further automates folder and spreadsheet organization.
Submitting a report triggers a structured JSON payload to a Pipedream serverless workflow via webhook. Pipedream acts as the middleware orchestration layer, executing a multi-step pipeline: it routes requests by type, generates formatted HTML notes via the HubSpot Engagements API, logs data to Google Sheets (applying automated styling via batchUpdate requests), and synchronizes Equipment and Company properties in HubSpot. Additionally, the Google Drive API automates the organization of per-company and per-equipment spreadsheets within structured folders.
HubSpot CMS: Custom Modules, HubL templating, membership-gated pages, custom CSS/JS assets
HubSpot CRM API v3: Companies, Custom Objects (Equipment), Associations, Engagements (Notes), Properties, Search
HubSpot Custom Objects: Equipment object schema with 50+ custom properties, custom association labels
Google Sheets API v4 & Google Drive API v3: Automated spreadsheet creation, data writes, conditional formatting, folder management
Pipedream: Serverless workflow orchestration, HTTP webhooks, multi-step pipelines, OAuth token management
Frontend: Vanilla JavaScript (no framework), mobile-first responsive CSS, HTML5 form APIs
Each company record included a filtered view of Equipment that needs inspection, and the visit reports specific to that company’s engagement.
Inventory reports for each company can be easily completed, with photos uploaded and added from their mobile device. Equipment condition reports can be accessed with a single click.
Integrated CRM data ensures all report updates automatically sync to the relevant Equipment and Company records.
While the sales team was satisfied, managers faced friction accessing data across individual Equipment objects. They required a streamlined view of all reports at the company level without navigating multiple records.
To address this, we implemented a workflow triggered by Equipment Condition or Company Inventory Reports. It automatically generates a formatted, comprehensive note on the main company record, aggregating all submitted Equipment data for easy review.
Instead of sorting through hundreds of spreadsheets or lacking visibility into account health across their territories, sales managers can now use HubSpot dashboards to monitor potential issues, identify upsell opportunities, and surface other critical insights, supported by internal notifications and alerts for high-priority items.
Now our reps can update reports while drinking their coffee in the morning.
Beyond reports and dashboards, HubSpot's AI tool Breeze Copilot provides reps on-demand access to data that previously took hours or days to retrieve, directly within their portal or mobile Breeze app.
The new CRM UI benefits more than just sales. Real-time equipment updates enable the marketing team to launch automated, strategic campaigns. Notifications for safety updates, re-orders, and targeted promotions now reach the correct contacts at the optimal time, requiring no extra effort from sales or marketing.