Emarsys Destination

This destination is currently in beta. If you are interested in joining, let us know!

Segment makes it easy to send your data to Emarsys (and lots of other destinations). Once you've tracked your data through our open source libraries we'll translate and route your data to Emarsys in the format they understand.

Getting started

Before you enable Emarsys in your destinations page, there are a few things in your Segment destination settings you must set up. Once the setup is complete, you will be able to use any Segment calls to add records to your Emarsys account or to trigger events in Emarsys.

Pre-requisite steps

  • Contact your Emarsys client success manager to enquire about the Segment.com add-on.
  • This is an additional feature in Emarsys and price for the add-on is dependent on the volume of calls you will make.
  • Once commercials are agreed. Emarsys support will provide an apiKey to enable the integration at segment.com.
  • Support will appoint an implementation manager to assist with setting up the initial segment.com processing rules in the Emarsys platform.

Once you have this enabled, you will be able to turn on the Segment Add On in the Emarsys UI

segment-add-on

Identify, Track, Screen, Page

Identify, Track, Screen and Page requests have identical behavior for the Emarsys destination.

Emarsys maintains an intermediate users table which stores 3 different identification properties:

  • anonymousId
  • userId
  • primarykey

While anonymousId and userId will be used from Segments standard properties you can define which property in the JSON from Segment has to be used as the primary key (e.g. traits-> email). Each incoming request will update this intermediate user’s table.

To view the contacts created via the Segment identify event in Emarsys, navigate to Contacts -> Segments -> Edit the “segment.com” Segment -> Click on “Save & Apply” and finally click on “Display contacts”.

You could also simply use the search functionality in the upper right corner of the Emarsys screen.

Data maps, rules and exit conditions

In the Segment.com add-on UI in Emarsys you have to set up data maps and rules before you can start sending traffic to Emarsys.

Rules

A rule is a sequence of incoming requests. For Example:

  1. Request 1 of type track with datamap1=X starts the rule
  2. Request 2 of type screen with datamap2=Z has to occur within 10 minutes
  3. There mustn’t be request 3 of type track with datamap3=A within these 10 minutes
  4. If the rule completed successfully an exit condition will be executed (see below for available exit conditions)

Data maps

Data maps are names for properties in incoming requests. For each data map you can assign an Emarsys field which will be updated as soon as the property is set in an incoming request. In that case, the property should be a String, otherwise it will be serialized to a JSON String before updating the field in Emarsys.

A data map is also required if you want to use a property from the incoming JSON in a condition for a rule.

At least one data map has to be defined as a primary key (e.g. traits.email). This value will be used for duplication handling when updating or creating new contacts in your Emarsys account.

Please note updating fields with frequent value changes in your Emarsys account will cause serious backlogs in high traffic environments.

Exit conditions

An exit condition is the last step in a rule if all conditions in that rule matched. In the segment.com add-on, you can choose what should happen after all conditions in a rule matched:

  • Trigger external event: an external event is usually connected to a transactional message (like SMS or email). If you set a data map as a variable in the underlying rule, this data will be passed with the external event and it can be used in the email. This data can be a string or an array.
  • Export to a CSV: Can configure to export every n hours and transfer the file to a remote sftp storage. If there are data maps as variables in the underlying rule, each declared data map will be added as a separate column. Non-string variables will be added as a serialized JSON in that column.
  • Export to Google Big Query: This is similar to the CSV export. Data will be exported to a table in Google Big Query every n hours.

FAQ

Timestamps

Emarsys is checking the timestamp (property timestamp and if not set, Emarsys will use sentAt) of each incoming request. If Emarsys has already processed a newer request for the anonymousId or userId they will ignore the request. This logic is necessary since the conditions in a rule are supposed to be processed in a sequential order.

Example Flow

In a rule you have to define what should happen after every condition in that rule matched. The last condition in a rule has to be of type “exit”.

Here are some example Data maps you can configure:

data-maps

From here, you could add a sample rule to get all users who entered a coupon but did not complete an order within 60 minutes:

rules

You would then have your logic trigger the Coupon Entered events.


Personas

You can send computed traits and audiences generated through Segment Personas to this destination as a user property. To learn more about Personas, reach out for a demo.

For user-property destinations, an identify call will be sent to the destination for each user being added and removed. The property name will be the snake_cased version of the audience name you provide with a true/false value. For example, when a user first completes an order in the last 30 days, we will send an identify call with the property order_completed_last_30days: true, and when this user no longer satisfies we will set that value to false.

When the audience is first created an identify call is sent for every user in the audience. Subsequent syncs will only send updates for those users which were added or removed since the last sync.

Settings

Segment lets you change these destination settings via your Segment dashboard without having to touch any code.

API Key

Please enter your API Key.


If you have any questions, or see anywhere we can improve our documentation, please let us know!