Email Campaigns FAQ

Note: ESP = Email Service Provider

Why do I see the Missing/invalid email property error?


This happens when the customer email attribute is either empty or doesn't contain a valid email address format.


Check the email attribute value of the impacted customer profiles. In most cases, the failure generates “enqueue_falied” status campaign events where the message attribute contains additional details about the failure.


Fix the email attribute of the customer:

  • Include the 'email has value' condition in your scenario to avoid attempting to enqueue messages for customer profiles with an invalid email address.
  • If possible, also include more complex conditions to filter only valid email addresses (such as “email contains @”, “email contains .”, etc.).

Why do I see the Consent/policy error


This happens in two cases:

  • Consents: Customer does not have valid consent for given consent category that is used in the communication node settings.
  • Policy: Customer has already received the maximum amount of communication permitted by a given policy that is used in the communication node settings.


  • Consents: Check the customer profile, if they have valid consent for a given consent category.
  • Policy: Check the customer profile for all campaign events with the same policy as the one in the campaign that has failed. Validate if the customer has already received the maximum allowed number of communications from all campaigns with this policy within the defined interval.


  • Consents: Add a condition to the campaign that checks if the customer has valid consent for a given category. That way, customers that do not have this consent are excluded from the scenario, therefore not entering the communication node, preventing unnecessary “enqueued_failed” campaign events.
  • Policy: Ensure that customers are not being targeted by too many campaigns with the same policy setting at the same time intervals.

Why do I get the Bounces/Blocks from ESP level?


This happens when ESP has blocked the customer’s email due to either long-term inability to deliver (multiple soft bounces) or inability to deliver with reason that implies long-term inability to deliver in the future.


Check the message attribute of campaign events with soft or hard bounces that precede the suppression and invalidation of the customer.


  • Make sure that the customer’s email is valid
  • Allowlist customer’s email on the ESP level. If Bloomreach is managing your ESP integration, contact your CSM, who will reach out to our emailing team to resolve this issue

For more information about bounce management, refer to this article on Email Tracking and Bounce Management.

Why does the email_invalid attribute set to true lead to suppressed campaigns?


This occurs when the Bloomreach Engagement platform marks a customer profile with an invalid email because of the information it has received from your ESP about the inability to deliver the communication. This happens to prevent any further attempts to send communication to invalid addresses and to preserve your domain reputation, among other reasons.

For more information, read about how sending a communication to invalid email addresses can impact your domain reputation in our guide.


Create a report with the following:

  • “email_invalid is true” in the customer filter
  • “count event invalid_contact” in metrics
  • “invalid_contact -> reason” in rows/columns of the report to get information about the reason for the invalidation of the contact
  • “invalid_contact -> source, channel, etc.” in rows/columns of the report to get any additional information about the invalidation of the contact

A report of this type gives you all the information you need to understand the reasons why email service providers have decided to invalidate the contact.

After investigating the reasons for the invalidation of contacts, follow the solutions for the Bounces/Blocks from the ESP level section above to avoid the blacklisting of given contacts on the ESP level. After that, set the email_invalid attribute of impacted contacts to False to allow the communication to be enqueued to their email addresses from Bloomreach.

If the whitelisting on the ESP level is done successfully and the contacts are indeed valid and therefore eligible to receive the communication, ESP should send the communication Bloomreach has enqueued for the given customers, resulting in a successful delivery.

Why do I get “Enqueue_failed"?


This might occur if your communication contains any content that can not be rendered successfully due to given circumstances, such as the absence of the data that you are trying to work with using Jinja.

Therefore, the communication is not sent, and the corresponding campaign event with “enqueue_failed” status is recorded under the impacted customer profile.


You can preview the message attribute of the campaign events with enqueue_failed for the impacted customer base or campaign to determine the reason behind the failure of sending a given communication.


To solve this issue, ensure that all the edge cases are handled correctly and that the provided content behaves as expected for any potential input that it can be rendered with. For example, make sure that there is no data missing for any object that you are referencing, such as an event property or a customer attribute.

Why are my emails aborted?


You can use the {% abort %} command, which will stop the execution of the code for a specific customer. The abort feature is usually used in combination with an if statement to avoid sending a communication to customers that do not meet certain conditions. For example, using {% abort %} in an email node in a scenario prevents the email from being sent, and the scenario does not continue to subsequent nodes (for the specific customer). If used in an email, you can see the number of aborted customers in the scenario evaluate tab (when you hover over the specific email node).


To debug this issue, check the email template that generated this aborted action and look for the {%abort%} Jinja code. The good practice is to use the syntax {% abort: "Custom message" %}. In this case, the action will not only be aborted, but it will also add a campaign event with status aborted, and the custom message will be in the message property.


To solve this issue, ensure that customers who do not fulfill {%abort%} Jinja conditions are filtered out before reaching the email node.

Why are my emails filtered between the ESP and the recipient’s mailbox?


If Mailgun has confirmed the delivery of the email, the issue is most likely in the email application of the customer.


To debug and solve this issue, check spam/filtering settings and ensure that the application can connect to the recipient email server.


  • Global filters and blacklists (project-level setup).
  • Email list hygiene filter allows for project-level filtering of customers who should not receive any email campaign in order to manage the health of the subscribers' list.

Why is my custom web font not properly displayed in my email app when I uploaded it to the Visual editor?

The adoption of custom web fonts across email clients varies. Some email clients have very limited support for custom fonts or no support at all.

The Visual email builder inserts custom fonts into the email code, but it cannot control how those fonts are rendered by an email client app. In case the email client does not support a particular custom font, it uses a fallback font that is defined in the custom font CSS, which is usually a web-safe font of similar properties (serif for serif fonts, etc.).

What is the difference between a web-safe font and a web font?

Web-safe fonts are a set of widespread fonts available on most devices, and most applications support these fonts, including email clients. Web fonts are not-so-popular fonts usually hosted on some CDN like Google fonts or Adobe Fonts and are attached to emails as links in the email’s CSS.

Where can I find more information about custom fonts in emails?

You can find more information on the BeeFee email builder support site. It is a very informative article covering the topics of font support in email apps. Additionally, it provides an overview of custom font support for the most popular email clients.

How do I check consistency between my custom evaluation and the Evaluate tab?

To check how the definitions in the Evaluate tab in Email Campaigns are built and compare them with your custom evaluation, follow these steps:

  1. Go to the Evaluate tab in Scenarios and navigate to Results in the Evaluate tab.
  2. View more options by clicking on the three dots in the top right corner of the page next to the Start button).
  3. Select the Copy email campaign to dashboard option.
  1. You can check and compare the definitions between the Evaluate tab and your custom evaluation in the new dashboard. View and edit this dashboard like any other regular dashboard.

How do I check consistency between my custom evaluation and the New Evaluate tab?

You can compare the results with the email campaign results tab by manually building the metrics, such as:

  • Orders
  • Conversion Rate
  • Average order value
  • Revenue

Please bear in mind that the purchase event must contain the following assets:

  • Hours between campaign click and purchase
  • Last clicked campaign_id