Bloomreach Engagement provides out-of-the-box email tracking and bounce management for all of our native email provider integrations to enable our users to easily analyze email performance, manage deliverability and email list health.

# Email tracking

Email campaigns generate `campaign` events for all customers in the audience of the campaign, covering actions from the email being sent from Bloomreach Engagement to customers opening and clicking the email. The full structure of the `campaign` events can be found in the [System events](🔗) article.

Email campaign events contain a `status` attribute describing different steps of email delivery and interactions. The `status` attribute can be divided into 3 main groups:

**1. Sending from Bloomreach Engagement **

StatusDescription
enqueuedBloomreach Engagement enqueued the email to the email provider.
enqueue_failedBloomreach Engagement could not enqueue the email either due to an error on the provider side (connection error) or on the Bloomreach Engagement side (e.g. error in jinja). The attribute `message` will contain details of the error.
suppressedBloomreach Engagement suppressed the email due to one of the following: [missing consent](🔗), [Frequency policy](🔗), [Cumulative bounce](🔗), [Suppression lists](🔗), or [Email list hygiene filter](🔗). The attribute type and message will contain details of the suppression type.

**2. Delivering the email **

StatusDescription
deliveredThe email provider confirmed the delivery of the email. The confirmation comes in a form of a successful (2.x.y) SMTP response from the recipient server. However, the definition of a delivered email is set by the recipient server, meaning no distinction is made between emails getting to the recipient's inbox or spam folder.
soft_bounced, hard_bounced, preblockedThe email provider notified Bloomreach Engagement that the email bounced and was not delivered. See section [Bounce management](🔗) for more details.

**3. User interactions **

StatusDescription
openedThe customer opened the email (the 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`.
clickedThe customer clicked on a link inside the email. This also includes clicking on the unsubscribe link.
unsubscribedUser unsubscribed using [List unsubscribe](🔗).
complainedThe customer marked the email as spam. See section [Bounce management](🔗) for more details.
a flow chart of email status


a flow chart of email status

# Bounce management

Email messages that were not successfully delivered to an email address constitute an email bounce. This will result in an automatic email response from the mail server or mailbox provider like Gmail, notifying the email sender of the non-delivery and other information. Bloomreach Engagement automatically processes these responses from email providers and assigns every unsuccessful email delivery attempt into one of the following bounce categories:

## Soft bounce

Emails could not be delivered because of temporary problems, such as the domain being temporarily down.

_Action:_

  • Track campaign event with `status=soft_bounced`

## Hard Bounce

Emails could not be delivered because of permanent problems, such as the address is undeliverable, e.g. it doesn’t exist.

_Action:_

  • Track campaign event with `status=hard_bounced`

  • [Invalidate the contact](🔗)

## Cumulative Bounce

Emails could not be delivered because of problems that can be temporary or permanent such as missing MX records for the domain or full inbox. See the [Cumulative Bounce Logic section](🔗) for more details.

_Action:_

  • Track campaign event with `status=soft_bounced` and `cumulative=true`

Only for Mailgun

Cumulative bounce is currently only available for Mailgun.

## Preblocked

Emails could not be delivered because they were blocked by the email service provider, e.g. when the address is on the suppression list of the provider.

_Action:_

  • Track campaign event with `status=preblocked`

  • [Invalidate the contact](🔗)

## Complained

Emails could not be delivered because they were marked as spam or sent to the spam folder.

_Action:_

  • Track campaign event with status=complained

  • Revoke consent used for sending the particular campaign

# Invalidating a contact

In case of permanent bounces such as Hard Bounce or Preblocked Bloomreach Engagement automatically invalidates the contact to prevent further attempts to send emails and protect your IP reputation and deliverability.

_Action:_

  • Customer attribute `email_invalid` set to `true`

  • Track event `invalid_contact` containing details about the invalidation:

    • `Channel`: lists the channel through which you approach your customer's invalid contact details (example: email)

    • `Contact_info`: lists the customer's exact email address that was deemed invalid

    • `Reason`: lists the reason why was the email address deemed invalid

      • `Source`: identifies which source determined that the contact is invalid (example: Bloomreach Engagement / ESP).



Once `email_invalid` attribute is set for a customer profile Bloomreach Engagement will automatically exclude such profile from all email campaigns and won't try to send further emails.

Transactional Emails

Setting the `email_invalid` flag does not have an effect on transactional emails, we always try to send those regardless of any suppression.

# Cumulative Bounce Logic

Only for Mailgun

Cumulative bounce is currently only available for Mailgun.

Cumulative bounce logic is applied to bounces that can either be temporary or permanent and only after repeated failed attempts can we confidently classify it as a permanent bounce. Cumulative bounce logic will watch for repeated soft bounces with attribute cumulative=true and based on the defined rules will first result in temporary suppression and eventually in permanent suppression:

  • **Temporary suppression** Will temporarily suppress email addresses for a defined period of time (7 days) This will result in a campaign event with status=”suppressed” and message=”Temporarily suppressed due to repeated soft bounces for this email address” and valid_until=timestamp



  • **Permanent suppression** Will permanently suppress email address and invalidate the contact, tracking event invalid_contact with reason=“Permanently suppressed due to repeated soft bounces for this email address”

## Rules for the cumulative bounce

  • If there are 3 consequent soft bounces in 7 days or 5 consequent soft bounces over any timeframe, this will lead to temporary suppression for 7 days.

  • After the temporary suppression expires, 1 soft bounce consequently after that will lead to permanent suppression.



Consequent soft bounces mean no signs of activity (delivered/open/click campaign events) in between soft bounces (with attribute cumulative=true)

These rules are evaluated at the time of the next campaign sending attempt e.g:

  • If the next sending attempt is within the period of temporary suppression (7 days since the last soft bounce), the sending will be blocked and result in a campaign event with status=”suppressed” and message=”Temporarily suppressed due to repeated soft bounces for this email address”

  • If the Customer already has 3 soft bounces, the temporary suppression period is over, and they have another soft bounce, they won't get permanently suppressed immediately after the last soft bounce. Permanent suppression will appear with the next campaign sending attempt.



Cumulative logic will not apply if the email property does not match the recipient in the soft bounce events counted in the cumulative bounce