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.

Why route Bluecore through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Bluecore even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • One consent decision governs every destination. Bluecore is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

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

distinct_id is the email (trimmed, lower-cased), else the Signal anonymous ID. Bluecore keys customers on the plain-text email and sends to it, so it is not hashed. When the visitor signs up or logs in, Signal sends Bluecore’s identify event with the Signal anonymous ID as distinct_id and the email as customer.email, which links the anonymous ID used for earlier events to the customer (Bluecore requires an identify for each non-email distinct_id). Purchases, identify, optin and unsubscribe without an email are not sent (Bluecore requires it).

Event Mapping

Every request is {"event": ..., "properties": {...}}, with the namespace token and distinct_id inside properties.

Signal eventBluecore eventNotes
view_itemviewed_productproducts[] (id, price, quantity) from the Signal items; required
searchsearchsearch_term; required
add_to_cart / remove_from_cartadd_to_cart / remove_from_cartproducts[] required
add_to_wishlistwishlistproducts[] required
purchasepurchaseorder_id, total (number), products[], customer.email; all required
sign_up, loginidentifydistinct_id is the Signal anonymous ID, linked to customer.email
identifycustomer_patchcustomer.first_name, customer.last_name
newsletter_subscribed / newsletter_unsubscribedoptin / unsubscribeemail required

Product IDs must match your Bluecore product catalogue.

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