System Events

System events are a group of events available to all Exponea customers by default without the need for a specifically-tailored integration. As opposed to custom events, system events should be the same for all Exponea users. In this article, we will list and explain the attributes of these events.

first_session, session_start, session_end

event name

description

session_start

happens when the customer visits your website

first_session

is derived from the session_start event. It happens when the customer visits your website for the very first time

session_ping

is an auxiliary event that will help you track other events. It is generated on every page_visit and then every 2 minutes while the page is still open in the browser.

session_end

is generated 20 minutes after the last session_ping with a timestamp of the last session_ping + 30 seconds.

🚧

Sleepwalking case

A session_start and session_end (but not page_visit) can occasionally be tracked without customer's actual activity. This can happen when the customer's device is only hybernated and their browser gets active and generates a session_ping without any page_visit.

The duration of the session will be the difference between the timestamps of session_start and session_end in seconds. The timestamp of the session_end will have a timestamp within 2 minutes after the customer closed the last page (the 20-minute timeout is ignored for the purpose of calculating the session duration).

In other words, the timeout ensures that if someone closes the page but returns within 20 minutes, this will still be counted as a single session. However, if they don't return, those 20 minutes will not be counted into the session duration.

Attribute

Description

Example

city

Name of the city from which the user is visiting your website.

Little Rock

state

Name of the state/region from which the user is visiting your website.

Arkansas

country

Name of the country from which the user is visiting your website.

United States

latitude

Latitude from which the user is visiting your website.

80.5293

longitude

Longitude from which the user is visiting your website.

40.5293

source

Name of the platform from which the user visited your website. It is determined based on session_ping event URL by comparison with the list of knows referrers. This is done via async-api-worker by a referrer-parser.

Facebook

referrer

Url of the platform from which the user visited your website.

http://m.facebook.com/

campaign_id

Automatically-generated ID of the campaign that brought the customer on your website. More about UTM parameters

utm_campaign

UTM code of the campaign that brought the customer on your website. By default, this will be equal to the name of the email node / web push node within the scenario.
More about UTM parameters

autumn_campaign

utm_source

UTM code of the platform from which the user visited your website. More about UTM parameters

facebook_ads

utm_medium

UTM code of the campaign method used to bring the customer on your website. More about UTM parameters

email / push_notification

utm_content

UTM code of the content that brought the customer on your website. More about UTM parameters

banner / logolink / product-feed

utm_term

UTM code based on terms defining the product. Present if the campaign redirected the customer on a particular product page. More about UTM parameters

subject-STREETWEAR-category-Clothing-T-shirts-Everyday-With + sleeve-brand-Nike + men

gclid

Google Click Identifier is a code added by Google to the website's url when the customer visits your site through a Google Ad campaign.

EAwaSSdkbEAQ112

ip

IP address of the user who visited your website.

129.233.109.145

device

Mobile device from which the user visited your website. If the visit was not through a mobile device then it is marked as "other".

Iphone

os

Operating system of the device through which the user visited your website.

Android

browser

Browser through which the user visited your website.

Chrome

location

URL of the page where the user's session started.

http://eshop.exponea.com/chaz-kangeroo-hoodie.html

path

Location URL without the domain and parameters

chaz-kangeroo-hoodie.html

duration (only for session_end)

The amount of time the user spent on the website during this session measured in seconds .

2415.980319

📘

Using Google Analytics ID for first session

If you have just started using Exponea and you had tracked your customers using GA before, you can use the GA ID to immediately distinguish between old and new customers also in Exponea. You can get the GA ID from the GA tracker. GA ID is written in the form 1.2.286403989.1366364567 and it's last part (behind the last dot) is the timestamp of the first session. In Exponea, you can extract it from Google Analytics ID using an expression and store it as a customer attribute.

🚧

Customer's location inaccuracies

