Amperity Real-Time Profile Sync

📘

This integration requires activation of additional services. Contact your MetaRouter representative for assistance.

What is Amperity?

Amperity is a customer data platform that unifies fragmented customer records into a resolved Customer 360 profile. Its Real-Time Profile API allows external systems to fetch a complete customer profile server-side using a known identifier, supporting personalization and activation use cases. This sync uses MetaRouter's Enrichment Service to query the Amperity Real-Time Profile API's keychain lookup endpoint and resolve a profile from an identifier already present in the event stream. The resolved profile is then attached to downstream server-side events for enrichment and targeting.


Product Type: Analytics

Integration Type: ID Sync


Capabilities

  • Resolves a full Amperity customer profile server-side by looking up a known identifier (anonymous ID, user ID, or hashed email) against Amperity's Real-Time Profile API keychain endpoint.
  • Proxies the lookup through MetaRouter's Enrichment Service, which resolves the Amperity access token server-side so no credentials are exposed client-side.
  • Supports both unencrypted (default) and encrypted storage of the returned profile data.
  • Captures the complete Amperity response body so any identifier or attribute exposed through the customer's profile-collection SQL is preserved.
  • Adds the resolved profile to server-side event payloads for personalization, attribution, and audience targeting.

Considerations

  • The lookup value source and keychain identifier name are configured separately and must align with an identifier that exists in the Amperity profile collection.
  • If the resolved lookup value is empty (for example, when the User ID or Hashed Email source is selected before an identify() call fires), the request is suppressed entirely and no failure marker is set. The sync fires once the value becomes available, and reSync on identify() can trigger it.
  • The Amperity Tenant Domain (request host) and Amperity Tenant ID (the Amperity-Tenant header value) are configured separately because they can differ (e.g. host metarouter.amperity.com with tenant metarouter-real-time).
  • As an Enrichment Service Sync, cluster-level prerequisites must be configured before the sync will function: a registered Origin URL, a correctly configured MetaRouter Ingestor URL, the AMPERITY_RT_ACCESS_TOKEN enrichment variable, and — when running unencrypted — the Amperity tenant domain added to the cluster's allowedPlainEnrichmentEndpoints list.
  • The ingestor enforces a hard timeout when waiting on Amperity's API.

Sync Details

  • IDs:

    • data – The full JSON profile returned by Amperity's Real-Time Profile API keychain lookup, including collection_id, profile_id, links, and attributes. The entire response body is captured so any identifier the customer exposes through their profile-collection SQL is preserved downstream.
  • Description:

    • The sync retrieves a customer profile from Amperity's Real-Time Profile API keychain endpoint, using MetaRouter's Enrichment Service to resolve the access token and proxy the request server-side.
    • The lookup value is built from the configured Keychain Identifier Name and the selected Lookup Value Source — one of Anonymous ID, User ID, or Hashed Email.
    • For Hashed Email, the value is drawn from the identify event traits: if a pre-hashed hashedEmail value is available it is used directly; otherwise the email trait is SHA-256 hashed by MetaRouter.
    • The returned profile is stored in first-party storage for the duration set by the Cookie Lifetime setting (defaults to 30 days); this fetch-derived value refreshes only after the storage marker or TTL expires.
    • If a call fails, a failure marker is stored for 1 day, after which the sync retries.
    • The resolved profile is added to server-side event payloads for personalization, attribution, or targeting.
  • Response Example:

    {
      "collection_id": "apc-21Rfo4BPe",
      "profile_id": "amp-12345",
      "links": {
        "loyalty_id": ["EB-78945612"]
      },
      "attributes": {
        "first_name": "Erik",
        "loyalty_tier": "Gold",
        "lifetime_flights": 47
      },
      "created_at": "2026-04-24T22:10:36Z",
      "updated_at": "2026-06-18T18:58:56Z"
    }
  • Server-side Event Payload:
    Upon completion of all vendor's sync, the server-side events will incorporate all resolved identifiers as described above. The following object will be appended to the context.providers property within the event's JSON payload:

    Unencrypted (default):

    {
      "amperityRTProfile": {
        "data": "string"
      }
    }

    Encrypted:

    {
      "amperityRTProfile": {
        "encrypted": {
          "data": "string"
        }
      }
    }
  • Cookie Name:

    • Cookie: _meta_amperityRTProfile_data
    • IndexedDB: [your storage prefix]_amperityRTProfile_data
    • For a general guide on ID Sync validation, see here.

Sync Setup Guide

1. Gather Credentials

This is an Enrichment Service Sync, and the following must be configured at the cluster level before the sync will function:

  1. Origin URL — The customer's website origin must be registered and match exactly (no trailing slash):
    control create sync-function-origin-url --origin-url https://website.com
  2. MetaRouter Ingestor URL — Must be correctly configured in the UI build settings (e.g. mr.example.com).
  3. Enrichment Variable — The Amperity Real-Time access token must be set as a cluster enrichment variable:
    control create enrichment-variable AMPERITY_RT_ACCESS_TOKEN --value [AMPERITY_RT_ACCESS_TOKEN]
  4. Allowed Plain Enrichment Endpoint — When running unencrypted, the Amperity tenant domain must be in the cluster's allowedPlainEnrichmentEndpoints list: https://[TENANT_DOMAIN] (e.g. https://metarouter.amperity.com).

The Amperity Real-Time access token is issued by Amperity. If you do not have it, contact your Amperity support team.

2. Add an Amperity Sync in MetaRouter

Submit Integration Request Ticket

  • Submit a request through our support portal to enable enrichment services and set up your Amperity Real-Time Profile API token. MetaRouter will handle the implementation of the token on your behalf. You may attach a file containing your Amperity API token securely during this step.
  • Example ticket description:
    • Ticket Name: Enable Amperity Real-Time Profile Sync Enrichment and API Token Implementation
    • Ticket Description: Please enable enrichment services for our Amperity Real-Time Profile sync integration and implement our provided API token (attached).

To gather the data profile object, you must add an Amperity sync.

  1. From the Pipelines page, find the pipeline associated with the web property you'd like to add a sync to. Hover over the three dot dropdown and select "Build AJS File."
  2. In the Identity Syncs section, select the Amperity sync.
  3. Fill out the following fields:
    • Cookie Lifetime (in days) (Optional) – How long the resolved profile remains in first-party storage. When expired or no longer detected, the sync will re-trigger. Example: 30.
    • API Timeout (in milliseconds) (Optional) – Maximum time the Sync Injector waits for a response from the vendor's API. Example: 300.
    • MetaRouter Ingestor URL (Required) – Base domain for your MetaRouter ingestor. Exclude https:// and anything after .com. Example: "mr.example.com".
    • Amperity Tenant Domain (Required) – The tenant domain in Amperity, used as the request host. Exclude https:// and anything after .com. Example: "metarouter.amperity.com".
    • Amperity Tenant ID (Required) – The value sent in the Amperity-Tenant header. May differ from the tenant domain. Example: "metarouter-real-time".
    • Amperity Profile Collection ID (Required) – The profile collection to look up against in Amperity. Example: "apc-31X9v2TcL".
    • Keychain Identifier Name (Required) – The identifier configured in the profile collection used as the lookup key (query-parameter name). Example: "cookie_id", "loyalty_id", "hashed_email".
    • Lookup Value Source (Required) – Which identifier supplies the lookup value: Anonymous ID, User ID, or Hashed Email.
    • Encrypted (Optional) – When enabled, profile data from the enrichment service is encrypted before being stored. Provide as a boolean. Example: true.
  4. Scroll down and click the Save and Build File button.
  5. Deploy your AJS file to propagate changes to your web property.