Epsilon

📘

This integration is currently in beta. Contact your MetaRouter support team to get started.

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_id and dtm_fid are currently set to placeholder values (ADD_DTM_PROMO_ID_HERE and ADD_DTM_FID_HERE). These must be replaced with the customer's actual values before launch.
  • dtm_user_id should be passed as the customer_id in the data files sent to Epsilon. It cannot be PII or a hashed email address. Email addresses should be passed only via dtm_email_hash.
  • dtm_conv_val should not include any tax or shipping costs.
  • dtm_conv_curr must be a valid ISO currency code.
  • 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 integration filters out the event entirely. You may adjust this under "Global Filters".
  • dtmc_order_channel is set to online through a static enrichment. Epsilon accepts other values to differentiate purchase types, including:
    • Online
    • In 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_CID
    • DTM_CMAGIC
  • Additionally, obtain the following values from your Epsilon representative and populate them in the event enrichments before launch:
    • dtm_promo_id
    • dtm_fid

2. Add an Epsilon Integration

  • From the integration library, add an Epsilon integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
DTM_CIDCompany ID provided by Epsilon used to identify your calls.
DTM_CMAGICSeparate 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 KeyDescriptionExpected Input
request_type RequiredString: Type of API request being made. Only single is supported.Enrichment – 'single'
send_callback RequiredBoolean: Indicates whether the Partner Sync Web-service URL should be returned.Enrichment – false
dtmc_order_channel RequiredString: Order channel for the purchase.Enrichment – 'online'
dtm_user_ip RequiredString: User's IP address (IPv4 or IPv6).context.ip
dtm_country_code RequiredString: ISO country code determining country of origin.Expression – converts traits.address.country to ISO country code
dtm_cookie_id RequiredString: Client-supplied user identifier associated with the customer.anonymousId
fpc_domainString: Root domain where first-party cookies should be set.Expression – parses host from context.page.url
dtm_user_agentString: Browser user agent string, unescaped.context.userAgent
dtm_email_hash * RequiredString: 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 * RequiredString: 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_locString: URL of the page the user is viewing, unescaped.context.page.url
dtmc_refString: Referring page URL.context.page.referrer
dtmc_tcf_stringString: GDPR consent string where available.context.consent.tcf.tcString
dtm_user_idString: Client system's customer identifier. Cannot be PII or hashed email.userId

Event Specific

Order Completed

Output KeyDescriptionExpected Input
dtm_promo_id RequiredString: Promo ID identifying the page type. Placeholder pending customer value.Enrichment – 'ADD_DTM_PROMO_ID_HERE'
dtm_fid RequiredString: Form ID identifying the page type. Placeholder pending customer value.Enrichment – 'ADD_DTM_FID_HERE'
dtm_conv_val RequiredNumber: Total price for all items purchased, excluding tax and shipping.properties.revenue
dtmc_transaction_id RequiredString: Client system's unique identifier for the conversion.properties.order_id
dtm_items RequiredArray: Items in the conversion, each mapping sku, amt, and qty where available.Expression – maps properties.products to sku, amt, qty
dtm_conv_currString: 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.

AttributeExampleSync Injector Required?
dtm_email_hash * Requiredb4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514No
dtm_mobile_hash * Requireda3ff56e7298979042e2314761eebc884c542587f1abfd8f0e1cc1ffc5e47551No
dtm_cookie_id Requirede6b56561-9bdf-4167-9a59-91d13a215b4fNo
dtm_user_id Recommended1234abcNo

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