Skip to main content

Hightouch

Hightouch Logo

note

The destination used in this integration is mParticle, listed under that name in the Hightouch Integration Directory. mParticle is a Rokt company — configuring this destination establishes a direct data feed into Rokt.

Hightouch is a customer data platform that syncs data from your data warehouse to downstream tools. This guide walks you through connecting Hightouch to Rokt so you can send conversion events directly from your warehouse — no additional engineering required after setup.

By the end of this guide you will have:

  • Created a mParticle by Rokt destination in Hightouch
  • Mapped your warehouse data to Rokt's Events API fields
  • Sent conversion events that Rokt can use for campaign attribution and optimization

PrerequisitesDirect link to Prerequisites

Before you begin:

  • A Hightouch account with a connected data source — your data warehouse (e.g. Snowflake, BigQuery, Redshift) must already be connected to Hightouch as a source.
  • Rokt API credentials — an API key and API secret. These are provided by your Rokt account manager.

Step 1: Get your Rokt API credentialsDirect link to Step 1: Get your Rokt API credentials

Contact your Rokt account manager to request an API key and API secret. You'll need both when creating the destination in Hightouch.


Step 2: Create the mParticle by Rokt destinationDirect link to Step 2: Create the mParticle by Rokt destination

  1. In Hightouch, open your workspace.
  2. Go to DestinationsAdd destination.
  3. Search for mParticle and select it.
  4. Enter your API key and API secret.
  5. Give the connection a name (e.g. Rokt) and click Test connection to verify it works.

Step 3: Create a syncDirect link to Step 3: Create a sync

Once the destination is set up, create a sync to define which data gets sent and how it's mapped.

  1. Go to SyncsAdd sync.
  2. Select your data source model (the query or table that contains your conversion data).
  3. Select mParticle by Rokt as the destination.
  4. Set the sync type to Custom Event.

Step 4: Map your fieldsDirect link to Step 4: Map your fields

This is the most important step. Rokt's Events API expects data in a specific shape — the tables below show exactly what to map and where.

Fixed values (set these manually in the mapper)Direct link to Fixed values (set these manually in the mapper)

These fields don't come from your warehouse — you set them as fixed values directly in Hightouch:

FieldValueWhy
EnvironmentproductionAlways set to production, even during testing. This tells Rokt the data format version.
Event nameconversionTells Rokt this is a conversion event.
Custom event typetransactionRequired by the Rokt Events API schema.

Hightouch standard event setup


1. User identitiesDirect link to 1. User identities

Rokt needs at least one identifier to match the event to a user. Map as many as you have available — more identifiers means better match rates.

Your dataMap toNotes
Email addressuser_identities.emailMust be lowercase with no leading or trailing spaces
SHA-256 hashed emailuser_identities.otherUse this if you can't send plain-text email
Your internal customer IDuser_identities.customeridHelps Rokt link events from the same user over time
Rokt Click IDuser_identities.other2If captured, this directly links the conversion to the Rokt ad click that drove it
What is the Rokt Click ID?

When a user clicks a Rokt ad, Rokt generates a unique Click ID that gets passed to your site (typically as a URL parameter). If your warehouse captures this value, include it — it significantly improves attribution accuracy.

Hashing your data

Before hashing any value with SHA-256: lowercase all text, trim whitespace, and normalize phone numbers to 5551234567 format (no dashes, spaces, or country code).

Hightouch user identities mapping


2. Event detailsDirect link to 2. Event details

Your dataMap toNotes
When the event happenedevents[].data.timestamp_unixtime_msUnix timestamp in milliseconds. Most warehouses store this as epoch milliseconds — if yours stores seconds, multiply by 1000.
A unique ID for this eventevents[].data.source_message_idUse an order ID, transaction ID, or any stable unique value. Rokt uses this to deduplicate events.
Customer's IP addressipOptional. Used for geolocation and fraud detection.

Hightouch event attribute mapping


3. Conversion attributesDirect link to 3. Conversion attributes

These fields describe what the user did and are used directly in Rokt's reporting and optimization.

Your dataMap toRequiredNotes
Type of conversionevents[].data.custom_attributes.conversiontypeYesA short label for the action: purchase, signup, subscription, etc. You define this value — be consistent across events.
Order or confirmation numberevents[].data.custom_attributes.confirmationrefRecommendedUsed by Rokt to deduplicate events if the same conversion is received more than once.
Transaction valueevents[].data.custom_attributes.amountNoSend as a string: "99.99"
Currencyevents[].data.custom_attributes.currencyNoISO 4217 code: "USD", "EUR", "GBP"

Hightouch custom event attributes mapping


4. User attributesDirect link to 4. User attributes

The more user attributes you send, the better Rokt can match and optimize. None of these are required, but Rokt strongly recommends mapping as many as you have.

Your dataMap to
First nameuser_attributes.firstname
First name (SHA-256)user_attributes.firstnamesha256
Last nameuser_attributes.lastname
Last name (SHA-256)user_attributes.lastnamesha256
Mobile numberuser_attributes.mobile
Mobile number (SHA-256)user_attributes.mobilesha256
Ageuser_attributes.age
Date of birthuser_attributes.dob — format: yyyymmdd
Genderuser_attributes.gender — e.g. M, Female
Cityuser_attributes.city
Stateuser_attributes.state
Zip codeuser_attributes.zip
Titleuser_attributes.title — e.g. Mr, Ms
Languageuser_attributes.language
Customer valueuser_attributes.value
Predicted lifetime valueuser_attributes.predictedltv

Hightouch user attributes mapping

If you have additional profile fields not listed above, you can map them to user_attributes.<your_custom_key> using Hightouch's custom attribute mapping.

Hightouch custom user attributes mapping


5. Device infoDirect link to 5. Device info

If you have device-level data available, map it here. This improves match rates for mobile users. Do not put these in user attributes — they belong in the device_info object.

Your dataMap to
Browser or device user agentdevice_info.http_header_user_agent
iOS advertising ID (IDFA)device_info.ios_advertising_id
Android advertising ID (AAID)device_info.android_advertising_id

Complete exampleDirect link to Complete example

Here's what a fully mapped conversion event looks like when it reaches Rokt:

{
"environment": "production",
"ip": "203.0.113.42",
"device_info": {
"http_header_user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)"
},
"user_identities": {
"email": "jane.smith@example.com",
"customerid": "cust_123456",
"other2": "rokt-click-id-from-url-param"
},
"user_attributes": {
"firstname": "Jane",
"lastname": "Smith",
"zip": "10001",
"city": "New York",
"state": "NY"
},
"events": [
{
"event_type": "custom_event",
"data": {
"event_name": "conversion",
"custom_event_type": "transaction",
"source_message_id": "order_789012",
"timestamp_unixtime_ms": 1735689600000,
"custom_attributes": {
"conversiontype": "purchase",
"confirmationref": "ORD-789012",
"amount": "149.99",
"currency": "USD"
}
}
}
]
}

LimitsDirect link to Limits

ResourceLimit
Total request size256 KB
Batches per second270
Event attribute value length4096 characters
User attributes per batch100
User attribute value length4096 characters

Error referenceDirect link to Error reference

If a sync fails, check the status code Hightouch reports:

StatusMeaningWhat to do
202 AcceptedSuccessNo action needed
400 Bad RequestMalformed payload or missing required fieldCheck that event_name, custom_event_type, and conversiontype are all set
401 UnauthorizedAPI key or secret missingRe-enter credentials in the destination settings
403 ForbiddenAPI key or secret invalidContact your Rokt account manager to verify credentials
429 Too Many RequestsRate limit exceededReduce sync frequency or batch size
5xx Server ErrorRokt-side issueRetry — Hightouch will typically handle this automatically

SupportDirect link to Support

  • Hightouch sync or model questions → your Hightouch account manager
  • Rokt field requirements or attribution questions → your Rokt account manager
Was this article helpful?