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
- 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.
- 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.
- 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.
- 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.
- 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
- From the integration library, add a Movable Ink - Customer Data integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|
ENDPOINT | Paste in your full endpoint, including the URL. |
PASSWORD | Paste your access secret. |
USERNAME | Paste your access key ID. |
- 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.
- In the Pipelines tab, add your Movable Ink integration.
- Select the correct integration revision.
- Click Add Integration to finalize deployment.
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 |
|---|
user_id Required | String: The unique identifier of the profile that triggered the event (the mi_u ID). | context.providers.movableInkCustomerData.mi_u |
anonymousId Required | String: MetaRouter's anonymous ID, set as a first-party cookie (on web) and persisted across sessions as a consistent user identifier. | anonymousId |
timestamp Required | Number: The time when the event occurred (Unix time). | timestamp |
type Required | String: The type of event. | type |
event Required | String: 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) |
| Output Key | Description | Expected Input |
|---|
userId | String: A permanent value unique to each user and stored in your database. Not the same as the user_id in Global parameters. | userId |
| Output Key | Description | Expected Input |
|---|
properties.title | String: Page title. | properties.title |
properties.url | String: Page URL. | properties.url |
| Output Key | Description | Expected Input |
|---|
properties.query Required | String: Query the user searched with. | properties.query |
properties.url | String: The URL of the page. | context.page.url |
| Output Key | Description | Expected Input |
|---|
properties.id Required | String: Product list being viewed. | properties.list_id |
properties.url | String: The URL of the page. | context.page.url |
properties.category | String: Product category being viewed. | properties.category |
properties.currency | String: Currency code associated with the transaction. | properties.currency |
properties.products | Array: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL. | Expression – maps properties.products to product objects |
| Output Key | Description | Expected Input |
|---|
properties.product_id Required | String: The unique identifier of the product. | Expression – returns properties.product_id or properties.sku |
properties.sku | String: SKU of the product being viewed. | properties.sku |
properties.category | String: Category with which this product is associated. | properties.category |
properties.currency | String: Currency of the transaction. | properties.currency |
properties.name | String: Name of the product being viewed. | properties.name |
properties.price | Number: The product price. | properties.price |
properties.quantity | Number: Quantity of a product. | properties.quantity |
properties.url | String: URL of the product page. | properties.url |
| Output Key | Description | Expected Input |
|---|
properties.cart_id Required | String: Cart ID that the product was added to. | properties.cart_id |
properties.product_id Required | String: Database ID of the product. | Expression – returns properties.product_id or properties.sku |
properties.sku | String: SKU of the product. | properties.sku |
properties.category | String: Product category. | properties.category |
properties.currency | String: Currency of the transaction. | properties.currency |
properties.name | String: Name of the product. | properties.name |
properties.price | Number: The product price. | properties.price |
properties.quantity | Number: Quantity of a product. | properties.quantity |
properties.url | String: URL of the product page. | properties.url |
| Output Key | Description | Expected Input |
|---|
properties.cart_id Required | String: Cart ID that the product was removed from. | properties.cart_id |
properties.product_id Required | String: Database ID of the product. | Expression – returns properties.product_id or properties.sku |
properties.sku | String: SKU of the product. | properties.sku |
properties.category | String: Product category. | properties.category |
properties.currency | String: Currency of the transaction. | properties.currency |
properties.name | String: Name of the product. | properties.name |
properties.price | Number: The product price. | properties.price |
properties.quantity | Number: Quantity of a product. | properties.quantity |
properties.url | String: URL of the product page. | properties.url |
| Output Key | Description | Expected Input |
|---|
properties.cart_id Required | String: Cart ID being viewed. | properties.cart_id |
properties.total | Number: Total value across all products in the cart. | Expression – sums price × quantity across properties.products |
properties.currency | String: Currency of the transaction. | properties.currency |
properties.products | Array: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL. | Expression – maps properties.products to product objects |
| Output Key | Description | Expected Input |
|---|
properties.order_id Required | String: Order/transaction ID. | properties.order_id |
properties.total | Number: Revenue with discounts and coupons included. | properties.total |
properties.revenue | Number: Revenue associated with the transaction, excluding shipping and tax. | properties.revenue |
properties.currency | String: Currency of the transaction. | properties.currency |
properties.products Required | Array: Builds a list of products, each with product ID, SKU, category, name, price, quantity, and URL. | Expression – maps properties.products to product objects |
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.
| Attribute | Example | Sync Injector Required? |
|---|
mi_u Required | 6977481 | Yes |
anonymousId Required | 130161d0-8fee-4167-aa4d-d151eed27c6b | No |
timestamp Required | 1675795062761 | No |
Coordinate with your Movable Ink representative to confirm that events are being received and processed correctly on their backend.