Blueshift

AI-powered customer data platform for predictive segmentation, personalised messaging, and cross-channel campaign orchestration.

Why route Blueshift through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Blueshift even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Blueshift needs to attribute the event to the right session.
  • One consent decision governs every destination. Blueshift is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Complete these steps in Blueshift before configuring Signal.

Access your Blueshift account

Log in to the Blueshift dashboard at app.getblueshift.com (or your EU dashboard).

Find your Event API key

Go to Account Settings > API Keys and copy the Event API Key. Signal sends it as the HTTP Basic username with an empty password; the User API key is not used.

Note your region

If your account is in Blueshift’s EU data centre, set the integration’s Region to EU so events go to api.eu.getblueshift.com.

Configuration

FieldTypeRequiredDescription
event_api_keysecretYesYour Blueshift Event API key. Found in Account Settings > API Keys. Sent as the HTTP Basic username with an empty password.
regionselectNous (default, api.getblueshift.com) or eu (api.eu.getblueshift.com) for accounts in Blueshift’s EU data centre.
retailer_idstringNoNot used by the Event API; kept for reference.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Blueshift under the CDP category.
  4. Click Install, and fill in the required fields with the credentials gathered above.
  5. Click Install Integration to create the integration with a ready-to-use default configuration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/blueshift/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Blueshift",
    "variant": "default",
    "config": {
      "event_api_key": "xxxxxxxxxxxxxxxxxxxx",
      "region": "us"
    },
    "delivery_mode": "server_side"
  }'

API endpoint

POST https://api.getblueshift.com/api/v1/event      (US)
POST https://api.eu.getblueshift.com/api/v1/event   (EU)

Allow egress to the host of your region from the network your delivery workers run on.

Event Mapping

Each event is a flat JSON object with Blueshift’s event name and attributes:

Signal eventBlueshift eventAttributes
pagepageloadurl, referrer
view_itemviewproducts[].sku, product_ids
add_to_cart, remove_from_cartadd_to_cart, remove_from_cartproduct_id, product_ids, products[]
begin_checkoutcheckouttotal, currency, coupon, products[] (sku, price, quantity)
purchasepurchaseorder_id, revenue, currency (upper-cased), tax, shipping, coupon, products[] (sku, price, quantity)
searchsearchkeywords
add_to_wishlist, refundwishlist, refundproduct or order fields
identifyidentifyidentifiers only
subscription_started / _upgraded / _downgraded / _renewed / _cancelled (B2B / SaaS and Media presets)subscription_start / _upgrade / _downgrade / _billing / _cancelsubscription_plan_type, subscription_amount, subscription_period_type
Other events of the preset’s event specSignal event nameevery documented property

Every event also carries customer_id, email, event_uuid (the Signal event ID, Blueshift’s dedup key), ip, user_agent and timestamp (ISO 8601). Presets: Retail, Default, B2B / SaaS and Media & Streaming.

Identity

FieldSourceNotes
customer_iduser_id from datafly.identify()The canonical Blueshift identifier.
emailidentify traitsTrimmed and lower-cased, sent as it is: Blueshift sends messages to the address, so it cannot be hashed.

Blueshift rejects an event with no identifier, and its anonymous identifier is its own browser cookie, which Signal does not read. Only events from visitors with a user ID or an e-mail address are sent; anonymous browsing is not.

Blueshift events should be sent under the marketing category by default. Signal forwards the visitor’s CMP consent state on every event so Blueshift can suppress messages for visitors who declined marketing communications.

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the Blueshift API. No client-side scripts are loaded for this integration.

Verify it’s working

  1. After installing the integration, trigger a test event from your website or via the Signal event API.
  2. In Blueshift, navigate to Data > Event Stream to view recently received events.
  3. Search for the test customer under Customers to verify profile creation or update.
  4. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid Event API key, or the wrong regionVerify the Event API key in Blueshift Account Settings > API Keys and that the region matches your account
400 Bad RequestMissing required fieldsEnsure events include at least one user identifier (customer_id or email)
Purchase events not trackedMissing retailer IDAdd the retailer_id to the integration config for e-commerce event support
Events delivered but not in Event StreamProcessing delayBlueshift may take a few minutes to process events. Wait and refresh the Event Stream

Visit Blueshift documentation for full API reference and event tracking details.

See also