Web Interactions

You can integrate Symplify to track user behavior on your site. The collected information can be used in filters and segments to target the user's content. This is an important distinction from other monitoring tools that you could use: the goal here is not to collect general behavioral data for statistical analysis, but to collect detailed information for each individual user so that you can correctly target the user's content from this information.

The following will guide you through the steps necessary to start following the user's web interaction.

Generate a Web interaction token

A Web interaction token is required to identify your site when sending tracking data to Symplify. You can create a token on Settings (Integration) Web Interactions.

Add the script tag

The first step of integration on your site is to include the tracking script. The script must be included on every page where you want to collect tracking information.

You will need two configuration settings specific to your account: your Web interaction token and your Symplify server ID.

<script
  id="carma-tracking"
  type="text/javascript"
  data-server="[Your Symplify server id]"
  data-url="//jp52d3joej.execute-api.eu-west-1.amazonaws.com/prod/t"
  data-token="[Your token]"
  src="//d3mi6d1ao3fzsg.cloudfront.net/carma-scripts/tracking.min.js">
</script>

The script can be configured to generate debug information on the JavaScript console, which can be useful during the installation phase for troubleshooting:

<script
  id="carma-tracking"
  type="text/javascript"
  data-server="[Your Symplify server id]"
  data-url="//jp52d3joej.execute-api.eu-west-1.amazonaws.com/prod/t"
  data-token="[Your token]"
  data-debug="true"
  src="//d3mi6d1ao3fzsg.cloudfront.net/tracking.min.js">
</script>

Identify the user

Before tracking information can be recorded, the user must be identified. The value passed to identify() must match the OriginalID used to identify the contact in Symplify.

For most setups, identification happens automatically. When a contact clicks a link in a Symplify email, the tracking parameters in that link are picked up by the script and the contact is identified without any extra code on your side. You only need to call identify() explicitly for visitors who arrive on your site without clicking through from a Symplify mailing — for example, users who navigate directly or arrive from a third-party channel.

carma.tracking.identify("some.user@example.com");

 

The visitor is identified using carma.tracking.identify(). In most production setups this happens automatically via email link tracking parameters — the explicit call is only needed for visitors arriving outside of a Symplify mailing.

Behavior monitoring

You are now ready to follow user behavior. The information is tracked action by action. Each follow-up event has an action and (optionally) additional information about the event.

carma.tracking.track("browsed-category", {
  category: "clothing"
});

carma.tracking.track("visited-page", {
  page: "index.html"
});

The event will be automatically timestamped, which will allow you to target content based on when actions have taken place — for example, "Target users who have viewed the clothing category in the last two weeks."

You can also follow an action without providing details about the event:

carma.tracking.track("visited-page");

Choosing what to track

You can track all the data you want, but the data you collect should be useful for targeting the user's content. This means it will never be a good idea to collect unique information per user or per session — such data cannot be used for segmentation and will produce no targeting value.

Example: browsing a hotel or package page

Consider a travel site where page URLs look like this:

/en/packages/weekdayspa
/en/hotels/grand-city-hotel
/en/hotels/grand-city-hotel?rooms[0][adults]=2&arrival_date=2026-05-10&departure_date=2026-05-11

The following would not be an appropriate tracking call — the query string makes every event unique:

// Don't do this
carma.tracking.track("visited-page", {
  page: window.location.href
});
// Stores: /en/hotels/grand-city-hotel?rooms[0][adults]=2&arrival_date=2026-05-10...

Stripping the query parameters is better, but still difficult to segment on meaningfully:

// Better, but not ideal
carma.tracking.track("visited-page", {
  page: window.location.pathname
});
// Stores: /en/hotels/grand-city-hotel

The recommended approach is to extract only the attributes that matter for targeting and use a descriptive action name:

// Recommended
carma.tracking.track("browsed-hotel", {
  category: "hotels",
  hotel: "grand-city-hotel"
});

carma.tracking.track("browsed-package", {
  category: "packages",
  package: "weekdayspa"
});

In the example below, the visitor navigated to Hotels and clicked Grand City Hotel. The tracking log shows the two calls that fired — first visited-page when the hotel listing loaded, then browsed-hotel with the clean category and hotel attributes when the detail page opened.

 

browsed-hotel fires with category: "hotels" and hotel: "grand-city-hotel" — no dates, room configuration, or session data included.

The same pattern applies to packages. Here the visitor navigated to Packages and clicked Weekday Spa:

browsed-package fires with category: "packages" and package: "weekdayspa".

This allows you to build segments like "browsed hotels in the last 30 days" or "viewed spa packages" — which would be impossible to create reliably with raw URL data.

The same principle applies to e-commerce. The following would not be an appropriate follow-up call:

carma.tracking.track("purchased-item", {
  sku: "abc123",
  category: "clothing",
  orderId: "someUniqueOrderId"
});

Since orderId will be unique for each individual call, it will never be useful for targeting the user's content and must be excluded from the call:

carma.tracking.track("purchased-item", {
  sku: "abc123",
  category: "clothing"
});

How the data appears in Symplify

Once events start arriving, Symplify registers each unique action and its attributes automatically. You can review them under Settings Web Interactions Actions.

Three actions are registered: visited-page, browsed-hotel, and browsed-package — each with their respective attribute keys.

You can now use these actions directly in the segment builder. In the example below, a segment is configured to match contacts who have performed the browsed-hotel action with the attribute hotel is grand-city-hotel at least once.

The segment builder using a Web interaction condition. Action, attribute, operator, value, frequency, and timeframe can all be configured.

Running a test on the segment confirms that the contact who browsed the hotel page is matched:

1 contact processed, 1 matched — the tracking data flows end to end from the site into a usable segment.

Note: Symplify does not technically restrict what data can be sent, but data that is unique per user or session cannot be used for segmentation. Symplify reserves the right to remove tracking data that is too granular to be actionable.

Was this article helpful?
0 out of 0 found this helpful