From installation to advanced usage. Comprehensive guides on mappings, tracking modes, backfill, and property compatibility — all in one place.
Get PrevVal running from the HubSpot Marketplace, add your first mapping, and start tracking property changes automatically.
Get StartedMappings, tracking modes, backfill, property compatibility, plan limits and best practices — everything documented below.
View DocsNeed help with setup, configuration, or troubleshooting? Our team is here to get you up and running.
Get HelpClick any section below to expand. Use the quick navigation above to jump directly to a topic.
Getting started with PrevVal takes about 3 minutes. No workflows, no code, no API keys required.
Click Install on the HubSpot Marketplace listing. You'll be taken to HubSpot's secure OAuth authorization page. Accept permissions and you're connected.
Open the PrevVal card in HubSpot. Click "+ Add Mapping". Select your object type, the property to track, the destination property, and your tracking mode.
From this point forward, every time that property changes in HubSpot, PrevVal automatically writes the previous value to your destination property.
A mapping is a tracking rule. It tells PrevVal which property to watch and where to write the previous value when it changes.
dealstage→previous_deal_stageamount→previous_amountclosedate→previous_close_datehubspot_owner_id→previous_ownerlifecyclestage→previous_lifecycle_stagehubspot_owner_id→previous_ownerutm_source→ft_utm_sourcecity→previous_cityindustry→previous_industryhubspot_owner_id→previous_ownerhs_pipeline_stage→previous_ticket_stagehs_ticket_priority→previous_priorityWhen you add a mapping, you choose a tracking mode. The mode controls what PrevVal does when a property change is detected.
Only writes when the previous value was not empty. The right default for most properties — every meaningful change captured, no blank noise.
Best for: Deal stage, owner, close date, lifecycle stage, dropdowns.
Always writes the previous value, even when it was blank. Use when deliberately clearing a field is itself a meaningful event worth recording.
Best for: Compliance tracking and audit trails where clearing a field needs to be on record.
Skips blanks, cleared values, and values matching the current value. Finds the last truly different non-blank value in the property history.
Best for: Deal amount and revenue fields that fluctuate, get cleared, and reset over time.
Stores two values simultaneously. First Touch locks in the very first value ever — never overwritten. Last Touch updates on every change.
Best for: UTM source, lead source, lifecycle stage origin — know where something started and what it was last.
The Free plan supports Ignore Blank Values only. Upgrade to Pro or Enterprise to unlock Include Blanks, Preserve Last Known, and First & Last Touch modes.
PrevVal writes the previous value as a string to your destination property. The destination property type determines what HubSpot will accept. Mismatched types will cause writes to fail silently.
| Source type | Single-line text | Same type (cloned) | Different type |
|---|---|---|---|
| Dropdown / Radio select | Works — stores internal name | Works — displays label | Will fail |
| Number / Currency | Works — stores as text | Works — stores as number | Will fail |
| Date / Date-time | Works — stores as text | Works — stores as date | Will fail |
| Single-line text | Works | Works | Will fail |
| Owner (user lookup) | Works — stores user ID | Works — resolves to user | Will fail |
| Checkbox (boolean) | Works — stores true/false | Works | Will fail |
Backfill reads HubSpot's existing property history and populates previous values for records that already existed before you installed PrevVal. It's optional — PrevVal starts tracking automatically from the moment you add a mapping.
Only targets records that have a source value but are missing a destination value. The most efficient option — skips records already populated.
Targets records created within a specific date range. Useful for populating previous values for recent records regardless of whether they already have a destination value.
Run backfill on a single record instantly. Paste a record ID or HubSpot URL, select your mapping, and PrevVal writes the previous value immediately. Does not count toward daily run limit.
| Plan | Backfill scope | Daily runs | Manual backfill |
|---|---|---|---|
| Free | Not available | Not available | Not available |
| Professional | Smart Fill + Last 30 days | 3 / day | Unlimited |
| Enterprise | Smart Fill + Last 30, 60 & 90 days | 10 / day | Unlimited |
PrevVal's plans are based on mappings — the number of tracking rules you can have active at once.
The event limit is the maximum number of unique property changes PrevVal will process inline within a 60-second window. If more than this amount arrive in a single cycle, the overflow is automatically routed to the backfill queue and processed in the background — nothing is lost. The exception is the Free plan, which does not include backfill access, so events over the limit are dropped.
Importing records, bulk editing, or mass-enrolling via workflow can flood the processing queue. When this happens, live real-time changes may be skipped. Open the PrevVal card in HubSpot, go to the Overview tab, and toggle the mapping off before your bulk operation. Re-enable it when done.
Previous values are stored in native HubSpot properties — use them anywhere HubSpot properties are supported.
Create reports comparing current vs previous values. Build a deal report showing Amount vs Previous Amount to catch last-minute discounts before they close.
Example: Filter deals where previous_amount is known and amount is less than previous_amount.
Create active or static lists filtered by previous property values. Identify deals that were previously at a higher stage or contacts that bounced backwards.
Example: Contacts where previous_lifecycle_stage = Opportunity but lifecyclestage = Lead.
Use previous values as enrollment criteria or branch conditions in HubSpot workflows. Trigger alerts when a deal drops below its previous amount.
Example: Enroll deals where previous_deal_stage is known and dealstage is earlier in the pipeline.
Install free, add a mapping, and PrevVal starts tracking automatically. Set it and forget it.