---
title: How to Track Property Changes in HubSpot
description: Learn how to effectively track property changes in HubSpot, including storing previous email addresses, with multiple methods tailored to your subscription level.
image: https://www.whimpact.co/hubfs/0.%20WHInsight/2026-03-24_whinsight_thumbnail_Automate-Lead-Management-with-HubSpot-and-Zapier.png
---

[Skip to content](https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot#main-content)

[![whimpact logo](https://www.whimpact.co/hs-fs/hubfs/whimpact%20logo.png?width=333&height=250&name=whimpact%20logo.png)](https://www.whimpact.co)

- [About WHI](https://www.whimpact.co/about)
- [Learn - WHInsights](https://www.whimpact.co/wh1nsights)

Open main navigation

Close main navigation

- [About WHI](https://www.whimpact.co/about)
- [Learn - WHInsights](https://www.whimpact.co/wh1nsights)
- [Start Your Assessment](https://www.whimpact.co/whintensive)

[Start Your Assessment](https://www.whimpact.co/whintensive)

 Mar 24, 2026 6:24:15 PM

# How to Track Property Changes in HubSpot

![Picture of Ryan Schweighart](https://www.whimpact.co/hs-fs/hubfs/Chat_photo-1.jpg?width=50&name=Chat_photo-1.jpg) [Ryan Schweighart](https://www.whimpact.co/wh1nsights/author/ryan-schweighart)

Be a hero and share this WHInsight: [Share this page via Email](mailto:?body=https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot) [facebook-f icon](http://www.facebook.com/share.php?u=https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot) [Share this page on LinkedIn](http://www.linkedin.com/shareArticle?mini=true&url=https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot) [Share this page on Twitter](https://twitter.com/intent/tweet?url=https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot)

## Overview

This guide shows how to track property changes in HubSpot—specifically how to store and view both the current and previous email address on a contact record. It covers three approaches depending on your HubSpot subscription and tools.

---

## Option 1: Native HubSpot Property Change Tracking (Pro+)

If you have **HubSpot Pro or Enterprise**, you can track property changes using custom events.

### Steps

1. Go to **Data Management → Events**.
2. Create a **Custom Event**.
3. Select **Track Object Changes**.
4. Choose the object (e.g., Contact).
5. Select the property (e.g., Email).
6. Set the trigger (e.g., when Email is known).

### Limitation

- Only works if the property is **visible to all users**.
- If property visibility is restricted, it will not appear as an option.

---

## Option 2: HubSpot Workflow + Custom Code (Recommended for Pro+)

This method stores the previous value in a separate property.

### Step 1: Create a “Previous Email” Property

- Type: Email
- Recommendation: Restrict editing or keep hidden to prevent overwrites

### Step 2: Build a Workflow

1. Go to **Automation → Workflows**.
2. Trigger: 
     - **Property value changed** → Email
     - Enable **re-enrollment**

### Step 3: Add Custom Code Action

- Requires **Operations Hub Pro**
- Use Node.js
- Purpose: Retrieve property history via API and extract the previous value
- Here's the code I used:

```
const axios = require('axios');exports.main = async (event, callback) => {  const contactId = event.object.objectId;  const token = process.env.accessToken;  try {    const response = await axios.get(      `https://api.hubapi.com/crm/v3/objects/contacts/${contactId}?propertiesWithHistory=email`,      {        headers: {          Authorization: `Bearer ${token}`,          'Content-Type': 'application/json',        },      }    );    const history =      response.data?.propertiesWithHistory?.email || [];    history.sort((a, b) => new Date(b.timestamp) - new Date(a.timestamp));    const previousValue =      history.length > 1 ? String(history[1].value ?? '') : '';    callback({      outputFields: {        previous_email: previousValue      }    });  } catch (err) {    console.error('Error fetching property history:', err?.message || err);    callback({      outputFields: {        previous_email: ''      }    });  }};
```

Key requirements:

- Private access token (via HubSpot service key)
- Scope: `contacts.read`
- Pass contact ID into the script
- Output: previous email value

### Step 4: Update Contact Record

- Action: **Edit Record**
- Set: 
    - Property: Previous Email
    - Value: Output from custom code step

### Result

- Current email = Email property
- Previous email = stored in custom property
- Can be used in lists, segments, and reporting

---

## Option 3: Zapier (If You Don’t Have Ops Hub Pro)

This replicates the same logic using Zapier.

### Zap Structure

**Step 1: Trigger**

- App: HubSpot
- Event: **Contact Property Change**
- Property: Email

**Step 2: API Request**

- Use HubSpot API via Zapier
- Endpoint: Contact with `propertiesWithHistory`
- Include internal property name (e.g., `email`)

**Step 3: Extract Previous Value**

- Use **Formatter → Utilities → Pick from List**
- Select index: 
    - `0` = current value
    - `1` = previous value

**Step 4: Update Contact**

- Action: **Update Contact**
- Set: 
    - Previous Email = extracted value

### Result

- Same outcome as workflow method without custom code

---

## Creating a Segment or List

To view changes:

1. Create a **list or segment**
2. Filters: 
     - Email **has been updated** in last X days
     - Email **is known**
     - (Optional) Previous Email **is known** to exclude first-time entries

This allows side-by-side comparison of current vs. previous values.

---

## Option 4: Export Property History

If you only need periodic visibility:

1. Go to **Settings → Properties**
2. Find the property (e.g., Email)
3. Click **More → Export Property History**

### Output

- CSV or Excel file
- Includes all historical values across records

---

## Key Takeaways

- **Best native option:** Custom events (Pro+)
- **Most flexible:** Workflow + custom code
- **No Ops Hub Pro:** Use Zapier
- **Quick audit:** Export property history

---

## When to Use Each Method

| Scenario | Best Option |
| --- | --- |
| Simple tracking (no restrictions) | Custom Events |
| Need stored previous value | Workflow + Custom Code |
| No Ops Hub Pro | Zapier |
| One-time analysis | Export |

---

## Final Notes

- Property visibility affects tracking capabilities
- Always store historical values in a separate property
- Use lists or segments to make data actionable

---

Bye for now.

[Systemize Your Busyness](https://www.whimpact.co/wh1nsights/tag/systemize-your-busyness)

## Related posts

[![](https://www.whimpact.co/hs-fs/hubfs/2025.10.16_whinsight.png?height=200&name=2025.10.16_whinsight.png)](https://www.whimpact.co/wh1nsights/how-to-merge-property-dropdown-options-in-hubspot)

[Systemize Your Busyness](https://www.whimpact.co/wh1nsights/tag/systemize-your-busyness)

## [How to Merge Property Dropdown Options in HubSpot](https://www.whimpact.co/wh1nsights/how-to-merge-property-dropdown-options-in-hubspot)

![Picture of Ryan Schweighart](https://www.whimpact.co/hs-fs/hubfs/Chat_photo-1.jpg?width=50&name=Chat_photo-1.jpg) [Ryan Schweighart](https://www.whimpact.co/wh1nsights/author/ryan-schweighart) 

 Oct 16, 2025 5:34:52 PM

Have you ever needed to combine dropdown options in a HubSpot property — especially a multi-select...

[Read more](https://www.whimpact.co/wh1nsights/how-to-merge-property-dropdown-options-in-hubspot)

[![](https://www.whimpact.co/hs-fs/hubfs/2026.02.16_whinsight.png?height=200&name=2026.02.16_whinsight.png)](https://www.whimpact.co/wh1nsights/how-to-modify-line-item-properties-displayed-on-edit-form-in-hubspot)

[Systemize Your Busyness](https://www.whimpact.co/wh1nsights/tag/systemize-your-busyness)

## [How to Modify Line Item Properties on the Edit Line Item Form in HubSpot](https://www.whimpact.co/wh1nsights/how-to-modify-line-item-properties-displayed-on-edit-form-in-hubspot)

![Picture of Ryan Schweighart](https://www.whimpact.co/hs-fs/hubfs/Chat_photo-1.jpg?width=50&name=Chat_photo-1.jpg) [Ryan Schweighart](https://www.whimpact.co/wh1nsights/author/ryan-schweighart) 

 Feb 16, 2026 5:38:41 PM

When adding line items to a deal in HubSpot, the form displays a set of default properties. If you...

[Read more](https://www.whimpact.co/wh1nsights/how-to-modify-line-item-properties-displayed-on-edit-form-in-hubspot)

[![lady surprised looking at a text message on her phone](https://www.whimpact.co/hs-fs/hubfs/Closeup%20portrait%20anxious%20young%20girl%20looking%20at%20phone%20seeing%20bad%20news%20or%20photos%20with%20disgusting%20emotion%20on%20her%20face%20isolated%20outside%20city%20background.%20Human%20emotion%2c%20reaction%2c%20expression.jpeg?height=200&name=Closeup%20portrait%20anxious%20young%20girl%20looking%20at%20phone%20seeing%20bad%20news%20or%20photos%20with%20disgusting%20emotion%20on%20her%20face%20isolated%20outside%20city%20background.%20Human%20emotion%2c%20reaction%2c%20expression.jpeg)](https://www.whimpact.co/wh1nsights/how-to-create-a-click-to-text-link)

[Systemize Your Busyness](https://www.whimpact.co/wh1nsights/tag/systemize-your-busyness)

## [How to Create a Click to Text Link](https://www.whimpact.co/wh1nsights/how-to-create-a-click-to-text-link)

![Picture of Ryan Schweighart](https://www.whimpact.co/hs-fs/hubfs/Chat_photo-1.jpg?width=50&name=Chat_photo-1.jpg) [Ryan Schweighart](https://www.whimpact.co/wh1nsights/author/ryan-schweighart) 

 Aug 24, 2022 8:31:54 AM

Have you ever wanted to add a link to a button or hyperlinked text to send a text message? Better...

[Read more](https://www.whimpact.co/wh1nsights/how-to-create-a-click-to-text-link)

---

[![Whole Hart Impact Logo 43-2](https://www.whimpact.co/hs-fs/hubfs/Whole%20Hart%20Impact%20Logo%2043-2.png?width=266&height=200&name=Whole%20Hart%20Impact%20Logo%2043-2.png "Whole Hart Impact Logo 43-2")](https://www.whimpact.co)

[![SolutionPartnerTierBadges_FINAL_PARTNER_ORANGE](https://www.whimpact.co/hs-fs/hubfs/SolutionPartnerTierBadges_FINAL_PARTNER_ORANGE.png?width=200&height=200&name=SolutionPartnerTierBadges_FINAL_PARTNER_ORANGE.png "SolutionPartnerTierBadges_FINAL_PARTNER_ORANGE")](https://app.hubspot.com/marketplace/20619232/solutions/whole-hart-impact)

[![hubspot community champions logo](https://www.whimpact.co/hs-fs/hubfs/logos/hubspot%20community%20champions%20logo.png?width=170&height=170&name=hubspot%20community%20champions%20logo.png "hubspot community champions logo")](https://community.hubspot.com/u/rschweighart/summary)

- [About WHI](https://www.whimpact.co/about)
- [Get $500, Give $1,000 - WHIntroductions](https://www.whimpact.co/whintroductions)
- [Pricing - WHImplementation](https://www.whimpact.co/whimplementation)
- [Grow - WHIntensive](https://www.whimpact.co/whintensive)
- [Learn - WHInsights](https://www.whimpact.co/wh1nsights)
- [Careers - WHImpacters](https://www.whimpact.co/careers)

### I want to hear from you!

[ryan@whimpact.co](mailto:ryan@whimpact.co)

+1 (405) 972-6809

Located in Carlsbad, CA -- Available worldwide

---

Copyright © 2026, Whole Hart Impact

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Ryan Schweighart",
    "url" : "https://www.whimpact.co/wh1nsights/author/ryan-schweighart"
  },
  "dateModified" : "2026-03-24T23:24:15.913Z",
  "datePublished" : "2026-03-24T23:24:15.000Z",
  "headline" : "How to Track Property Changes in HubSpot",
  "image" : [ "https://www.whimpact.co/hubfs/0.%20WHInsight/2026-03-24_whinsight_thumbnail_Automate-Lead-Management-with-HubSpot-and-Zapier.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://www.whimpact.co/wh1nsights/how-to-track-property-changes-in-hubspot",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://www.whimpact.co/hubfs/Whole%20Hart%20Impact%20Logo%2043-1.png"
    },
    "name" : "Whole Hart Impact, LLC"
  }
}
```