Identifier Hashing and Normalization
When automatic hashing is enabled for a reverse ETL field mapping, Extract handles the required normalization methods before hashing the raw identifier.
How Extract decides whether to hash
In the field-mapping editor, any destination field with a hash property gives you two options:
Apply hashing (SHA256): the source column can contain raw customer data, and Extract will run the destination-specific normalization and hashing step before sending it.Source values are already hashed: Extract treats the incoming value as already hashed and does not hash it again.
apply_hashing defaults to true, and static-value mappings are never hashed.
Exact normalization is still destination-specific. Each destination page documents the behavior for that connector in its own Hashing and normalization section.
Execution order
When Apply hashing (SHA256) is enabled, the flow is:
- Extract maps the source field into the data-contract field.
- The destination connector applies its identifier normalization rules.
- Extract hashes the normalized value with SHA-256 and sends the lowercase hex digest.
When Source values are already hashed is selected, Extract forwards the value as-is, aside from any connector-specific field renaming needed by the partner API.
Common normalization methods
Extract can apply one or more of these normalization steps before hashing, depending on the destination connector:
trim(): remove leading and trailing whitespace before hashing.- Lowercasing: convert values such as emails to lowercase before hashing.
- E.164 phone normalization: canonicalize phone numbers into the
+[country code][number]format before hashing.
What the shared E.164 helper does
For the destinations that use normalize_phone_e164, Extract:
- Accepts numbers already in E.164 form such as
+15551234567. - Accepts some formatted inputs such as
+1 (415) 555-2671or(+1)2133734253. - Requires an explicit country code.
- Rejects values without a country code, such as
(415) 555-2671.
Examples
For destinations that lowercase and trim email before hashing:
- Input:
ALICE_abc@gmail.com - Normalized email:
alice_abc@gmail.com - SHA-256:
848a771458438fc2ec420560d769fb9b9b86851ee338ec56517baabd79d3bb4f
For destinations that normalize phone numbers with the shared E.164 helper:
- Input:
(+1)2133734253 - Normalized phone:
+12133734253 - SHA-256:
9f7ec22d72092cd3c0b58726ed9c2d91b92e51a3f29837508fb2948bb22dd2fd
Practical guidance
- If the customer sends raw email or phone values, leave
Apply hashing (SHA256)enabled when the destination page says the connector applies the normalization you need. - If the customer already hashes upstream, choose
Source values are already hashed. - If the partner requires a stricter normalization step than the connector currently performs, normalize and hash upstream, then pass the pre-hashed value through unchanged.
Several partner APIs document their own normalization requirements. Treat the destination-specific docs and the partner specification as the source of truth for that connector.