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.

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 Selligent instance base URL, e.g. https://customername.module.slgnt.eu. 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.
id_typeNoHow the profile is resolved: email (default) or external (your own customer id).

Management UI Setup

  1. Go to Integrations > Add Integration > Selligent (Marigold Engage).
  2. Choose a variant:
    • Default — lifecycle and engagement signals (page, sign-up, login, product view, cart, purchase).
    • Retail — full e-commerce funnel (product views, cart add/remove, checkout, purchase).
  3. Enter your signals_host, api_key, and api_secret.
  4. (Optional) Set id_type to external if you identify profiles by your own customer id instead of email.
  5. Select consent categories (typically marketing).
  6. Click Save.

API Endpoint

POST https://{signals_host}/signals/v1/signals
X-Api-Key: {api_key}:{api_secret}
Content-Type: application/json

Each request delivers a single signal as a JSON object.

Identity Signals

Selligent matches each signal to a profile using the idType and value fields:

FieldDescription
idTypeHow the profile is resolved. email (default) matches on email address; external matches on your own customer identifier.
valueThe identifier matching idType. For email, Signal uses the email from datafly.identify(); for external, the user id.

Signal also forwards supporting attributes inside the signal data object — external_id (your user id), anonymous_id (Signal’s stable pseudonymous id), and marketing_consent.

How to identify a profile

Call datafly.identify() when a user logs in, registers, or submits a form so the signal can be matched to a contact:

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

The Signals API needs a resolvable profile identifier (value). If no email (or external id) is available, the signal cannot be matched to a contact and is rejected — make sure identity is set before key conversion events.

Event Mapping

Default preset

Signal eventSelligent signal name
pagepage_view
Signed Upsign_up
Logged Inlogin
Product Viewedproduct_viewed
Product Addedadd_to_cart
Order Completedpurchase

A Retail preset adds cart removal and checkout signals. To customise, edit the integration’s Field Mappings in the Management UI.

Example: Purchase signal

Datafly.js call:

datafly.identify("user-123", { email: "jane.doe@example.com" });
 
datafly.track("Order Completed", {
  order_id: "ORD-001",
  revenue: 129.99,
  currency: "USD",
  products: [
    { product_id: "SKU-A", name: "Widget", price: 49.99, quantity: 2 },
    { product_id: "SKU-B", name: "Gadget", price: 30.01, quantity: 1 }
  ]
});

Signal sent by Datafly:

{
  "name": "purchase",
  "idType": "email",
  "value": "jane.doe@example.com",
  "data": {
    "email": "jane.doe@example.com",
    "external_id": "user-123",
    "anonymous_id": "a1b2c3d4e5f6",
    "marketing_consent": "true",
    "order_id": "ORD-001",
    "value": 129.99,
    "currency": "USD",
    "products": [
      { "product_id": "SKU-A", "name": "Widget", "price": 49.99, "quantity": 2 },
      { "product_id": "SKU-B", "name": "Gadget", "price": 30.01, "quantity": 1 }
    ]
  }
}

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 a 2xx status on success. Use Signal’s event debugger to inspect the outbound payload and the Selligent response code.

Verify in Selligent

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

Troubleshooting

ProblemSolution
401 / 403 UnauthorizedThe API key is disabled in the Selligent UI, or the X-Api-Key value is not in the form key:secret. Enable the key and re-check the key/secret.
404 Not FoundWrong signals_host for your instance, or the Signals path is incorrect. Confirm the base URL from your Selligent admin configuration.
400 Bad RequestThe signal is missing name or value, or idType is unknown. Ensure identity is set via datafly.identify() and the event is mapped.
Signal arrives but no Moment firesThe signal name does not match a configured Interactive Moment trigger. Align the vendor_event_name in the blueprint with the signal name Selligent expects.
Profile not matchedThe value does not correspond to a known contact for the chosen idType. Verify the email/external id exists in Selligent.

Notes

  • Selligent is multi-instance; there is no single global host. The base URL must be set per integration from your account’s admin configuration.
  • Today the Signals API supports email and external profile identification, with phone, deviceId, appId, and marketing identification documented as becoming available — set id_type accordingly once available.