Skip to content

About

Hubspot LSA assessment app

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Breezy x HubSpot Integration POC

Solutions Architect – Technical Assessment

This project is a proof-of-concept (POC) demonstrating how Breezy’s smart HVAC platform could integrate with HubSpot CRM. It includes contact syncing, subscription deal tracking, and an optional AI-powered insights panel. It simulates what Breezy’s internal admin team might use to view and manage customer data in HubSpot.

1. Overview

The goal of this POC is to demonstrate:

  • How Breezy can sync customer accounts into HubSpot Contacts
  • How Breezy Premium subscription conversions can be tracked as Deals
  • How HubSpot objects and associations represent Breezy’s business model
  • How AI can enhance CRM and lifecycle insights
  • How a simple admin UI can simulate a real integration flow

Screenshot: Contacts Page

The stack includes:

Backend: Node.js, Express, HubSpot CRM API

Frontend: React (Vite)

AI: OpenAI GPT-4.1-mini

Styling: HubSpot-inspired UI (orange, white, slate blue)

2. Features

Contact Sync

  • Create contacts through the UI
  • Sync contacts to HubSpot CRM
  • Display all HubSpot contacts
  • Show firstname, lastname, email, phone, address

Screenshot: Create Contact

Subscription Deal Tracking

  • Create Breezy Premium subscription deals
  • Associate deals with contacts
  • Display associated deals per contact

Screenshot: Deals

Thermostat Tracking (Custom Object)

  • Create thermostat hardware records
  • Associate thermostats with customers
  • Display thermostats per contact
  • Calculate trial status (active, ending soon, expired)

Screenshot: Thermostats

AI-Powered Insights

  • Combine contacts + deals + thermostats
  • AI generates insights:
    • Revenue summary
    • Upsell opportunities
    • Churn risks
    • Recommended CRM automations

Screenshot: AI Insights

UI

  • Clean, HubSpot-style admin layout
  • Cards, tables, badges, and highlight colors

3. Setup Instructions

A. Backend Setup (Node.js)

  1. Install dependencies

npm install

  1. Create a .env file in the backend root folder

HUBSPOT_ACCESS_TOKEN=your_private_app_token OPENAI_API_KEY=your_openai_key PORT=3005 # or 3001 if preferred

  1. Start the backend

npm start

Expected output:

Server running successfully API available at: http://localhost:3005

Screenshot: Backend Running

B. Frontend Setup (React + Vite)

  1. Navigate to the frontend

cd frontend

  1. Install dependencies

npm install

  1. Start the app

npm run dev

Screenshot: Frontend Running

Open: http://localhost:3000

C. HubSpot Requirements

Required HubSpot Private App Scopes:

crm.objects.contacts.read

crm.objects.contacts.write

crm.objects.deals.read

crm.objects.deals.write

crm.schemas.custom.read

crm.objects.custom.read

crm.schemas.custom.write

crm.objects.custom.write

Go to:

Settings → Integrations → Legacy Apps → Create Legacy App → Select Private → Create a name for the app and description → add required scopes from above → Select Private → Create App → Continue Creating

Copy and paste the access token into .env. file, first line HUBSPOT_ACCESS_TOKEN=your_private_app_token

4. How to Test the POC

  1. Create a Contact
  • Fill out the form
  • Click Create Contact
  • Refresh contacts
  1. Create a Deal
  • Choose an existing contact
  • Set deal name and amount
  • Click Create Deal
  • Refresh deals
  • Confirm in HubSpot CRM UI
  1. Create a Thermostat
  • Fill the Thermostat form
  • Select a contact
  • Submit
  • Click "Refresh Thermostats"
  • Expand a contact row to verify the thermostat is associated
  1. AI Insights
  • Click Generate AI Insights
  • Insights panel displays:
  • segment suggestions
  • revenue and pipeline patterns

possible upsell and renewal opportunities

  1. UI
  • Resembles a HubSpot-style admin dashboard

5. Architecture Overview

This POC demonstrates how Breezy’s internal admin UI communicates with both HubSpot CRM and the OpenAI API via a Node.js backend. The system consists of four components:

System Functionality Breezy UI React admin panel simulating internal operations Backend API Bridges Breezy ⇆ HubSpot CRM ⇆ OpenAI HubSpot CRM Stores Contacts, Deals, and Thermostat custom objects OpenAI API Generates insights based on CRM data

#Data Flow Summary

UI → Express API → HubSpot CRM
UI ← Express API ← HubSpot CRM

UI → Express API → OpenAI
UI ← Express API ← OpenAI

#System Architecture Diagram

flowchart LR subgraph UserBrowser[User Browser] UI[React Admin Panel
(Vite)] end

subgraph Backend[Node.js / Express Backend] API[/REST API
(/api/contacts, /api/deals, /api/thermostats, /api/ai-insights)/] end

subgraph HubSpot[HubSpot CRM] HSContacts[(Contacts)] HSDeals[(Deals)] HSThermostats[(Custom Object:
Thermostat)] end

subgraph OpenAI[OpenAI API] GPT[GPT-4.1-mini-*] end

UI <-->|fetch / create| API API -->|Sync contacts| HSContacts API -->|Sync deals| HSDeals API -->|Sync thermostats| HSThermostats

