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 real-time 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.
What are the benefits of integrating MetaRouter with Movable Ink?
- Deliver Dynamic, Individualized Content In Real Time: Craft highly personalized content that adapts in real-time to individual user preferences, behaviors, and context. Deliver experiences that transcend generic messaging and resonate deeply with each recipient.
- Increase Addressability Exponentially: Go beyond basic demographics and reach users based on their unique needs, interests, and behaviors. No more missed connections – speak directly to your ideal audience.
- Boost Campaign Performance: Drive higher engagement, conversion rates, and ROI with privacy-compliant personalization.
Getting Started - From Your Movable Ink Account
- Contact your MetaRouter Customer Experience team and request sample event payloads for every event you are planning on passing into Movable Ink.
- Contact your Movable Ink team and let them know you are in the process of integrating with Movable Ink and send them your event payloads. Your Movable Ink will need to map these events to your Movable Ink account.
- Your Movable Ink team will provide you with the following:
- Endpoint
- Access Key ID
- Access Secret
Getting Started - From Your MetaRouter Account
Adding a Movable Ink - Customer Data integration.
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 key ID. |
Adding a Movable Ink Sync
To gather the mi_u value and persist it as the cookie, you must add a Movable Ink - Customer Data sync.
- 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.”
- In the Identity Syncs section, select the Movable Ink - Customer Data sync.
- Fill out the following fields:
- Cookie Lifetime (in days) - 370 is best practice
- Scroll down and click the Save and Build File button.
- Deploy your AJS file to propagate changes to your web property.
Event Mappings
MetaRouter provides all of the event mappings that Movable Ink integrations typically require. You may add custom events, parameters, or mappings following Movable Ink’s API documentation.
NOTE: Movable Ink will need to map every event payload onto your Movable Ink account. If you’re adding any events, please be sure to send sample payloads to your Movable Ink service team.
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 |
---|---|---|
user_id Required | Type: String The unique identifier of the profile that triggered this event. In this integration, this is the mi_u ID. | mi_u |
anonymousId Required | Type: String MetaRouter’s anonymous ID for user identification and attribution. This ID is set as a first-party cookie (on web), and is persisted across user sessions to serve as a consistent identifier for the user. | anonymousId |
timestamp Required | Type: Number The time when the event occured (Unix Time). | timestamp |
type Required | Type: String The type of event. | type |
event Required | Type: String Designates the event sub-type. | N/A - Expression |
Event Specific
NOTE: The following events are the default for easy access; however, events sent to Movable Ink are customizable. Please be sure to discuss what events you will be sending to Movable Ink with your Movable Ink rep as they will need to map every event to your account. Required parameters are only required if you’re sending the corresponding event.
identify
Output Key | Description | Expected Input |
---|---|---|
userId Optional | Type: String A User ID is a permanent value that should be unique to each user and stored in your database. We recommend generating this value via UUID-4 or deriving it from your own database. This is not the same as user_id as mentioned in Global parameters above. | userId |
page
Output Key | Description | Expected Input |
---|---|---|
properties.title Optional | Type: String Page title. | properties.title |
properties.url Optional | Type: String Page URL. | properties.url |
products_searched
Output Key | Description | Expected Input |
---|---|---|
properties.query Required | Type: String Query the user searched with. | properties.query |
properties.url Optional | Type: String The URL of the product. | context.page.url |
product_list_viewed
Output Key | Description | Expected Input |
---|---|---|
properties.id Required | Type: String Product list being viewed. | properties.list_id |
properties.url Optional | Type: String The URL of the product. | context.page.url |
properties.category Optional | Type: String Product category being viewed. | properties.category |
properties.currency Optional | Type: String Currency code associated with the transaction. | properties.currency |
properties.products Optional | Type: Array An array of product parameters. | N/A - Expression |
product_viewed
Output Key | Description | Expected Input |
---|---|---|
properties.product_id Required | Type: String The unique identifier of the product. | N/A - Expression |
properties.sku Optional | Type: String SKU of the product being viewed. | properties.sku |
properties.category Optional | Type: Array An array of Categories with which this product is associated. | properties.category |
properties.currency Optional | Type: String Currency of the transaction. | properties.currency |
properties.name Optional | Type: String Name of the product being viewed. | properties.name |
properties.price Optional | Type: Number The product price. | properties.price |
properties.quantity Optional | Type: Number Quantity of a product. | properties.quantity |
properties.url Optional | Type: String URL of the product page. | properties.url |
product_added & product_removed
Output Key | Description | Expected Input |
---|---|---|
properties.cart_id Required | Type: String Cart ID that the product was added to. | properties.cart_id |
properties.product_id Required | Type: String Database ID of the product being viewed. | N/A - Expression |
properties.sku Optional | Type: String SKU of the product being viewed. | properties.sku |
properties.category Optional | Type: String Product category being viewed. | properties.category |
properties.currency Optional | Type: String Currency of the transaction. | properties.currency |
properties.name Optional | Type: String Name of the product being viewed. | properties.name |
properties.price Optional | Type: Number The product price. | properties.price |
properties.quantity Optional | Type: Number Quantity of a product. | properties.quantity |
properties.url Optional | Type: String URL of the product page. | properties.url |
cart_viewed
Output Key | Description | Expected Input |
---|---|---|
properties.cart_id Required | Type: String Cart ID that the product was added to. | properties.cart_id |
properties.total Optional | Type: Number Revenue ($) with discounts and coupons included. | N/A - Expression |
properties.currency Optional | Type: String Currency of the transaction. | properties.currency |
properties.products Optional | Type: Array Products displayed in the product list. | properties.products |
order_completed
Output Key | Description | Expected Input |
---|---|---|
properties.order_id Required | Type: String Order/transaction ID. | properties.cart_id |
properties.total Optional | Type: Number Revenue ($) with discounts and coupons included. | N/A - Expression |
properties.revenue Optional | Type: Number Revenue ($) associated with the transaction, excluding shipping and tax. | properties.revenue |
properties.currency Optional | Type: String Currency of the transaction. | properties.currency |
properties.products Required | Type: Array Products displayed in the product list. | properties.products |
Required 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.
Attribute | Example | Sync Injector Required? |
---|---|---|
mi_u Required | ?mi_u=6977481 | Yes |
anonymousId Required | 130161d0-8fee-4167-aa4d-d151eed27c6b | No |
timestamp Required | 13 number unix timestamp (1675795062761 ) | No |
Recommended Identifiers
These identifiers should be mapped to Movable Ink whenever possible to ensure the highest user match rates possible. If using these identifiers, they must be added as Global or Event Specific mappings. Please discuss adding the following attribute with your Movable Ink service team to properly map to your account.
Attribute | Description | Example |
---|---|---|
email recommended | Lowercase SHA256 hash of normalized email. Trim any leading and trailing spaces. Convert all characters to lowercase. | Before hashing: [email protected] After hashing: `542d240129883c019e106e3b1b2d3f3cb3537c43c425364de8e951d5a3083345 |
Additional Notes & Documentation
To learn more about Movable Ink’s Customer Data API, please review the following Support Center Articles:
Updated 6 months ago