Mapp Engage

Prev Next

Mapp Engage can be connected to your tracking setup to send user-specific data in real time.

This enables you to enrich customer profiles with behavioral or preference-based information and to trigger automated actions directly in Engage.

Typical use cases include:

  • Sending dynamic user attributes to Mapp Engage – for example, preferences or behaviors such as “Size Finder used” – to improve segmentation and targeting.

  • Triggering a Custom Web Event when a user interacts with a specific feature (e.g., a virtual fitting room), which can start an automation workflow in Engage.

Note

To use this functionality, User Matching with Mapp Engage must be enabled.

Details on setup and supported methods can be found in the Engage User Matching section below.


Method

Description

Data Type

constructor

Initializes the Engage data object.

–

setAttributes

Sends user-specific data to Mapp Engage, which can be stored as Custom Profile Attributes. These attributes can be created and managed directly in Engage.

{[key: string]: string}

addAttributes

Adds additional user attributes to be transmitted to Mapp Engage. Works like setAttributes, but allows appending values to an existing set.

{[key: string]: string}

setEventName

Defines the name of the Engage Custom Web Event (e.g. “Size Finder Used”). This event can trigger automations in the Engage Whiteboard.

string

setEventId

Alternative to eventName. Refers to the numeric Engage Custom Web Event ID as defined in Engage. Typically used in advanced setups.

number

Generated request parameters

Method

Request parameter

Constant

setAttributes / addAttributes

eaj (all attributes as one JSON object)

ENGAGE_ATTRIBUTES

setEventName

ecwen

ENGAGE_EVENT_NAME

setEventId

ecwei

ENGAGE_EVENT_ID

Note

In Java, setAttributes and addAttributes take a Map<String, Object>. Every non-null value type is accepted (String, Integer, Long, Double, Boolean, BigDecimal, ...). The value is converted with String.valueOf() and sent as a JSON string, e.g. true becomes "true". Keys and values are JSON-escaped, so values such as Size "M" are transmitted correctly.

setAttributes replaces all attributes set before, addAttributes adds to them (an existing key is overwritten). Attributes with a null key or value, empty strings and non-finite numbers (NaN, Infinity) are not transmitted. setAttributes(null) removes all attributes set before, addAttributes(null) does nothing.

construct

MappIntelligenceEngage engageData = new MappIntelligenceEngage();

setAttributes

/**
 * @param a Sends user-specific data to Mapp Engage, which can be stored as Custom Profile Attributes.
 *          These attributes can be created and managed in Engage.
 *
 * @return MappIntelligenceEngage
 */
engageData.setAttributes(Map<String, Object> a);

addAttributes

/**
 * @param a Sends user-specific data to Mapp Engage, which can be stored as Custom Profile Attributes.
 *          These attributes can be created and managed in Engage.
 *
 * @return MappIntelligenceEngage
 */
engageData.addAttributes(Map<String, Object> a);

setEventName

/**
 * @param e Defines the name of the Engage Custom Web Event (e.g. "Size Finder Used"). This can trigger
 *          automations in the Whiteboard.
 *
 * @return MappIntelligenceEngage
 */
engageData.setEventName(String e);

setEventId

/**
 * @param e Alternative to eventName. Refers to the Engage Custom Web Event ID as defined in Engage. Mostly
 *          used for advanced setups.
 *
 * @return MappIntelligenceEngage
 */
engageData.setEventId(int e);
MappIntelligenceConfig mic = new MappIntelligenceConfig(
    "111111111111111",
    "analytics01.wt-eu02.net"
);
Map<String, Object> attrs = new HashMap<>();
attrs.put("engage.attribute.fittingToolUsed", true);
attrs.put("engage.attribute.fittingRoomVisits", 3);

MappIntelligenceEngage mappEngageData = new MappIntelligenceEngage();
mappEngageData.setAttributes(attrs)
    .setEventName("Virtual Fitting Room Used")
    .setEventId(12345);

try (MappIntelligenceTracking mit = new MappIntelligenceTracking(mic)) {
    // eaj={"engage.attribute.fittingToolUsed":"true","engage.attribute.fittingRoomVisits":"3"} (order of the keys may vary)
    mit.track((new MappIntelligenceDataMap()).engage(mappEngageData));
}


User Matching

This feature extends the Mapp Engage integration by enabling direct user matching between Mapp Intelligence and Engage.

It allows you to identify or register users in Engage by transmitting their email address and related contact attributes.

Use this functionality only if the Mapp Engage integration is enabled — it cannot be used standalone.