API -->|Read CRM data| HSContacts API --> HSDeals API --> HSThermostats

API -->|prompt with combined CRM data| GPT GPT -->|insights JSON| API API -->|send insights to UI| UI

Screenshot: Architecture Diagram

6. HubSpot Data Arquitecture

Below is the recommended HubSpot CRM object model for Breezy, including Contacts, Deals, and a Thermostat custom object.

6.1 ERD (Entity Relationship Diagram)

erDiagram CONTACT { string hs_object_id string firstname string lastname string email string phone string address string lifecycle_stage int thermostat_count string latest_trial_status }

THERMOSTAT { string hs_object_id string model string serial_number date purchase_date date trial_start_date date trial_end_date string trial_status }

DEAL { string hs_object_id string dealname decimal amount string dealstage string pipeline date closedate string subscription_type string subscription_term }

CONTACT ||--o{ THERMOSTAT : owns CONTACT ||--o{ DEAL : "has subscriptions" THERMOSTAT ||--o{ DEAL : "drives subscription"

Figure 1 – HubSpot ERD

Entity Notes

Contact

Represents a Breezy customer or homeowner. Recommended properties:

ownership flags trial status thermostat count purchase timestamps

###Deal

Represents a subscription conversion or renewal. Recommended properties:

subscription type (monthly/annual) closedate amount (MRR/ARR mapping)

###Thermostat (Custom Object) (optional but recommended)

Tracks Breezy devices owned by a user:

model firmware version installation location


6.2 Deal Pipeline Architecture

Breezy’s subscription lifecycle maps directly to a simple HubSpot deal pipeline, allowing Breezy to track free trials, conversions, renewals, and upsell opportunities.

Pipeline Stages

Trial Started Customer begins a 30-day free trial after purchasing a thermostat.

Trial Ending Soon Trial has ≤5 days remaining. Useful for nurturing workflows.

Subscription Started (Closed Won) Customer converts to Breezy Premium. Marked as closedwon because revenue has been realized.

Renewal Upcoming Subscription nearing renewal (typically annual).

Renewal (Closed Won) Customer renews their subscription.

Upsell Opportunity Customer owns multiple thermostats or shows high engagement.

Why “closedwon” is used

Represents booked revenue

Integrates with HubSpot’s native revenue attribution

Feeds MRR/ARR and forecasting dashboards

Helps track subscription lifecycle and retention

Recommended Pipeline for Breezy

flowchart LR A[Trial Started
(Thermostat purchased)] --> B[Trial Ending Soon
(≤ 5 days left)] B --> C[Subscription Started
(Closed Won)] C --> D[Renewal Upcoming] D --> E[Renewal
(Closed Won)] C --> F[Upsell Opportunity
(Multi-thermostat / high usage)]

classDef trial fill:#e5f5ff,stroke:#1d74c9,color:#003366; classDef won fill:#ff7a59,stroke:#cc5f43,color:white; classDef other fill:#f3f4f6,stroke:#9ca3af,color:#111827;

class A,B trial; class C,E won; class D,F other;

Figure 2 – Deal Pipeline

7. AI Feature Explanation

The AI feature allows Breezy to extract:

high-value customer segments customers likely to upgrade customers at churn risk overall revenue health lifecycle recommendations Great for marketing automation, CRM workflows, and sales enablement.

8. AI Usage During Development

This project used AI tools (ChatGPT) for:

Generating boilerplate React components Designing the ERD Writing documentation Improving UI/UX decisions Debugging and refining backend errors Structuring prompts for CRM insights

What was challenging:

Prompt tuning Handling API errors and timeouts Ensuring structured output

What worked well:

Rapid prototyping Documentation Code refactoring

9. Design Decisions

Decision Reason React + Vite Fast, modern, ideal for demos Express backend Simple, flexible for CRM API integration HubSpot Private App Direct CRM object control GPT-4.1-mini Cheap, fast, good insight generator HubSpot-style UI Professional look, aligns with CRM context

10. Recommended Production Improvements

Add user authentication Implement webhook-based sync instead of manual refresh Use HubSpot associations API in batch mode Add pagination for large contact lists Store sync logs and statuses Add form validations

11. Questions for Breezy Before a Production Build

Before implementing a production-ready integration, I would clarify:

  1. How often should data sync (real-time, hourly, nightly)?
  2. Should Breezy or HubSpot be the source of truth for customer data?
  3. What automation workflows (emails, reminders) should be triggered by CRM events?
  4. Are there multiple subscription plans or pricing tiers beyond Premium?
  5. Should thermostat metadata (firmware, usage stats) be included in CRM?
  6. How should churned or cancelled subscriptions be represented in HubSpot?
  7. Will Breezy need reporting dashboards or custom funnel views inside HubSpot?

12. Conclusion

This POC successfully demonstrates:

✔ Integration patterns between Breezy and HubSpot ✔ How CRM objects reflect Breezy’s business model ✔ How deals can represent subscription conversions ✔ The value of AI for CRM intelligence ✔ A professional admin-style UI to present the flow

This gives Breezy a clear picture of how a HubSpot integration would work in production.

About

Hubspot LSA assessment app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages