Epsilon
What Is Epsilon?
Epsilon is a marketing and advertising technology company that provides data-driven solutions for audience targeting, personalization, and conversion measurement. Its platform helps retailers and advertisers connect customer activity across channels to inform campaign strategy and measure performance. Epsilon's Server-to-Server (S2S) Event API accepts browsing and purchase data sent server-side, supporting privacy-conscious measurement that is resilient to browser-side tracking limitations. This connection allows on-site events to be associated with known customers for reporting and attribution.
Product Type: Advertising
Integration Type: Starter Kit
Event Source Type: Web
Event Scope: Conversion Events Only
Capabilities
- Sends server-side conversion events directly to Epsilon via the Event API.
- Passes hashed customer identifiers (email and phone) for privacy-conscious user matching.
- Enriches events with customer, order, and transaction details required by Epsilon.
- Passes country code and GDPR consent string to support location-based and privacy-compliant processing.
Considerations
dtm_promo_idanddtm_fidare currently set to placeholder values (ADD_DTM_PROMO_ID_HEREandADD_DTM_FID_HERE). These must be replaced with the customer's actual values before launch.dtm_user_idshould be passed as thecustomer_idin the data files sent to Epsilon. It cannot be PII or a hashed email address. Email addresses should be passed only viadtm_email_hash.dtm_conv_valshould not include any tax or shipping costs.dtm_conv_currmust be a valid ISO currency code.dtm_email_hashanddtm_mobile_hashare conditional: each is required only if the other is not available. At least one must be present, or the integration filters out the event entirely. You may adjust this under "Global Filters".dtmc_order_channelis set toonlinethrough a static enrichment. Epsilon accepts other values to differentiate purchase types, including:OnlineIn Store- Additional channel values as defined by Epsilon.
- Because this value is set as a fixed enrichment, representing more than one order channel would require a separate integration.
Starter Kit Setup Guide
1. Gather Credentials
- Ask Epsilon representatives for the following credentials:
DTM_CIDDTM_CMAGIC
- Additionally, obtain the following values from your Epsilon representative and populate them in the event enrichments before launch:
dtm_promo_iddtm_fid
2. Add an Epsilon Integration
- From the integration library, add an Epsilon integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|---|
DTM_CID | Company ID provided by Epsilon used to identify your calls. |
DTM_CMAGIC | Separate identifier provided by Epsilon used to confirm the company ID. |
3. Configure Event Mapping
- MetaRouter provides all of the event mappings that Epsilon integrations typically require. You may add custom events, parameters, or mappings in accordance with Epsilon's API documentation.
4. Deploy to Pipeline
- In the Pipelines tab, add your Epsilon integration.
- Select the correct integration revision.
- Click Add Integration to finalize deployment.
Event Mappings
Global
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
| Output Key | Description | Expected Input |
|---|---|---|
request_type Required | String: Type of API request being made. Only single is supported. | Enrichment – 'single' |
send_callback Required | Boolean: Indicates whether the Partner Sync Web-service URL should be returned. | Enrichment – false |
dtmc_order_channel Required | String: Order channel for the purchase. | Enrichment – 'online' |
dtm_user_ip Required | String: User's IP address (IPv4 or IPv6). | context.ip |
dtm_country_code Required | String: ISO country code determining country of origin. | Expression – converts traits.address.country to ISO country code |
dtm_cookie_id Required | String: Client-supplied user identifier associated with the customer. | anonymousId |
fpc_domain | String: Root domain where first-party cookies should be set. | Expression – parses host from context.page.url |
dtm_user_agent | String: Browser user agent string, unescaped. | context.userAgent |
dtm_email_hash * Required | String: SHA-256 hash of the normalized, lowercased, trimmed email. Required if mobile hash is not available. | Expression – hashes traits.email after normalization |
dtm_mobile_hash * Required | String: SHA-256 hash of the phone number with spaces and dashes removed. Required if email hash is not available. | Expression – hashes traits.phone after normalization |
dtmc_loc | String: URL of the page the user is viewing, unescaped. | context.page.url |
dtmc_ref | String: Referring page URL. | context.page.referrer |
dtmc_tcf_string | String: GDPR consent string where available. | context.consent.tcf.tcString |
dtm_user_id | String: Client system's customer identifier. Cannot be PII or hashed email. | userId |
Event Specific
Order Completed
| Output Key | Description | Expected Input |
|---|---|---|
dtm_promo_id Required | String: Promo ID identifying the page type. Placeholder pending customer value. | Enrichment – 'ADD_DTM_PROMO_ID_HERE' |
dtm_fid Required | String: Form ID identifying the page type. Placeholder pending customer value. | Enrichment – 'ADD_DTM_FID_HERE' |
dtm_conv_val Required | Number: Total price for all items purchased, excluding tax and shipping. | properties.revenue |
dtmc_transaction_id Required | String: Client system's unique identifier for the conversion. | properties.order_id |
dtm_items Required | Array: Items in the conversion, each mapping sku, amt, and qty where available. | Expression – maps properties.products to sku, amt, qty |
dtm_conv_curr | String: ISO currency code for the conversion. | properties.currency |
Required & Recommended Identifiers
These identifiers must be mapped to Epsilon in order for successful user matching to occur. Without these IDs, any events sent to Epsilon may not be accurately reflected in reporting.
| Attribute | Example | Sync Injector Required? |
|---|---|---|
dtm_email_hash * Required | b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514 | No |
dtm_mobile_hash * Required | a3ff56e7298979042e2314761eebc884c542587f1abfd8f0e1cc1ffc5e47551 | No |
dtm_cookie_id Required | e6b56561-9bdf-4167-9a59-91d13a215b4f | No |
dtm_user_id Recommended | 1234abc | No |
* dtm_email_hash and dtm_mobile_hash are conditional: each is required only if the other is not available. At least one must be present, or the event is filtered out.
Integration Validation
To validate the integration, work with your Epsilon representative to confirm events are arriving and processing correctly on Epsilon's side. Each Event API response includes a response_code and response_message you can use to check event status:
0(SUCCESS): The event was processed successfully with a user identifier.16(NO_USER_IDENTIFIER): The event was processed successfully, but without a user identifier.83(Tag Command Block): Expected during initial testing. Epsilon removes this block once validation and legal sign-off are complete.
Share these response values with your Epsilon representative to help resolve any discrepancies before going live.
Updated about 2 hours ago