Emarsys
SAP Emarsys is an omnichannel customer engagement platform. Datafly Signal triggers an Emarsys External Event from a server-side event (Core API v3, POST /api/v3/event/{event_id}/trigger) to start an automation program, with the event’s properties as event data.
Why route Emarsys through Datafly Signal
- Events come from your server, not the browser. They reach Emarsys even when a tracker blocker or a failed page unload would have dropped a client-side call.
- Delivery is queued and retried. Signal buffers to Kafka and retries on 429 or a transient failure rather than dropping the event; a permanent rejection goes to the dead-letter queue with the vendor’s reason.
- One consent decision governs every destination. Emarsys is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
Get your Emarsys credentials
Create an OpenID Connect API credential
In Emarsys go to Management > Security Settings > API Credentials, create a credential with the OpenID Connect mechanism and the External Event > Trigger permission. Copy the Client ID and the secret (shown once).
Create the External Event
Under Management > Automation > External Events, create the event your program starts from and note its numeric ID.
Configuration
| Field | Required | Description |
|---|---|---|
client_id | Yes | The Client ID of an OpenID Connect (v3) API credential. Create it in Emarsys under Management > Security Settings > API Credentials, choosing OpenID Connect, with the External Event > Trigger permission. |
client_secret | Yes | The secret shown once when the OpenID Connect API credential is created. |
event_id | Yes | The numeric ID of the External Event to trigger (Management > Automation > External Events, or GET /api/v3/event). One integration triggers one External Event. |
Management UI setup
- Go to Integrations in the sidebar and open the Integration Library tab.
- Find Emarsys under Marketing Automation and click Install.
- Choose a preset, enter the fields above and click Install Integration.
Management API setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/emarsys/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Emarsys",
"variant": "default",
"config": {
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"event_id": "your_event_id"
},
"delivery_mode": "server_side"
}'What Signal sends
An example request, rendered from the ecommerce preset for purchase:
POST https://api.emarsys.net/api/v3/event/1234/trigger
{
"data": {
"coupon": "AUTUMN10",
"currency": "GBP",
"event_name": "purchase",
"order_id": "ORD-1001",
"shipping": 4.99,
"tax": 46.66,
"value": 279.98
},
"external_id": "neill@example.com",
"key_id": 3
}| Field | Source |
|---|---|
key_id | 3, the Email field. Change it in the blueprint if your contacts are keyed on another field, and map that field’s value to external_id. |
external_id | The contact’s email from identify() traits, trimmed and lower-cased. Required. |
data | The event’s properties (order id, value, currency upper-cased …) and event_name, for personalisation. |
Emarsys looks the contact up by the key field’s value and accepts no hashed identifier, so the email is sent in plain text. An event without an email is not sent.
Presets
| Preset | Signal event → vendor event |
|---|---|
| Retail | purchase, sign_up (disabled), refund (disabled), order_shipped (disabled) |
| Default | sign_up, newsletter_subscribed (disabled), generate_lead (disabled), purchase (disabled) |
Events not listed are not sent. Each preset is a starting point: add, rename or remove mappings on the installed integration.
Notes and limits
- One integration triggers one External Event. Each preset enables the one event that should start the program and lists alternatives disabled; to trigger several External Events, install the integration once per event.
- Emarsys documents the token request with the client credentials as HTTP Basic. Signal currently sends them in the form body; until that is supported (issue #1450) the token request may be refused. Treat this integration as not yet deliverable.
- SAP retires the legacy WSSE (username and secret) authentication at the end of 2026; this integration uses v3 OpenID Connect.
Consent
Marketing-automation integrations have no consent category by default. Assign the marketing category when you install Emarsys, so an event is delivered only when the visitor has granted it. Cookie-banner consent is not email or SMS opt-in: keep messaging opt-in in Emarsys.
Verify it’s working
- Open the integration in the Signal Management UI and watch Live Events while you trigger a mapped event.
- Confirm a 2xx response from Emarsys.
- Find the contact in Emarsys and check the event or record arrived.
Troubleshooting
| Symptom | Resolution |
|---|---|
oauth token error | Check the Client ID and secret, and see the note on #1450. |
403 | The credential lacks the External Event > Trigger permission. |
404 | The External Event ID does not exist. |