Bluecore

Bluecore is a retail marketing platform that powers triggered email and SMS campaigns, predictive audiences, and product recommendations from a customer’s browsing and purchase behaviour. Datafly Signal delivers events to Bluecore server-to-server using the Events API, so behavioural and commerce signals reach Bluecore reliably without a browser pixel.

⚠️

This integration is currently in alpha. Configuration and behaviour may change.

Prerequisites

Complete these steps with Bluecore before configuring Signal.

Get your Bluecore namespace token

Your Bluecore namespace (also called the token) identifies your account on every API call (for example bluestore). It is shown in your Bluecore account settings, or your Bluecore Customer Success Manager can provide it. This token is a write credential — keep it server-side only and never expose it in browser code.

Confirm your product catalog IDs

Commerce events reference products by ID. The id you send in the products array must match the product IDs in your Bluecore product catalog, otherwise Bluecore cannot resolve the product for recommendations and triggers. Confirm the ID scheme (SKU, parent product ID, etc.) your catalog uses.

Confirm identity strategy

Bluecore keys customer profiles on the plaintext email address. Signal sends the email as both distinct_id and customer.email. For visitors seen before an email is captured, Signal sends a non-email distinct_id (the Signal anonymous ID); a later identify event links that anonymous ID to the captured email.

Configuration

FieldTypeRequiredDescription
namespacestringYesYour Bluecore namespace / token (e.g. bluestore). Sent as properties.token on every event.

Configure in Signal

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Bluecore under the Marketing Automation category.
  4. Click Install, and enter your namespace.
  5. Click Install Integration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/bluecore/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Bluecore",
    "variant": "default",
    "config": {
      "namespace": "bluestore"
    },
    "delivery_mode": "server_side"
  }'

API Endpoint

Signal delivers each event as a POST to the Bluecore Events API:

POST https://api.bluecore.app/api/track/mobile/v1

There is no Authorization header — Bluecore authenticates by the namespace token carried in the request body at properties.token. A successful call returns 202 Accepted; Bluecore validates and processes the event asynchronously.

Identity Signals

FieldSourceNotes
distinct_idtraits.email, falling back to anonymous_idRequired on every event. Email when known, otherwise the Signal anonymous ID.
customer.emailtraits.emailPlaintext email — Bluecore’s primary customer key. Not hashed.

Bluecore matches on the plaintext email address, so Signal sends it unhashed — unlike advertising pixels and CAPI integrations, which receive SHA-256 hashed identifiers.

Event Mapping

Signal’s GA4-style event names are mapped to Bluecore’s standard event names. Unmapped events are dropped.

Datafly EventBluecore EventNotes
pageviewed_pagePage URL and title as event properties.
Product Viewedviewed_productSingle product in the products array.
Products SearchedsearchUses search_term instead of products.
Product Addedadd_to_cartProduct, price, quantity.
Product Removedremove_from_cartProduct reference.
Product Added to WishlistwishlistProduct reference.
Order Completedpurchaseorder_id, total, and the purchased products.
Signed UpoptinOpt-in to marketing.
UnsubscribedunsubscribeOpt-out of marketing.

Example: Order Completed

A Datafly.js call on your site:

datafly.track("Order Completed", {
  order_id: "ORD-1001",
  revenue: 49.90,
  currency: "USD",
  products: [
    { product_id: "SKU123", price: 39.90, quantity: 1 },
    { product_id: "SKU456", price: 10.00, quantity: 1 }
  ]
});

is delivered to Bluecore as:

{
  "event": "purchase",
  "properties": {
    "token": "bluestore",
    "distinct_id": "jane@example.com",
    "customer": { "email": "jane@example.com" },
    "order_id": "ORD-1001",
    "total": 49.90,
    "products": [
      { "id": "SKU123", "price": 39.90, "quantity": 1 },
      { "id": "SKU456", "price": 10.00, "quantity": 1 }
    ]
  }
}

Bluecore events should be sent under the marketing consent category. The Events API has no per-event consent flag — opt-in and opt-out are explicit optin and unsubscribe events. Signal gates marketing delivery on the visitor’s consent state so events only reach Bluecore when marketing consent is granted.

Testing

  1. Trigger a test event (for example a product view) from your website.
  2. In Signal, check Live Events to confirm delivery with a 202 Accepted response.
  3. In Bluecore, verify the customer and behaviour appear in Audience Builder, or ask Bluecore support to confirm receipt — the Events API does not return a per-event lookup.

Bluecore returns 202 for accepted events and validates asynchronously, so a 202 confirms receipt but not downstream processing. Use Audience Builder to confirm the event resolved against a customer profile.

Troubleshooting

SymptomPossible CauseResolution
401 / 403Invalid or unauthorised namespace tokenConfirm the namespace value matches your Bluecore account token exactly.
400 Bad RequestMissing distinct_id or malformed bodyEnsure the event carries an email or anonymous ID; check the mapping.
Events accepted but no customer in BluecoreAnonymous distinct_id never linkedConfirm an identify / opt-in event fires once the email is captured.
Products not resolvingProduct id mismatchThe id must match an ID in your Bluecore product catalog.
429 Too Many RequestsRate limit exceededSignal retries automatically with backoff.

See the Bluecore Events API documentation for the full reference.

See also