general hubspot-properties-design

hubspot-properties-design

This skill should be used when the user asks to "design HubSpot properties", "create custom properties in HubSpot", "organize HubSpot fields", "HubSpot property best practices", "design HubSpot contact properties", "structure HubSpot data fields", "HubSpot property naming conventions", "clean up HubSpot properties", "create custom fields in HubSpot", or any variation of designing and organizing custom properties in HubSpot CRM for B2B SaaS.
Download .md

HubSpot Properties Design

Properties are the fields that store data on contacts, companies, deals, and tickets in HubSpot. Well-designed properties give you clean data for reporting, segmentation, and automation. Poorly designed properties give you duplicates, blank fields, and reports that don't work.

The principle: design properties for the reports you need, not the data you might collect. Every property should answer: "What report or automation depends on this field?" If the answer is "none," the property probably shouldn't exist.

Property Design Framework

Before creating a property, answer these questions

Question Why it matters
What report will use this property? Properties without a reporting purpose become unused clutter
What automation will trigger on this property? Workflows need structured, reliable data
Who is responsible for filling this property? Properties nobody owns stay empty
How will this property be populated? (manual, automation, integration, enrichment) Manual properties have lower fill rates. Automate where possible
Does this property already exist under a different name? Duplicate properties are the #1 HubSpot data quality problem

Naming Conventions

Property naming rules

Rule Example Anti-pattern
Use consistent case "ICP Fit Score" or "icp_fit_score" (pick one style) Mixing "ICP fit score", "Icp Fit Score", "icp_fit_Score"
Prefix custom properties by team/function "Sales: Close Reason" or "Mkt: Lead Source Detail" "Close Reason" (no prefix, unclear ownership)
Use specific names "Outbound Reply Rate - Last 30d" "Reply Rate" (which channel? what timeframe?)
Include the object in cross-object properties "Company: Employee Count" on a contact record "Employee Count" (is this the contact's or the company's?)
Avoid abbreviations unless universally known "Annual Contract Value" or "ACV" (widely known) "PPPR" (pipeline per rep per period - nobody will remember)

Internal name (API name) rules

  • Use snake_case for internal names. icp_fit_score, not ICPFitScore or ICP Fit Score. HubSpot auto-generates internal names but you can customize them
  • Keep internal names short but clear. sales_close_reason, not the_reason_the_sales_deal_was_closed_or_lost
  • Never change internal names after creation. Integrations, APIs, and workflows reference internal names. Changing them breaks everything downstream

Property Types

Choosing the right field type

Data type HubSpot field type When to use When NOT to use
Predefined options Dropdown select Status fields, categories, stages When users need to enter free text
Multiple predefined options Checkbox (multi-select) Tags, multiple categories When only one value should apply
Yes/No Single checkbox Binary states (ICP fit: yes/no) When there are more than 2 options
Short text Single-line text Names, emails, short identifiers When options should be standardized
Long text Multi-line text Notes, descriptions When you need structured data for reporting
Numbers Number Scores, counts, dollar amounts When the value is categorical, not numeric
Dates Date picker Milestone dates, deadlines When you need a timestamp (use datetime)
Calculated Calculation property Derived values (days since last activity) When the calculation is complex (use workflow instead)

Field type rules

  • Use dropdowns over text fields for anything you'll filter or report on. Free text "Industry" field: 47 variations of "SaaS" ("SAAS", "Software as a Service", "SaaS - B2B", "saas"). Dropdown: one value. Dropdowns produce clean data
  • Limit dropdown options to 15. More than 15 and users struggle to find the right option. If you need more, consider a hierarchical approach (category dropdown → subcategory dropdown)
  • Use number fields for scores, not text. "Lead Score: 75" as a number field can be filtered (> 50), averaged, and used in calculations. "Lead Score: 75" as a text field cannot
  • Use date fields for dates, not text. "Last Activity: 2025-03-15" as a date field enables date math (days since last activity). As a text field, it's just a string

Property Organization

Property groups

Group Properties Owner
ICP & Qualification ICP fit score, ICP segment, qualification status, BANT fields RevOps
Outbound Outbound status, sequence enrolled, reply status, last outbound date SDR/Sales Ops
Attribution First touch source, last touch source, self-reported source Marketing Ops
Enrichment Enrichment source, enrichment date, data quality score RevOps
Deal Intelligence Close reason, competitor mentioned, champion identified Sales
Product Usage PQL score, activation status, feature adoption Product/RevOps

