RudderStack lets you send your event data to Engage via the 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_name
(Optional)
first_nameString
traits.lastName, traits.lastname, traits.last_name, context.traits.lastName, context.traits.lastname, context.traits.last_name
(Optional)
last_nameString
traits.email, context.traits.email, properties.email
(Optional)
emailString
traits.phone, context.traits.phone, properties.phone
(Optional)
numberNumber (In ^[0-9]{7,15}$ format)
Other user traits
(Optional)
metaString/Integer/Boolean
originalTimestamp
(Optional)
createdAtTimestamp (ISO 8601 format)
externalId.engageListId, config.listIds
(Optional)
listsArray of List ID
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 Data Regulation API.

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
originalTimestamp
(Optional)
timestampTimestamp (ISO 8601 format)
properties
(Optional)
propertiesObject
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
originalTimestamp
(Optional)
timestampTimestamp (ISO 8601 format)
properties
(Optional)
propertiesObject
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, userId
(Optional)
uidAlphanumeric
subscriber_status
(Optional)
(Default: true)
subscribedBoolean
traits.operation
(Optional)
(Acceptable values: add/remove)
-String

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

RudderStack propertyEngage propertyData type
traits.firstName, traits.firstname, traits.first_name, context.traits.firstName, context.traits.firstname, context.traits.first_name
(Optional)
first_nameString
traits.lastName, traits.lastname, traits.last_name, context.traits.lastName, context.traits.lastname, context.traits.last_name
(Optional)
last_nameString
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)
Other user traits
(Optional)
metaString / Integer / Boolean
originalTimestamp
(Optional)
createdAtTimestamp (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.

Contact us

For more information on the topics covered on this page, email us or start a conversation in our Slack community.

On this page