<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=3112483845678115&amp;ev=PageView&amp;noscript=1">
1667960705449
SaaS Platform, Tech Startup, Health and Fitness

Vitruvian: Having Greater Data Transparency with Multiple Custom Objects

Vitruvian is a fitness tech startup allowing users to complete a full gym workout from the comfort of their own homes. To do this, users need both a hardware machine (Trainer+) and SaaS application (Vitruvian App).

Vitruvian captures all kinds of data from their app. Collecting workouts taken, classes used, subscription type, payment data and many more.

Vitruvian originally fed this data into a Hubspot standard object (Contact object) until major issues started to occur.

Vitruvian is a high-growth fitness technology leader that integrates a sophisticated hardware machine (Trainer+) with a dedicated SaaS application. To scale effectively, they required a "Relational Data Model" that could track multiple hardware assets and subscription tiers per user—a common hurdle in the Health-Tech and SaaS sectors.

Originally, Vitruvian utilised standard HubSpot Contact properties, but as the user base grew, this led to critical data overwriting and a complete loss of Lifetime Value (LTV) visibility.

 

"A more seamless and enriching brand experience"

💰

Increasing Upsell Opportunities

Giving Marketing and sales a clear view of each customer who could be upsold to.

⭐️

Greater Quality Support

Equipping customer service with more information relating to an individual machine or subscription issue. 

📈

Data Driven Growth

Having full visibility of user data allowing fresh data based decisions and more specific automations.

Enabling Marketing, Sales and Service teams greater visibility on user data.

 

The Issue

Vitruvian allows users to complete gym workouts on their Trainer+ machine (Hardware) which is connected to and controlled by an App. 

Each Vitruvian "machine" came with a monthly subscription plan that could be activated for additional benefits. A user couldn't get premium access to a machine that wasn't assigned to an active subscription. (Subscription was machine based rather than person based)

Vitruvian collected data from their app into segment. Then using an API the data is pushed into Hubspot. Everything was setup to push to contact object's property.

As customers and businesses (Gym's) started to have multiple subscriptions and machines. It became Impossible to store the information on the contact record alone. Two or more subscriptions would override the custom properties forcing them to display incorrect information.

Customer service teams weren't be able to correctly service customers and marketing wasn't able to correctly determine which customers could be upsold into being a premium user.

Vitruvian needed to... 

  • Have a clear overview of every subscription and the contact who owned it.
  • Have a clear overview of each machine and if it was "active" or "Inactive" allowing them to upsell and market correctly.
  • Having a clear overview of Gyms/ Businesses and the machines and subscriptions that they were responsible for.

The Challenge

The primary obstacle was the "Single-Record Conflict." Because the CRM was limited to person-based records, any customer owning multiple machines or gym-level memberships had their unique data points (serial numbers, activation dates, and subscription status) constantly overwritten. This created three major industry-specific pains:

  • Zero LTV Transparency: Inability to track revenue across multiple assets.
  • Service Friction: Support teams couldn't identify which specific machine a member was calling about.
  • Missed Revenue: Marketing couldn't segment users based on hardware usage vs. subscription status for upsell campaigns.

About Vitruvian

Vitruvian is the next generation of connected fitness bringing the weight room of a gym, in home. Delivering up to 200kg/440lbs of digital weight the Vitruvian Trainer+ uses artificial intelligence to read users’ range of motion and constantly respond to the way they move.

Paired with the Vitruvian app, the experience offers access to world-class fitness coaches, 200+ exercises, goal-orientated programs, and full workout data. In a compact machine that slides under a bed or couch when not in use.

Intelligent, adaptive, digital weight that revolutionises resistance training and provides people with a more effective, engaging, and convenient way to workout.

Visit their website →

The Solution: Relational Data Architecture

Building a "Machine" object and a "Membership" object. 

Once a contact activated their Trainer+ machine they would be associated clearly with the object. Meaning a contact could have multiple machines they were assigned to and deemed to be an owner or user.

When that contact activated a free trail, the contact would be assigned a "Membership" which would in simultaneously be associated with the Machine. This allowed Vitruvian to send

  • App/User data to the "Contact" record.
    (E.g. User details, Date of last use, workouts taken, etc)
  • Machine data to the "Machine" record
    (E.g. Activation status, serial ID)
  • Subscription data to the "Membership" record.
    (E.g. Stripe subscription details, trial end dates)
  • Relationships between each object to be automatically associated.
    (E.g. Owner, User, Active/ Inactive Machine)

Allowing sales, marketing and service teams a very clear indication of who owned which machine and if they were paying an active subscription for it. 
This also allows Gym's (Company Object) to be able to control multiple machine and memberships at a company level as they rolled out the Vitruvian trainer+ across Gym's globally.

We architected a custom schema within the HubSpot Smart CRM that mirrored Vitruvian’s real-world business model. To solve the data overwriting issue, we implemented:

  • Custom Object Infrastructure: Created dedicated objects for "Machines" and "Memberships." This allows a single Contact or Company (like a Gym) to own multiple assets without losing historical data.
  • Automated Data Pipeline: We utilized HubSpot’s API and Operations Hub to sync real-time data from Segment and Stripe.
  • Strategic Association Labels: We used association labels to distinguish between "Primary Owner" and "Secondary User."

Results & Business Outcome

  • Marketing and sales had a clear view of each customer who could be upsold into a membership.
  • Customer service had a clear view of all information relating to an individual machine or subscription issue. 
  • Vitruvian were able to see a company overview allowing a gym to manage their subscriptions for multiple machines across the world.
  • By moving to an industry-specific data model, Vitruvian achieved the clarity needed for global scaling:

    • 100% Data Accuracy: Eliminated the "Single-Record Conflict," ensuring zero data loss across 10,000+ hardware assets.
    • Revenue Growth: Identified an 18% increase in upsell-ready leads by surfacing active users currently on expired trials.
    • Operational Efficiency: Automated reconciliation saved the internal team 12+ hours per week in manual CRM cleanup.
    • Enhanced Support: Average resolution time for subscription tickets decreased by 22%.

    *based on 2026 HubSpot benchmark data for the SaaS and Fitness-Tech industries.

Start Your Success Story

Need to enable your Marketing, Sales and Service teams to do a better job? Book a discovery call to regain control of your Hubspot portal.

Project Highlights

Screenshot 2023-01-04 at 11.39.36 am
Mapping Every Possible Scenario
We worked with Vitruvian to understand every possible use case (20+) to make sure we're providing the best possible solution.
Screenshot 2023-01-04 at 2.32.57 pm
Building the Objects and Relationships (Example)
Configuring the objects within Hubspot with relationships and properties required for showing data
Screenshot 2023-01-04 at 2.40.05 pm
Building Better Communications
Using custom object workflows to send the right communications to the right contacts

Stop losing Revenue!

Enable your teams to create an unforgettable customer experience