Blueshift is a cross-channel marketing platform that consolidates customer data into unified profiles, enabling marketers to deliver personalized campaigns across multiple channels, including email, SMS, and push notifications. It leverages AI-driven automation to facilitate timely and relevant customer interactions, enhancing engagement and conversion rates. The platform also provides robust analytics and performance insights, enabling data-driven optimization of marketing strategies. By integrating customer data management with cross-channel execution, Blueshift supports seamless, scalable marketing operations.
Product Type: Marketing
Integration Type: Starter Kit
Event Source Type: Web
Event Scope: Full-Funnel Events
- Sends server-side event data to Blueshift, eliminating the need for a Blueshift tag and reducing browser-side load.
- Delivers data reliably even when users have ad blockers or tracking restrictions.
- Sends events in bulk to the
/api/v1/bulkevents endpoint.
- Supports event types including page views, identify events, product activity, checkout starts, and completed orders, each enriched with event-specific attributes.
- Maps the anonymous ID to Blueshift's cookie field and captures emails through the identify event to create and update customer profiles.
- Powers audience segmentation and journey automation using the events and attributes sent by MetaRouter.
- Authentication uses basic auth with the Event API Key as the username. The Users API is not needed for this integration.
- The API base URL defaults to
https://api.getblueshift.com for non-EU regions. EU customers must set the correct regional base URL.
- Events are delivered in batches of up to 20 per request.
- This integration supports web events only. For iOS/Android events, contact your MetaRouter support team.
- Because events are sent in bulk to the
/bulkevents endpoint, there may be a delay in triggering time-sensitive workflows or journeys in Blueshift that depend on event triggers.
- Follow Blueshift's instructions to obtain an Event API Key. The Users API is not needed for this integration.
- From the integration library, add a Blueshift integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|
EVENT_API_KEY | Event API key from Blueshift, used to authenticate API requests. |
API_BASE_URL | Blueshift API base URL. Defaults to https://api.getblueshift.com; EU customers must use their regional base URL. |
- MetaRouter provides all of the event mappings that Blueshift integrations typically require. You may add custom events, parameters, or mappings in accordance with Blueshift's API documentation.
- In the Pipelines tab, add your Blueshift 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 |
|---|
partner Highly Recommended | String: Sends technology partner information to Blueshift to assist with tracking and troubleshooting the integration. | Enrichment – 'metarouter' |
timestamp Required | ISO 8601 date string: The time the event occurred. | timestamp |
ip Required | String: The IP address of the event origin. | context.ip |
email Highly Recommended | String: The email address associated with the user profile. | traits.email |
customer_id | String: Uses userId or anonymousId for customer ID. | Expression – returns userId or anonymousId |
cookie Required | String: The cookie ID associated with the user. | anonymousId |
user_agent Required | String: The user agent string from the device. | context.userAgent |
device_id | String: Uses advertisingId or anonymousId for device ID. | Expression – returns advertisingId when ad tracking is enabled, else anonymousId |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as pageload. | Enrichment – 'pageload' |
url | String: URL of the page viewed. | context.page.url |
referrer | String: Referrer URL of the page viewed. | context.page.referrer |
category | String: Category of the page viewed. | properties.category |
name | String: Name of the page viewed. | properties.name |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as identify. | Enrichment – 'identify' |
firstname | String: User's first name. | traits.firstName |
lastname | String: User's last name. | traits.lastName |
gender | String: User's gender. | traits.gender |
joined_at | ISO 8601 date string: User's joined date. | traits.createdAt |
phone_number | String: User's phone number. | traits.phone |
birthday | String: Extracted from user's birthday (first 10 characters). | Expression – truncates traits.birthday to YYYY-MM-DD |
address | String: User's address. | traits.address |
age | Integer: User's age. | traits.age |
avatar | String: User's avatar URL. | traits.avatar |
company | String: User's company name. | traits.company |
description | String: User's description. | traits.description |
id | String: User's ID. | traits.id |
name | String: User's name. | traits.name |
title | String: User's title. | traits.title |
username | String: User's username. | traits.username |
website | String: User's website URL. | traits.website |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as product view. | Enrichment – 'view' |
product_id Required | String: Product ID or SKU of the viewed product. | Expression – returns properties.product_id or properties.sku |
title | String: Name of the viewed product. | properties.name |
web_link | String: URL of the viewed product. | properties.url |
image | String: Image URL of the viewed product. | properties.image_url |
price | Float: Price of the viewed product. | properties.price |
category | Array of strings: Category of the viewed product. | Expression – wraps properties.category in an array |
brand | String: Brand of the viewed product. | properties.brand |
parent_sku | String: Parent SKU of the viewed product. | properties.sku |
variant | String: Variant of the viewed product. | properties.variant |
quantity | Integer: Quantity of the viewed product. | properties.quantity |
coupon | String: Coupon applied to the viewed product. | properties.coupon |
currency | String: Currency of the viewed product price. | properties.currency |
position | Integer: Position of the viewed product. | properties.position |
value | Float: Total value of the viewed product interaction. | properties.value |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as add to cart. | Enrichment – 'add_to_cart' |
cart_id | String: Cart ID where the product was added. | properties.cart_id |
product_id Required | String: Product ID or SKU of the added product. | Expression – returns properties.product_id or properties.sku |
title | String: Name of the added product. | properties.name |
web_link | String: URL of the added product. | properties.url |
image | String: Image URL of the added product. | properties.image_url |
price | Float: Price of the added product. | properties.price |
category | Array of strings: Category of the added product. | Expression – wraps properties.category in an array |
brand | String: Brand of the added product. | properties.brand |
parent_sku | String: Parent SKU of the added product. | properties.sku |
variant | String: Variant of the added product. | properties.variant |
quantity | Integer: Quantity of the added product. | properties.quantity |
coupon | String: Coupon applied to the added product. | properties.coupon |
position | Integer: Position of the added product. | properties.position |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as remove from cart. | Enrichment – 'remove_from_cart' |
cart_id | String: Cart ID where the product was removed. | properties.cart_id |
product_id Required | String: Product ID or SKU of the removed product. | Expression – returns properties.product_id or properties.sku |
title | String: Name of the removed product. | properties.name |
web_link | String: URL of the removed product. | properties.url |
image | String: Image URL of the removed product. | properties.image_url |
price | Float: Price of the removed product. | properties.price |
category | Array of strings: Category of the removed product. | Expression – wraps properties.category in an array |
brand | String: Brand of the removed product. | properties.brand |
parent_sku | String: Parent SKU of the removed product. | properties.sku |
variant | String: Variant of the removed product. | properties.variant |
quantity | Integer: Quantity of the removed product. | properties.quantity |
coupon | String: Coupon applied to the removed product. | properties.coupon |
position | Integer: Position of the removed product. | properties.position |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as search. | Enrichment – 'search' |
keywords | String: Search query entered by the user. | properties.query |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as checkout. | Enrichment – 'checkout' |
total | Float: Total value of the checkout. | properties.value |
products | Array: Product details for all checkout items. | Expression – maps each item in properties.products to product fields |
| Output Key | Description | Expected Input |
|---|
event Required | String: Identifies the event as purchase. | Enrichment – 'purchase' |
properties | Object: The full properties object sent along with the event. | Expression – returns input.properties |
| Output Key | Description | Expected Input |
|---|
event | String: Maps the event name for track events, otherwise the event type. | Expression – returns input.event or input.type |
properties | Object: The full properties object sent along with the event. | Expression – returns input.properties |
These identifiers must be mapped to Blueshift in order for successful user matching to occur. Without these IDs, any events sent to Blueshift may not be accurately reflected in reporting. 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? |
|---|
customer_id | 123456789 | No |
cookie Required | 4b0d3f5a-879c-4c8d-a2fa-0a12a1e5e3b4 | No |
email Highly Recommended | [email protected] | No |
user_agent Highly Recommended | Mozilla/5.0 (Windows NT 10.0; Win64; x64) | No |
ip Highly Recommended | 192.168.1.1 | No |
device_id | a23b4c5d6e7f89g0h1i2j3k4l5m6n7o8 | No |
firstname | John | No |
lastname | Doe | No |
gender | Male | No |
joined_at | 2022-06-15T12:34:56Z | No |
phone_number | +15551234567 | No |
address | 123 Main St, Springfield, USA | No |
age | 34 | No |
avatar | https://example.com/avatar.jpg | No |
company | Example Inc. | No |
description | Enthusiastic software engineer | No |
id | 987654321 | No |
name | John Doe | No |
title | Senior Developer | No |
username | johndoe2 | No |
website | https://johndoe.dev | No |
Coordinate with your Blueshift representative to confirm that events are being received and processed correctly on their backend.