Organization rules

  • Create custom property groups. Don't dump everything into "Contact Information." Group properties by function. This makes forms, views, and admin navigation manageable
  • Limit total custom properties. 50-100 custom properties is healthy. 200+ means many are unused. Audit quarterly and archive unused properties
  • Every property has an owner. One team or person is responsible for the property's data quality. If nobody owns it, archive it

Common Property Sets

Contact properties

Property Type Group Purpose
ICP Fit Dropdown (Tier 1/2/3/Not ICP) ICP & Qualification Segment contacts by fit
Lead Source (Self-Reported) Dropdown Attribution "How did you hear about us?"
Outbound Status Dropdown (Not contacted/In sequence/Replied/Meeting booked) Outbound Track outbound engagement
Enrichment Source Dropdown (Apollo/Clearbit/Manual) Enrichment Track where data came from
Last Outbound Date Date Outbound Prevent double-contacting

Deal properties

Property Type Group Purpose
Close Reason Dropdown (5-7 reasons) Deal Intelligence Win/loss analysis
Competitor Dropdown (top 5 competitors + Other) Deal Intelligence Competitive tracking
Champion Contact lookup Deal Intelligence Track the internal champion
Source (Inbound/Outbound) Dropdown Attribution Pipeline attribution
Qualification Score Number ICP & Qualification Deal quality tracking

Company properties

Property Type Group Purpose
ICP Segment Dropdown ICP & Qualification Account-level ICP fit
Target Account Checkbox ABM Flag ABM target accounts
Enrichment Date Date Enrichment Track data freshness
Tech Stack Multi-select Enrichment Technology indicators
ARR Tier Dropdown Firmographic Revenue segmentation

Automation with Properties

Common property-triggered workflows

Trigger Action Example
ICP Fit = Tier 1 Route to enterprise SDR High-fit leads get premium treatment
Outbound Status = Replied Notify rep in Slack Immediate notification on positive reply
Close Reason = Competitor Add to competitive intelligence report Auto-tag for win/loss analysis
Enrichment Date > 90 days ago Re-enrich the record Keep data fresh automatically
Deal Amount changes Notify sales manager Pipeline value changes trigger alerts

Measurement

Metric Definition Target Frequency
Property fill rate % of records with the property populated > 80% for required properties Monthly
Total custom properties Count of active custom properties 50-100 (audit if > 150) Quarterly
Unused properties Properties with < 5% fill rate and no automation 0 (archive them) Quarterly
Duplicate properties Properties with overlapping names or purposes 0 Quarterly
Data quality score % of dropdown properties with valid values (not "Other" or blank) > 90% Monthly

Pre-Creation Checklist

  • [ ] Property answers "what report or automation uses this?"
  • [ ] Checked for existing duplicate properties (different name, same purpose)
  • [ ] Naming follows team convention (prefix, consistent case)
  • [ ] Field type matches the data (dropdown for categorical, number for numeric)
  • [ ] Dropdown options limited to 15 or fewer
  • [ ] Property assigned to a group
  • [ ] Property has an owner (team responsible for data quality)
  • [ ] Population method defined (manual, automation, enrichment, integration)
  • [ ] Required on forms or stage transitions where applicable
  • [ ] Internal name is clean and won't need changing

Anti-Pattern Check

  • Creating properties without a reporting purpose. "Favorite color of the prospect's dog." Why? Unless it drives a report or automation, it's clutter. Every property needs a reason to exist
  • Text fields for categorical data. "Industry" as a free-text field produces 47 spellings of "SaaS." Use a dropdown. Always. For anything you'll filter, report, or segment on
  • 300 custom properties with 60% unused. Every new initiative added properties. Nobody removed them. Quarterly audit: if a property has < 5% fill rate and isn't used in any report or workflow, archive it
  • No naming convention. Properties named "lead_source," "Lead Source," "leadSource," "Source of Lead," and "LS" all exist. They all mean different things. Or the same thing. Nobody knows. Establish a convention and enforce it
  • Duplicate properties across teams. Marketing created "Lead Source." Sales created "Source." RevOps created "Original Source." All track the same thing differently. Audit for duplicates before creating new properties
  • Required fields on every form. Every form requires 15 fields. Form completion rate drops to 20%. Only require fields that are essential for routing or qualification. 3-5 fields per form maximum
  • Never cleaning up. Properties from 2022 reference products you don't sell, personas you don't target, and integrations you've removed. Clean quarterly. Archive the dead weight
Want agents that use skill files like this?
We customize skill files for your brand voice and methodology, then run content agents against them.
Book a call