← All tools

Normalization

Standardize Salesforce and HubSpot field values

Convert field values to canonical forms, so the same thing is written the same way everywhere.

SalesforceHubSpotReversible

One city, five spellings. Dallas, DALLAS, Dallas TX, dallas and Dallas, Texas are five values for one city. Every filter that names one of them misses the other four, and every report built on those filters is quietly wrong.

Normalization is the least glamorous tool and the one everything else depends on. Matching cannot find duplicates across five spellings. Segments cannot select on a field that holds five values for one thing. A score weighted on industry is weighted on noise.

A scheme is a set of field rules. Each rule names a field and the canonical form it should take: title case for cities, the bare domain for websites, E.164 for phone numbers, the two-letter code for countries. The rules are saved on the connection, so the same scheme runs next quarter without being rewritten.

Preview before you write. A scheme can be previewed against your real records, so you see what it would change and how many records it touches before anything is written.

How a pass runs

From scope to record.

  1. Scope. A run names the records it covers, as a filter over your own fields.
  2. Resolve. The run uses the scheme you name, or the connection's default for that object.
  3. Compute. Each field rule is applied to each record in scope, and the result is compared to what the record already holds.
  4. Write changed only. A record whose value is already canonical is skipped rather than rewritten, so a second pass over the same scope writes nothing.
  5. Record. Every write is stored with the value before and the value after.

The detail

What it needs and what it does.

Object
Accounts, contacts and leads.
Configured in
Rules, under Normalization Rules, as a named scheme per object.
What it writes
The fields your scheme names, and only where the canonical form differs from what is there.
Who releases it
You choose when you create the run: write on dispatch, hold the whole run for approval, or queue one proposal per record.
Reversible
Yes. Every field write is stored with its prior value and can be put back.
CRMs
Salesforce and HubSpot.

Changed only

Writing nothing is the common case, and that is the point.

A normalization pass over a clean book should write zero records.

Most tools that touch every record in a scope write to every record in that scope. This one diffs first: it computes the canonical value, compares it to what the record holds, and skips the ones that already agree.

That is what makes normalization safe to run on a schedule. The second pass over the same scope is a no-op, your CRM's modified timestamps do not churn, and the audit trail records the handful of records that actually moved rather than ten thousand that did not.

For agents

The tools your agent calls.

Reads are free and need no permission to write. Anything that changes a record is a separate grant.

get_normalize_catalog the canonical forms available read
preview_normalize_scheme what a scheme would change, before it runs read
create_normalize_run a run over a scope you name write
dispatch_run start it write

Where to start

Find out how many you have.

The readiness scan runs detection against your own CRM and reports what it finds, before anything is merged.