IntegrationsMarketing AutomationSelligent (Marigold Engage)

Selligent (Marigold Engage)

Datafly Signal delivers events to Selligent by Marigold (Marigold Engage) server-to-server using the Signals API. Each event becomes a signal in the Signals & Moments platform, where it can trigger Interactive Moments, journeys, and real-time personalisation — without a client-side tag.

Why route Selligent (Marigold Engage) through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Selligent (Marigold Engage) even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Presets for Default and Retail. The mapping starts from a working configuration for your vertical instead of a blank field map.
  • One consent decision governs every destination. Selligent (Marigold Engage) is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Before configuring Selligent in Signal, you need:

  • A Selligent by Marigold (Marigold Engage) account with Interactive Moments enabled.
  • A Signals API key and secret.
  • Your Selligent instance base URL (Selligent is multi-instance, so this is specific to your account).

Step 1: Find your instance base URL

Your Selligent instance runs on a geographic or per-customer host (for example https://customername.module.slgnt.eu). Find the exact base URL in your Selligent admin configuration. You will use it as the signals_host value (no trailing slash).

Step 2: Create an audience configuration and generate keys

  1. In an Interactive Moments account, create an audience configuration.
  2. A Signals API key and secret are generated automatically for that configuration.
  3. The key is disabled by default — click Enable so it can authenticate API calls.
⚠️

If the key is left disabled in the Selligent UI, every signal will be rejected with a 401/403. Enable it before testing.

Configure in Signal

Configuration Fields

FieldRequiredDescription
signals_hostYesYour Signals API host, for example https://customername.module.slgnt.eu. Marigold publishes no global host. No trailing slash.
api_keyYesThe Signals API key for your audience configuration.
api_secretYesThe Signals API secret. Sent with the key as X-Api-Key: key:secret.
siteYesThe site or domain the signals come from (for example www.example.com), sent as data.site. Every Signals event requires it.
id_typeNoLeave blank. Used only by blueprints before 0.5.0.

Management UI Setup

  1. Go to Integrations > Add Integration > Selligent (Marigold Engage).
  2. Choose a preset:
    • Default: product view, cart add, purchase, sign-in and sign-up signals.
    • Retail: the default signals plus category browse and cart remove.
  3. Enter signals_host, api_key, api_secret and site.
  4. Select consent categories.
  5. Click Save.

API Endpoints

The Signals API has one path per signal type (Signals API reference and OpenAPI file, “Signal API”):

Signal eventSignals path
view_itemPOST {signals_host}/api/signal/d/v1/product/browse
view_item_list (Retail)POST {signals_host}/api/signal/d/v1/category/browse
add_to_cartPOST {signals_host}/api/signal/d/v1/cart/add
remove_from_cart (Retail)POST {signals_host}/api/signal/d/v1/cart/remove
purchasePOST {signals_host}/api/signal/d/v1/cart/purchase
loginPOST {signals_host}/api/signal/d/v1/site/signin
sign_upPOST {signals_host}/api/signal/d/v1/lifecycle/signup

Every request carries X-Api-Key: {api_key}:{api_secret} and Content-Type: application/json. Page views are not sent: the Signals API has no page signal. Every other event is dropped.

The reference’s introduction documents the X-Api-Key header; its per-path operations also describe a JWT from /api/signal/d/v1/authenticate. Signal uses X-Api-Key. No live Signals account has confirmed it yet.

Identity Signals

Each signal identifies the profile inside data:

FieldSource
data.idTypeemail
data.emailThe email identify trait, trimmed and lower-cased. Required: events without an email are dropped.
data.customerIdThe user ID, when known.
data.profileAttributes.profileFirstName / profileLastNameThe first_name / last_name traits.
data.eventAttributes.userAgent / ipThe request’s user agent and IP.

The email is sent in clear: Marigold Engage keys the profile on it. Cookie consent is not forwarded as a marketing opt-in.

datafly.identify("user-123", { email: "jane.doe@example.com", first_name: "Jane" });

Event Mapping

Example: Purchase signal

Datafly.js call:

datafly.track("purchase", {
  transaction_id: "ORD-001",
  value: 129.99,
  currency: "usd",
  items: [
    { item_id: "SKU-A", item_name: "Widget", item_category: "Gadgets", price: 49.99, quantity: 2 },
    { item_id: "SKU-B", item_name: "Gizmo", price: 30.01, quantity: 1 }
  ]
});

Signal sent by Datafly (POST {signals_host}/api/signal/d/v1/cart/purchase):

{
  "specversion": "1.0",
  "type": "event.signal",
  "dataschema": "evt:signal/v1",
  "id": "3f1c2a90-7d4e-4b8a-9c61-2f0e5d7a1b22",
  "time": "2026-09-23T10:15:00.000Z",
  "name": "cart_purchase",
  "data": {
    "idType": "email",
    "email": "jane.doe@example.com",
    "customerId": "user-123",
    "site": "www.example.com",
    "cartId": "ORD-001",
    "transactionId": "ORD-001",
    "transactionSource": "web",
    "total": 129.99,
    "currency": "USD",
    "items": [
      { "sku": "SKU-A", "name": "Widget", "category": "Gadgets", "baseprice": 49.99, "quantity": 2 },
      { "sku": "SKU-B", "name": "Gizmo", "baseprice": 30.01, "quantity": 1 }
    ],
    "profileAttributes": { "profileFirstName": "Jane" }
  }
}

cartId is the site’s cart_id when sent, else the order ID; for cart signals it falls back to the anonymous ID. Browse signals carry sections (the item categories) and elements ({type: "product", id, name} per item), which the Signals schema requires. The root name is a legacy field kept for integrations installed before 0.5.0.

Testing Your Integration

Send a test signal

Trigger a tracked event on your site (or replay one from Signal’s event debugger) with a known email identity.

Confirm a 2xx response

The Signals API returns 200 on success. Use Signal’s event debugger to inspect the outbound payload and the response code.

Verify in Marigold Engage

In Signals & Moments, confirm the signal arrived for the audience configuration and that any Interactive Moment listening for it fired.

Troubleshooting

ProblemSolution
401 UnauthorizedThe API key is disabled in the Marigold UI, or the X-Api-Key value is not key:secret.
404 Not FoundWrong signals_host for your account.
400 Bad RequestA required signal field is missing (for example site, cartId, or items[].sku). Check the event carries items[] with item_id and quantity.
No signals at allEvents without an email trait are dropped; call datafly.identify() with an email first.