Movable Ink - Customer Data

What Is Movable Ink?

Movable Ink specializes in contextual email marketing solutions. It allows marketers to create dynamic, personalized content within emails based on data such as location, device, and behavior. By delivering relevant and engaging content to each recipient, Movable Ink helps brands improve email engagement, drive conversions, and enhance the overall customer experience.


Product Type: Marketing
Integration Type: Starter Kit & ID Sync
Event Source Type: Web
Event Scope: Full-Funnel Events


Capabilities

  • Sends server-side behavioral events (page, product, cart, and order lifecycle) to Movable Ink's Customer Data API.
  • Uses the synced Movable Ink mi_u identifier as the user_id to associate events with Movable Ink profiles.
  • Supports customizable event payloads, which Movable Ink maps to your account.
  • Enriches events with product details such as ID, SKU, category, name, price, quantity, and URL.

Considerations

  • Authentication uses basic auth with your Movable Ink access key ID (username) and access secret (password).
  • Movable Ink must map every event payload on your Movable Ink account. If you are adding any events, send sample payloads to your Movable Ink service team.
  • Within each event, required parameters are only required when you are sending that corresponding event.
  • String fields are truncated to 256 characters and product arrays are limited to 100 items before sending to Movable Ink.
  • A SHA-256 hashed email (normalized: trimmed and lowercased) can be added as a Global or Event Specific mapping to improve match rates. Discuss mapping this with your Movable Ink service team.

Identity Sync

Sync Details

  • Captures the mi_u value and persists it as a first-party cookie.
  • The mi_u is used as the user_id for matching events to Movable Ink profiles.
  • Without this sync, events sent to Movable Ink will be rejected.

Starter Kit Setup Guide

1. Deploy the Movable Ink Sync

  • To collect the sync values (e.g., mi_u), you must implement a Movable Ink - Customer Data ID sync. Refer to the following documentation to complete the setup: Movable Ink - ID Sync Guide.

2. Gather Credentials

  • Contact your MetaRouter Customer Experience team and request sample event payloads for every event you plan to pass into Movable Ink.
  • Contact your Movable Ink team to let them know you are integrating and send them your event payloads for mapping to your account.
  • Your Movable Ink team will provide the following:
    • Endpoint
    • Access Key ID
    • Access Secret

3. Add a Movable Ink Integration

  • From the integration library, add a Movable Ink - Customer Data integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
ENDPOINTPaste in your full endpoint, including the URL.
PASSWORDPaste your access secret.
USERNAMEPaste your access key ID.

4. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Movable Ink integrations typically require. You may add custom events, parameters, or mappings in accordance with Movable Ink's API documentation.

5. Deploy to Pipeline

  • In the Pipelines tab, add your Movable Ink 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
user_id RequiredString: The unique identifier of the profile that triggered the event (the mi_u ID).context.providers.movableInkCustomerData.mi_u
anonymousId RequiredString: MetaRouter's anonymous ID, set as a first-party cookie (on web) and persisted across sessions as a consistent user identifier.anonymousId
timestamp RequiredNumber: The time when the event occurred (Unix time).timestamp
type RequiredString: The type of event.type
event RequiredString: Designates the event sub-type.Expression – maps the event name (product_list_viewed → category_viewed, page → page_viewed, other track events lowercased with underscores, otherwise user_identified)

Event Specific

Identify

Output KeyDescriptionExpected Input
userIdString: A permanent value unique to each user and stored in your database. Not the same as the user_id in Global parameters.userId

Page

Output KeyDescriptionExpected Input
properties.titleString: Page title.properties.title
properties.urlString: Page URL.properties.url

Products Searched

Output KeyDescriptionExpected Input
properties.query RequiredString: Query the user searched with.properties.query
properties.urlString: The URL of the page.context.page.url

Product List Viewed

Output KeyDescriptionExpected Input
properties.id RequiredString: Product list being viewed.properties.list_id
properties.urlString: The URL of the page.context.page.url
properties.categoryString: Product category being viewed.properties.category
properties.currencyString: Currency code associated with the transaction.properties.currency
properties.productsArray: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL.Expression – maps properties.products to product objects

Product Viewed

Output KeyDescriptionExpected Input
properties.product_id RequiredString: The unique identifier of the product.Expression – returns properties.product_id or properties.sku
properties.skuString: SKU of the product being viewed.properties.sku
properties.categoryString: Category with which this product is associated.properties.category
properties.currencyString: Currency of the transaction.properties.currency
properties.nameString: Name of the product being viewed.properties.name
properties.priceNumber: The product price.properties.price
properties.quantityNumber: Quantity of a product.properties.quantity
properties.urlString: URL of the product page.properties.url

Product Added

Output KeyDescriptionExpected Input
properties.cart_id RequiredString: Cart ID that the product was added to.properties.cart_id
properties.product_id RequiredString: Database ID of the product.Expression – returns properties.product_id or properties.sku
properties.skuString: SKU of the product.properties.sku
properties.categoryString: Product category.properties.category
properties.currencyString: Currency of the transaction.properties.currency
properties.nameString: Name of the product.properties.name
properties.priceNumber: The product price.properties.price
properties.quantityNumber: Quantity of a product.properties.quantity
properties.urlString: URL of the product page.properties.url

Product Removed

Output KeyDescriptionExpected Input
properties.cart_id RequiredString: Cart ID that the product was removed from.properties.cart_id
properties.product_id RequiredString: Database ID of the product.Expression – returns properties.product_id or properties.sku
properties.skuString: SKU of the product.properties.sku
properties.categoryString: Product category.properties.category
properties.currencyString: Currency of the transaction.properties.currency
properties.nameString: Name of the product.properties.name
properties.priceNumber: The product price.properties.price
properties.quantityNumber: Quantity of a product.properties.quantity
properties.urlString: URL of the product page.properties.url

Cart Viewed

Output KeyDescriptionExpected Input
properties.cart_id RequiredString: Cart ID being viewed.properties.cart_id
properties.totalNumber: Total value across all products in the cart.Expression – sums price × quantity across properties.products
properties.currencyString: Currency of the transaction.properties.currency
properties.productsArray: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL.Expression – maps properties.products to product objects

Order Completed

Output KeyDescriptionExpected Input
properties.order_id RequiredString: Order/transaction ID.properties.order_id
properties.totalNumber: Revenue with discounts and coupons included.properties.total
properties.revenueNumber: Revenue associated with the transaction, excluding shipping and tax.properties.revenue
properties.currencyString: Currency of the transaction.properties.currency
properties.products RequiredArray: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL.Expression – maps properties.products to product objects

Required & Recommended Identifiers

These identifiers must be mapped to Movable Ink in order for successful user matching to occur. Without these IDs, any events sent to Movable Ink will be rejected. For your convenience, required and recommended IDs are mapped as Global parameters to ensure they are added to every event.

AttributeExampleSync Injector Required?
mi_u Required6977481Yes
anonymousId Required130161d0-8fee-4167-aa4d-d151eed27c6bNo
timestamp Required1675795062761No

Integration Validation

Coordinate with your Movable Ink representative to confirm that events are being received and processed correctly on their backend.


Additional Movable Ink Documentation