As all the attributes that localize the customers are based on their IP, they depend on the quality of the IP infrastructure. The country and city attributes are generally very reliable, however, the latitude and longitude are often not (as they are a more precise measure of the customer's location).

session_start custom attributes

session_start is often complemented with these manually-added custom attributes.

Attribute

Description

Example

page_load_ms

Number of milliseconds it took to load the page. Read on how to add the attribute to event in the Web tracking article.

632

screen_height

Height of the screen the customer used to visit your webpage.

900

screen_width

Width of the screen the customer used to visit your webpage.

1440

screen_resolution

Resolution of the screen the customer used to visit your webpage.

1440x900

version

Version of a browser the customer used to visit your webpage.

Chrome 75

page_visit

page_visit happens each time the customer opens one of the pages of your website

Attribute

Description

Example

device

Mobile device from which the user visited the page. If the visit was not through a mobile device then it is marked as "other".

Iphone

referrer

Url of the platform from which the user visited the page.

http://m.facebook.com/

os

Operating system of the device through which the user visited the page.

Android

location

URL of the page that the user visited.

http://eshop.exponea.com/chaz-kangeroo-hoodie.html

browser

Browser through which the user visited the page.

Chrome

🚧

Issues with the tracking

If you are using our CDN page outside of your own domain for giving out surveys/getting consent, no page_visit or session_start events will be generated.

campaign

The campaign event is generated when working with emails, text messages, push notifications, or webhooks.

Attribute

Description

Example

Tracked on

status

Status of the user's interaction with the campaign mainly based on the SMTP code.

sent / delivered / clicked ...

Email, Transactional email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification. See below for details.

campaign_name

Name you gave to the campaign.

September newsletter

Email, Transactional email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

campaign_id

Automatically-generated ID of the campaign.

5c584sa5729971a4f992sj9

Email, Transactional email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

action_type

Type of action node or communication channel used for the campaign.

email / sms / webhook / ads / browser notification / mobile notification / transactional_email / split / facebook message

Email, Transactional email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

action_name

Name you gave to the specific action within the campaign scenario. In case of emailing through Email campaigns and not scenarios, action_name is the same as campaign_name.

Shoes email

Email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

action_id

Unique ID number of the action. The number rises proportionally with the order in which you created the action in the scenarios. The action_id of the first action is 1, for the second action it is 2 etc.

12

Email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

integration_id

Unique ID of the used integration to send the campaign e.g. email provider.

5bdc56b593bfb20013ea6af3

Email, Transactional email, SMS, Ads

integration_name

The name of the used integration

/

Email, Transactional email, Ads

integration_type

The type of the Ads integration

Adform, ...

Ads

campaign_policy

Name of the policy used in the campaign shown to the particular user. More on policy

default

Email, SMS, Webhook, Browser Push Notification, Mobile Push Notification

consent_category

Name of the consent category used with the campaign, or simply General Consent

General Consent

Email, Transactional email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification

subject

Custom-given subject of the e-mail sent in the campaign.

Autumn Collection

Email, Transactional email, Browser Push Notification, Mobile Push Notification

language

Language used in the campaign shown to the particular user.

sk

Email, Transactional email, SMS, Browser Push Notification, Mobile Push Notification

recipient

The user's email address where the campaign email was delivered.

[email protected]

Email, Transactional email, SMS, Mobile Push Notification

sent_timestamp

The timestamp of when the message was sent (sent from Exponea)

/

Email, Transactional email, Browser Push Notification, Mobile Push Notification

message

/

/

Email, SMS, Webhook, Ads, Mobile Push Notification

message_id

/

/

Email

comment

/

/

Email, SMS

error

/

/

Email, SMS

code

The SMTP code received from a server after you sent out an email.

422

Email. See below for details.

cumulative

Whether the cumulative bounce logic should be applied.

true/false

Email

ip

IP address of the user targeted by the campaign.

129.233.109.145

Email

user-agent

Name of the email client from which the campaign link was clicked from.

Mozilla

Email

url

URL campaign link that was clicked on by the user.

/

Email

city

/

Kosice

Email

country

/

Slovakia

Email

latitude

/

48.7164

Email

longitude

/

21.2611

Email

sending_ip

/

/

Email

state

/

/

Email

type

/

/

Email

xpath

/

/

Email

template_id

The unique system ID of the template used, if a template has been used instead of raw HTML.

/

Transactional email

template_name

The name of the template used, if a template has been used instead of raw HTML.

/

Transactional email

audience_id

ID of the ads audience

/

Ads

operation

Type of the audience operation - add or remove from audience

add_customers / remove_customers

Ads

number_of_message_parts

/

/

SMS (Only Sinch)

sender

/

/

SMS

status_code

Response status code

/

SMS, Webhooks

preset_channel

Type of the webhook preset

whatsapp

Webhooks

platform

Type of the push platform

browser / ios / android

Browser Push Notification, Mobile Push Notification

Values of the status attribute

Status

Explanation

enqueued

Exponea enqueued the email to the email provider

enqueue_failed

Exponea could not enqueue the email

suppressed

Send suppressed by Exponea; by either frequency or consent policy, or by suppression lists.

delivered

Email provider confirmed delivery

opened

The email was opened = pixel in the email was loaded.
Note that some services block these pixels, which may result in customers who only have the clicked event tracked, without opened

clicked

The customer clicked on a link inside the email. This also includes clicking on the unsubscribe link.

soft_bounced, dropped

The email provider notified Exponea that the email was bounced with a temporary error. Further emails will be tried to be delivered. This error may happen for example due to a full inbox.

hard_bounced, bounced

Email provider notified Exponea that the email was bounced with a permanent error. This may happen for example due to the email adress being a non-existent one.

preblocked

The mail service provider had put the domain on the suppression list and so emails from the domain will not be delivered to the customer.

complained

Email provider notified Exponea that the customer marked the email as "Spam"

unsubscribed

Customer unsubscribed from email inbox using the List unsubscribe feature.

sent

The message was submitted to the network for delivery.

failed

Communication error between Exponea and the email provider

closed

incoming_message

Text of an SMS reply from the campaign recipient upon activating two-way messaging.

rejected

The provider notified Exponea that the message was rejected for delivery.

success

The customer was successfully added to ads audience

Which status attributes are generated by what channel

Status

Email

SMS (CM Telecom)

SMS (Sinch)

Webhooks

Ads

Browser Push

Mobile Push

enqueued

Yes

/

Yes

/

/

/

/

enqueue_failed

Yes

/

Yes

/

/

/

/

suppressed

Yes

/

/

/

/

/

/

delivered

Yes

/

Yes

/

/

Yes

Yes

opened

Yes

/

/

/

/

/

/

clicked

Yes

/

/

/

/

Yes

Yes

soft_bounced

Yes

/

/

/

/

/

/

hard_bounced

Yes

/

/

/

/

/

/

preblocked

Yes

/

/

/

/

/

/

complained

Yes

/

/

/

/

/

/

unsubscribed

Yes

/

/

/

/

/

/

sent

/

Yes

/

Yes

/

Yes

Yes

failed

/

Yes

Yes

Yes

Yes

Yes

Yes

closed

/

/

/

/

/

Yes

/

incoming_message

/

/

Yes

/

/

/

/

rejected

/

/

Yes

/

/

/

/

success

/

/

/

/

Yes

/

/

Values of the code attribute

Code attribute gives you the SMTP error or reply code received from a server after you send out a campaign email. The status attribute is based on these codes, however, it is useful to also know the code itself as it is more precise in assessing what happened to the email. The following link contains a list of codes and their corresponding meanings. For these to work correctly, you need to have a Mailgun integration. Even though SMTP codes are reliable for most customers, beware that small email providers often send alternative SMTP codes that will not be recognized.

📘

Tracking clicked event

Links to your webpage sent out in a campaign firstly lead to our CDN domain so that the clicked event is tracked. After that, the customer is immediately redirected from the CDN domain to your webpage.

🚧

Issues with the opened event

Opened event tracked for Gmail does not guarantee that the recipient had indeed opened your email. Gmail's servers sometimes download external images from emails into their cache in advance. As we use these images to track whether the customers opened the email, we get a fake open event every time Gmail's servers do this. Moreover, email providers sometimes block the loading of the images we use for the tracking of the opened event so even if your email seems to be just delivered it might, in fact, be opened.

Bounce management

When an email does not get delivered, there might be multiple reasons why it happened. We collect the failure feedback from our email providers and automatically assign them to standard bounce categories such as soft bounce (e.g. full inbox) or hard bounces (e.g. invalid email). Exponea also works with our custom type of bounce, what we call a “cumulative bounce”! Read all the details in our article for Bounce Management.

Status name change and filters migration

In 1.173 we unified the statuses of email campaign events from email providers and renamed them to meet the industry standards and improve user experience.

In the following table you can find the naming changes:

Previous status name

New status name

dropped

soft_bounced

soft bounced

soft_bounced

bounced

hard_bounced

rejected

preblocked

Along with renaming, an automatic migration was carried out, in order to update event filters as defined below. The new naming along with the original one was used in the migration to ensure backwards compatibility. So don't worry, you probably don't have to update your analytics and campaigns manually, but keep an eye on your business critical use cases after the change to make sure everything works as expected.

The following change was done in all filters that use the renamed statuses:

  • Operators equals have been changed to in and does not equal to not in and extended with new statuses.
  • Operators in and not in have been extended with new statuses.

🚧

Rest of the string filters contains, does not contain, starts with, ends with and matches regex were not changed as they are unlikely to be used for this purpose. Manual change is needed in case you want to use those filters in combination with the renamed statuses.

For any other custom usage such as jinja or webhooks a manual change is needed as well.

Example:
equals dropped ->in [dropped, soft_bounced]

in [dropped, x, y] -> in [dropped, soft_bounced, x, y]

Automatic bot detection in emails

Some portion of opens/clicks that you might track in your email campaigns can be generated by automated bots that are scanning content and links of the email to identify spam and phishing emails. To tackle this problem we have developed Automatic bot detection that automatically identifies such bots.

We use the honeypot link solution. It is based on adding an invisible link that real humans can’t click but bots do. Every tracked click on the honeypot link is identified with a status containing a special value clicked_honeypot. This feature does not suppress any events but rather provides the necessary data to let your analytics sort it out.

It is important to state that it won’t identify 100% of bots as this is technically not possible. There is no universal solution and bots are constantly changing and trying to identify themselves as real humans - to prevent being identified by spam creators.

This feature can be turned on/off in project settings under Campaigns -> Channels -> Email -> Automatic bot detection. After turning on, it automatically starts identifying bots with specific status.

survey

survey happens when the customer is shown a survey question you had created. More on surveys

Attribute

Description

Example

question

Question given in the survey.

How likely are you to recommend Exponea to your friends?

answer

Answer given by the user in the survey. (has value only if the customer answers the question)

Very likely.

interaction

Information on whether the user filled and sent the survey.

true

survey name

Name you gave to the survey.

Satisfaction survey

survey_id

Randomly generated ID of the survey,

5c584sa5729971a4f992sj9

question_index

Order of the question in which it appears in the survey.

2.00 (second question of the survey)

merge

merge when two customer profiles are merged into one

Attribute

Description

Example

source_internal_ids

Two IDs that merged together.

5c584sa5729971a4f992sj9, 5c584sa5729971a4f992sj9

destination_internal_id

The ID resulting from the merger (the older one from the two original ones).

5c584sa5729971a4f992sj9

original_external_ids

Two IDs for external platforms that merged together.

{"cookie":[google_analytics
["[email protected]"],}{id:2};
{"cookie[google_analytics
["[email protected]"],}{id:3}

final_external_ids

The ID for external platforms resulting from the merger (the older one from the two original ones).

{"cookie":[google_analytics
["[email protected]"]{id:2},}

ab test

ab test happens when the customer sees one of the variants of a page/banner/recommendation you had created in an A/B split. More on A/B testing

Attribute

Description

Example

variant

Name of the A/B split variant loaded on the webpage.

Variant A/control group

variant_id

Automatically-generated ID of the variant.

c584sa5729971a4f992sj9

location

URL of the particular variant of the user sees.

http://eshop.exponea.com/chaz-kangeroo-hoodie-variant-a.html

device

Mobile device from which the user sees the particular variant. If the visit was not through a mobile device then it is marked as "other".

Iphone

os

Operating system of the device through which the user sees the particular variant.

Windows

browser

Browser through which the the user sees the particular variant.

Chrome

experiment

experiment happens when an experiment is shown to the customer. More on experiments

Attribute

Description

Example

experiment_name

Custom-given name of the experiment.

Experiment 1

experiment_id

Automatically-generated ID of the experiment.

584sa5729971a4f992sj9

variant_name

Name of the A/B split variant used in the experiment loaded on the webpage.

Variant A

variant_id

Automatically-generated ID of the variant used in the experiment loaded on the webpage.

c584sa5729971a4f992sj9

action

Nature of the engagement the user had with the experiment. "Show" is a default standard for indicating that the experiment has loaded on the page.

show/close/submit/click

location

URL of the page with the experiment.

http://eshop.exponea.com/chaz-kangeroo-hoodie-experiment-1.html

path

Location URL without the domain and parameters

chaz-kangeroo-hoodie-experiment-1.html

device

Mobile device from which the user sees the page with the experiment. If the visit was not through a mobile device then it is marked as "other".

Iphone

os

Operating system of the device through which the user sees the page with the experiment.

Windows

browser

Browser through which the the user sees the page with the experiment.

Chrome

anonymization

anonymization happens when you remove the customer's identification but still keep their data for analytics purposes. You can read more about anonymization in Data management.

Attribute

Description

Example

source

Software through which the user's information was anonymized.

events_ext_api

access_group_id

Level of access rights of the person who anonymized the user's information.

Group_B

Updated 14 days ago

System Events


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.


We rely on cookies

to optimize our communication and to enhance your customer experience. By clicking on the Accept and Close button, you agree to the collection of cookies. You can also adjust your preferences by clicking on Manage Preferences. For more information please see our Privacy policy.

Manage cookies
Accept & close

Cookies preferences

Accept & close
Back