Home Install Documentation Support Get Started
PrevVal Documentation

Everything you need to know about PrevVal.

From installation to advanced usage. Comprehensive guides on mappings, tracking modes, backfill, and property compatibility — all in one place.

Quick Navigation

Get started with PrevVal.

Quick Start

Install in 3 Minutes

Get PrevVal running from the HubSpot Marketplace, add your first mapping, and start tracking property changes automatically.

Get Started
Documentation

Full Reference Guides

Mappings, tracking modes, backfill, property compatibility, plan limits and best practices — everything documented below.

View Docs
Support

Expert Help

Need help with setup, configuration, or troubleshooting? Our team is here to get you up and running.

Get Help
Documentation

Explore the guides.

Click 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.

Step 1

Install from Marketplace

Click Install on the HubSpot Marketplace listing. You'll be taken to HubSpot's secure OAuth authorization page. Accept permissions and you're connected.

Step 2

Add a Mapping

Open the PrevVal card in HubSpot. Click "+ Add Mapping". Select your object type, the property to track, the destination property, and your tracking mode.

Step 3

Done — It Runs Itself

From this point forward, every time that property changes in HubSpot, PrevVal automatically writes the previous value to your destination property.

Prerequisites
  • Active HubSpot account with Admin access
  • Destination property already created in HubSpot
  • No workflows, API keys, or developer tools needed
After installation
  • Open the PrevVal card from any HubSpot record
  • Free plan includes 2 mappings — upgrade anytime
  • Use Backfill to populate values for existing records

A mapping is a tracking rule. It tells PrevVal which property to watch and where to write the previous value when it changes.

What a mapping does
  • Watches one source property on one object type
  • When that property changes, writes the old value to your destination property
  • Runs automatically in the background — forever
  • Works on Contacts, Companies, Deals, Tickets, and Custom Objects
Things to know
  • Create your destination property in HubSpot before adding the mapping
  • Source and destination must be different properties
  • Your plan determines how many mappings you can have
  • Deleting a mapping stops tracking — it does not delete stored values
Popular mapping examples
Deals

Deal Mappings

dealstageprevious_deal_stage
amountprevious_amount
closedateprevious_close_date
hubspot_owner_idprevious_owner
Contacts

Contact Mappings

lifecyclestageprevious_lifecycle_stage
hubspot_owner_idprevious_owner
utm_sourceft_utm_source
cityprevious_city
Companies & Tickets

Other Mappings

industryprevious_industry
hubspot_owner_idprevious_owner
hs_pipeline_stageprevious_ticket_stage
hs_ticket_priorityprevious_priority

When you add a mapping, you choose a tracking mode. The mode controls what PrevVal does when a property change is detected.

Mode 1DEFAULT

Ignore Blank Values

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.

Mode 2

Include Blank Values

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.

Mode 3

Preserve Last Known

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.

Mode 4

First & Last Touch

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.

Free plan note

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.

Single-line text — always works
  • Accepts any value from any source property type
  • Stores the raw internal value (e.g. "closedwon" not "Closed Won")
  • Recommended for dropdowns, stages, and owners if you want simplicity
  • The safest destination type for any mapping
Clone the source property — best practice
  • Clone the source property and rename it "Previous [Name]"
  • Identical field type and options — no compatibility issues
  • HubSpot displays the label instead of the raw value
  • Works perfectly for dropdowns and pipeline stages
What works and what does not
Source typeSingle-line textSame 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
Common mistakes
  • Tracking a Date property into a Number field — will fail silently
  • Tracking a Dropdown into a Number field — will fail silently
  • Tracking Currency into a Date field — will fail silently
  • If writes aren't appearing, check destination property type matches source
When in doubt
  • Use Single-line text as destination — it accepts everything
  • Or clone the source property exactly and rename it
  • Check the Guides tab inside the app for step-by-step setup
  • Contact support if values aren't appearing after 5 minutes

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.

Smart Fill

Smart Fill

Only targets records that have a source value but are missing a destination value. The most efficient option — skips records already populated.

Date Scopes

Last 30 / 60 / 90 Days

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.

Manual Backfill

Manual Record Backfill

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 limits
PlanBackfill scopeDaily runsManual backfill
FreeNot availableNot availableNot available
ProfessionalSmart Fill + Last 30 days3 / day Unlimited
EnterpriseSmart Fill + Last 30, 60 & 90 days10 / day Unlimited
Best practices
  • Run Smart Fill first — most targeted and efficient
  • Only one backfill job can run at a time per portal
  • Each run processes up to 10,000 records
  • Daily run count resets at midnight in your portal timezone
Things to know
  • Backfill reads HubSpot's property history — no history means nothing is written
  • HubSpot only retains property history for a limited time
  • Backfill does not overwrite existing destination values in Ignore Blanks mode
  • Large datasets take time — check the progress bar in the Backfill tab

PrevVal's plans are based on mappings — the number of tracking rules you can have active at once.

Free — $0/mo

Free Forever

  • 2 mappings
  • Ignore Blank Values mode only
  • Live automatic tracking
  • No backfill
  • 50 events / 60 seconds (over limit = dropped)
  • Email support
Professional — $29/mo

Professional

  • 10 mappings
  • All tracking modes
  • Smart Fill + Last 30 days backfill (3 runs/day)
  • Unlimited manual record backfill
  • 500 events / 60 seconds
  • Priority support
Enterprise — $79/mo

Enterprise

  • 25 mappings
  • All tracking modes
  • Smart Fill + Last 30, 60 & 90 days (10 runs/day)
  • Unlimited manual record backfill
  • 1,000 events / 60 seconds
  • Priority support

What is the event limit?

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.

  • Free — 50 events / 60s (over limit = dropped)
  • Professional — 500 events / 60s (over limit = routed to backfill)
  • Enterprise — 1,000 events / 60s (over limit = routed to backfill)

Running a bulk operation? Pause your mappings first.

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.

Reports

Build Reports

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.

Lists

Filter Lists

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.

Workflows

Trigger Workflows

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.

Get Started

Ready to start tracking
previous values?

Install free, add a mapping, and PrevVal starts tracking automatically. Set it and forget it.