Typical use cases include:

  • Registering new contacts in Engage when users sign up or subscribe on your website.

  • Updating existing Engage contacts with information such as name, gender, or opt-in status.

  • Associating website activity in Intelligence with known Engage users for automation and segmentation.


Method

Description

Where to analyze

constructor

Initializes a new registration object for user matching with Engage.

–

setEmail

Email address used to identify the user in Mapp Engage.

Mapp Engage

setGroupId

Provides the group ID for a new registration in Engage.

Mapp Engage

setMode

Defines the registration type used in Engage. Determines how new contacts are added to a group:

  • c = Confirmed Opt-in – new contacts are added directly and receive a confirmation message.

  • d = Double Opt-in – new contacts receive an invitation email and must confirm their subscription before being added.

  • o = Opt-in (default) – new contacts are added to the group without notification.

Mapp Engage

setFirstName

First name of the contact in Engage.

Mapp Engage

setLastName

Last name of the contact in Engage.

Mapp Engage

setGender

Gender of the contact (u: undisclosed, f: female, m: male).

Mapp Engage

setTitle

Contact’s title (e.g., Mr., Ms.).

Mapp Engage

setIsoCode

Country of the contact as a two-letter ISO 3166-1 country code (e.g. DE).

Mapp Engage

setIsoLanguage

Language of the contact as a two-letter ISO 639-1 language code (e.g. de).

Mapp Engage

setTimezone

Time zone of the contact as an IANA time zone name (e.g. Europe/Berlin).

Mapp Engage

setOptIn

Indicates whether the user has given consent (true: consent, false: no consent). Only when set to true will data be sent to Engage.

Mapp Engage

Generated request parameters

Method

Request parameter

Constant

setEmail

er1

REGISTRATION_EMAIL

setGroupId

er2

REGISTRATION_GROUP_ID

setMode

er3

REGISTRATION_MODE

setFirstName

er4

REGISTRATION_FIRST_NAME

setLastName

er5

REGISTRATION_LAST_NAME

setGender

er6

REGISTRATION_GENDER

setTitle

er7

REGISTRATION_TITLE

setIsoCode

er8

REGISTRATION_ISO_CODE

setIsoLanguage

er9

REGISTRATION_ISO_LANGUAGE

setTimezone

er10

REGISTRATION_TIMEZONE

setOptIn

None. Without setOptIn(true), none of the er parameters is sent.

–

construct

MappIntelligenceRegistration registrationData = new MappIntelligenceRegistration();

setEmail

/**
 * @param e The Email address used to identify the user in Mapp Engage.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setEmail(String e);

setGroupId

/**
 * @param g Provide the group ID in case of a new registration for the user in Mapp Engage.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setGroupId(String g);

setMode

/**
 * @param m Provide the registration method used to register for marketing activities.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setMode(String m);

setFirstName

/**
 * @param f First name of the user to be used in Mapp Engage.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setFirstName(String f);

setLastName

/**
 * @param l Last name of the user to be used in Mapp Engage.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setLastName(String l);

setGender

/**
 * @param g Gender of the user.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setGender(String g);

setTitle

/**
 * @param t The title of the user to be used in Mapp Engage.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setTitle(String t);

setIsoCode

/**
 * @param i Country of the user as two-letter ISO 3166-1 country code, e.g. "DE".
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setIsoCode(String i);

setIsoLanguage

/**
 * @param i Language of the user as two-letter ISO 639-1 language code, e.g. "de".
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setIsoLanguage(String i);

setTimezone

/**
 * @param t Time zone of the user as IANA time zone name, e.g. "Europe/Berlin".
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setTimezone(String t);

setOptIn

/**
 * @param o Provide information that the user consented to use their data.
 *
 * @return MappIntelligenceRegistration
 */
registrationData.setOptIn(boolean o);
MappIntelligenceConfig mic = new MappIntelligenceConfig(
    "111111111111111",
    "analytics01.wt-eu02.net"
);

MappIntelligenceRegistration registrationData = new MappIntelligenceRegistration();
registrationData.setEmail("john@doe.com")
    .setGroupId("abc123")
    .setMode("c")
    .setFirstName("John")
    .setLastName("Doe")
    .setGender("m")
    .setTitle("Professor")
    .setIsoCode("DE")
    .setIsoLanguage("de")
    .setTimezone("Europe/Berlin")
    .setOptIn(true);

try (MappIntelligenceTracking mit = new MappIntelligenceTracking(mic)) {
    mit.track((new MappIntelligenceDataMap()).registration(registrationData));
}