Engage Cloud Mode Integration

Send events to Engage using RudderStack cloud mode.

RudderStack lets you send your event data to Engage via cloud mode.

Find the open source transformer code for this destination in the GitHub repository.

Identify

You can use the identify call to create or update a user in Engage. To update a user’s email, you need to provide the Engage Private Key in the dashboard settings.

RudderStack uses the Create or update a User API to add a new user to your Engage account.

The following table lists the RudderStack attributes and their mappings with the Engage properties:

RudderStack propertyEngage propertyData type
externalId.engageId, userId, traits.userid, traits.id, context.traits.userId, context.traits.id
Required
uidAlphanumeric
traits.firstName, traits.firstname, traits.first_name, context.traits.firstName, context.traits.firstname, context.traits.first_namefirst_nameString
traits.lastName, traits.lastname, traits.last_name, context.traits.lastName, context.traits.lastname, context.traits.last_namelast_nameString
traits.email, context.traits.email, properties.emailemailString
traits.phone, context.traits.phone, properties.phonenumberNumber (In ^[0-9]{7,15}$ format)
Other user traitsmetaString/Integer/Boolean
timestamp, originalTimestampcreatedAtTimestamp (ISO 8601 format)
externalId.engageListId, config.listIdslistsArray of List ID
info
RudderStack uses externalId.engageListId or config.listIds as a fallback value in case userId, externalId.engageId, traits.userId, traits.id, or context.traits.id is absent in the event.

Deleting a user

You can delete a user in Engage using the Suppression with Delete regulation of the RudderStack User Suppression API.

info
To delete a user in Engage, you need to specify the Engage Private Key in the dashboard settings.

A sample regulation request body for deleting a user in Engage is shown below:

{
  "regulationType": "suppress_with_delete",
  "destinationIds": [
    "2FIKkByqn37FhzczP23eZmURciA"
  ],
  "users": [{
    "userId": "1hKOmRA4GRlm",
    "phone": "+1-202-555-0146",
    "email": "alex@example.com"
  }]
}

RudderStack deletes the user account in Engage using the Delete User API.

Track

The track call lets you capture user events along with the associated properties and send them to Engage.

RudderStack uses the Add User events API to send the user events to Engage.

A sample track call is shown below:

rudderanalytics.track(
  "Order Completed", {
    revenue: 30,
    currency: "USD",
    userId: "1hKOmRA4el9Z" 
  })

The following table lists the RudderStack attributes and their mappings with the Engage properties:

RudderStack propertyEngage propertyData type
externalId.engageId, userId, traits.userid, traits.id, context.traits.userId, context.traits.id
Required
uidAlphanumeric
event
Required
eventString
originalTimestamptimestampTimestamp (ISO 8601 format)
propertiespropertiesObject
warning
The event name must be less than 32 characters. Otherwise, Engage will reject the event.

Page

The page call lets you record your website’s page views with any additional relevant information about the viewed page.

RudderStack sends the page-related information to Engage using their Add User events API.

The following table lists the RudderStack event properties and their mappings with the Engage properties:

RudderStack propertyEngage propertyData type
externalId.engageId, userId, traits.userid, traits.id, context.traits.userId, context.traits.id
Required
uidAlphanumeric
Visited {Category} {Name} Page
Required
eventString
originalTimestamptimestampTimestamp (ISO 8601 format)
propertiespropertiesObject
warning
The event name must be less than 32 characters. Otherwise, Engage will reject the event.

Group

You can use the group call to link an identified user to a specific Engage list.

RudderStack subscribes the user to the Engage list using their Subscribe to a List API.

A sample group call is shown below:

rudderanalytics.group("group01", {
"userId": "1",
"name": "Capsule Corp.",
"subscriber_status": "false",
"operation": "add"
});

You can pass the following parameters in the group event along with the userId (if known):

RudderStack propertyEngage propertyData type
groupId
Required
idString
externalId.engageId, userIduidAlphanumeric
subscriber_status
(Default: true)
subscribedBoolean
traits.operation
(Acceptable values: add/remove)
-String

The following table lists the additional property mappings with the Engage properties:

RudderStack propertyEngage propertyData type
traits.email, context.traits.email, properties.email, context.externalId.0.id
Required, if phone is not present
emailString
traits.phone, context.traits.phone, properties.phone
Required, if email is not present
numberNumber (In ^[0-9]{7,15}$ format)
traits.firstName, traits.firstname, traits.first_name, context.traits.firstName, context.traits.firstname, context.traits.first_namefirst_nameString
traits.lastName, traits.lastname, traits.last_name, context.traits.lastName, context.traits.lastname, context.traits.last_namelast_nameString
Other user traitsmetaString / Integer / Boolean
timestamp, originalTimestampcreatedAtTimestamp (ISO 8601 format)

When sending group events to Engage, it is important to note the following:

  • To remove a user from a group ("operation": "remove"), you need to provide the userId or externalId in the event.
  • If the user’s ID is not known, then either email or phone is required for looking up the user in Engage.
  • If a user is found with an associated email or phone (in that priority), then Engage links the user to the provided Engage List ID. Otherwise, it creates a new user with the provided details and then links them to the List ID.

Questions? Contact us by email or on Slack