Living Emails let you place product cards in Brevo emails that are rendered by the Living Emails service when an email client requests the image. Instead of embedding product details that were fixed when the campaign was sent, the service can retrieve current product information—such as price and availability—from your connected data sources when it renders the card.
Living Emails are a third-party service, not a native Brevo product-recommendation feature. They use their own strategies, templates, and data connections, so they do not depend on Brevo’s native product recommendations or product data being read at send time.
How it works
Your Brevo email contains an image URL and a click-through URL for each product card. Brevo personalizes the URLs with a contact-specific value, such as an opaque Living Emails token stored on the contact. When an email client requests the image, the Living Emails service uses that token to identify the recipient and render the card using the latest data available from its connected sources.
For example, if a product’s price has changed or it has sold out since the email was sent, the service can render the current price or select an alternative according to your configured strategy.
Important: Brevo contact variables are resolved when the message is sent. In this setup, use the Brevo variable only to pass a recipient identifier to Living Emails not to pass product data that you expect to change after sending. Brevo documents contact variables in the form {{ contact.ATTRIBUTE }} and explains that they are replaced with contact information at send time.
Before you begin
You’ll need:
- A Living Emails account or service instance, including its public HTTPS image and click endpoints.
- At least one Living Emails template and recommendation strategy.
- A connection from Living Emails to the relevant product, inventory, pricing, and recommendation data sources.
- A Brevo contact attribute that can identify a recipient to Living Emails.
Use an opaque identifier where possible. For example, create a custom contact attribute such as LE_TOKEN and populate it with a random, recipient-specific token that Living Emails can map to the contact. Avoid putting a plain email address or other personal information directly into a URL. URL values can be exposed in logs and image-proxy requests.
1. Set up a recipient token in Brevo
Create a custom contact attribute in Brevo—for example, LE_TOKEN—and populate it for each contact who should receive Living Emails. The value should be unique, difficult to guess, and recognized by the Living Emails service.
You can populate the attribute by importing it with your contacts or by updating contacts through your existing integration or API workflow. Make sure the token is available on the contacts included in your campaign.
In Brevo, contact attributes can be inserted using the Add variable control or by typing the documented variable syntax manually. For an attribute named LE_TOKEN, the corresponding form is:
{{ contact.LE_TOKEN }}
The exact attribute name in the variable must match the name used in Brevo. You can insert a contact attribute in text, a button URL, or a link. If you use Brevo’s editor, you can select it from Add variable → Contact attributes; in an HTML editor, you can enter the variable manually.
2. Build the Living Emails URLs
Your Living Emails provider will give you the endpoint format and the required values. A typical setup includes:
- Client or account ID: Identifies your Living Emails account or tenant.
- Recipient token: The Brevo contact variable, such as
{{ contact.LE_TOKEN }}. - Template: The card layout to use.
- Strategy: The recommendation rules to apply, such as abandoned-cart or cross-sell.
- Slot: Which product position to render in a multi-product layout.
- Campaign or version value: An optional value for organizing or versioning URLs, if supported by your service.
Example structure—replace the example host and path values with those provided by your Living Emails provider:
<a href="https://images.example.com/v2/url/ACCOUNT_ID/{{ contact.LE_TOKEN }}/template1/STRATEGY_ID/1">
<img
src="https://images.example.com/v2/img/ACCOUNT_ID/{{ contact.LE_TOKEN }}/template1/STRATEGY_ID/1"
alt="View this recommended product">
</a>
For more product cards, use the appropriate slot number for each card:
<img src="https://images.example.com/v2/img/ACCOUNT_ID/{{ contact.LE_TOKEN }}/template1/STRATEGY_ID/1" alt="Recommended product">
<img src="https://images.example.com/v2/img/ACCOUNT_ID/{{ contact.LE_TOKEN }}/template1/STRATEGY_ID/2" alt="Recommended product">
<img src="https://images.example.com/v2/img/ACCOUNT_ID/{{ contact.LE_TOKEN }}/template1/STRATEGY_ID/3" alt="Recommended product">
The image URL requests the rendered card. The link URL sends the recipient through the Living Emails click endpoint, which can record the click and redirect to the relevant product page. Confirm the final URL format, supported parameters, and redirect behavior with your Living Emails provider.
3. Add the cards to a Brevo email
- In Brevo, create or open an email campaign or template.
- Open the design step and choose an editor that allows you to add or edit HTML.
- Add an HTML block where you want the product card to appear.
- Paste in the image and link markup supplied or configured for your Living Emails service.
- Replace the example account, template, strategy, and slot values with your provider’s actual values.
- Insert the recipient token using Brevo’s variable picker, or enter its syntax manually—for example,
{{ contact.LE_TOKEN }}. - Repeat the markup with different slot numbers if you want multiple cards.
- Save the design and test it with a contact record that has a valid Living Emails token.
You can also use the image URL in an image block and set that image’s link to the corresponding Living Emails click URL, if your chosen Brevo editor supports those fields.
4. Configure strategies and data sources in Living Emails
Set up strategies and templates in the Living Emails service—not in Brevo’s native product recommendations. Depending on your service configuration, strategies might include:
- Abandoned cart
- Next best offer
- Upsell or cross-sell
- Recommended for you
- Trending products
- New arrivals
- Alternatives for unavailable products
Connect each strategy to the data it needs, such as cart contents, product catalog, inventory, current prices, or recommendation results. Set fallback rules for cases such as a product being unavailable or a recommendation returning no results.
Because Living Emails retrieves product data from its configured sources when it renders a card, it is not restricted to product details that Brevo had available when the email was sent. Which data can be shown depends on the sources and rules you have connected to the service.
5. Send and test the campaign
Before sending to your full audience:
- Confirm the test contact has a valid
LE_TOKENvalue and that Living Emails can match it. - Check that each image URL returns a valid image without requiring a login or browser session.
- Click each card and confirm that it redirects to the expected destination.
- Check the received email in the actual inbox, not just the Brevo editor preview. An editor preview may not resolve contact variables or make the same image requests as a delivered message.
- Test key scenarios, including an in-stock item, a changed price, an unavailable item, and a fallback recommendation.
- Send a small test campaign before launching at full scale.
What to expect when an email is opened
Living Emails can render fresh content when an email client requests the remote image. However, email clients and image-proxy services may cache images, and some recipients may block remote images. As a result, the service cannot guarantee that a new server request will occur every time a person opens or reopens a message. Avoid relying on a Brevo date variable as an open-time cache-buster: Brevo resolves its variables when the message is sent, not each time it is opened.
If an image is not displayed, the surrounding email content and descriptive alt text should still make the message understandable. Keep important details and calls to action available in accessible text or on the linked product page.
Troubleshooting
- The URL contains the literal
{{ contact.LE_TOKEN }}: Check that the variable was inserted in a supported Brevo email field and that the message was sent to a contact with that attribute. Brevo replaces contact variables when sending, so the campaign editor’s preview may not show the final value. - The image is blank or broken: Check that the image endpoint is publicly reachable over HTTPS, returns a valid image, and accepts the token and other URL parameters.
- The wrong product or fallback appears: Confirm the token maps to the intended recipient, and check the strategy’s rules and connected data sources.
- The card looks out of date: Check whether the email client or its image proxy is serving a cached image. A request to Living Emails is what triggers a new render; a person reopening the message may not cause another request.
- The card looks right, but the click goes elsewhere: Check the URL configured for the card’s click endpoint, its redirect rules, and the product destination returned by the strategy.