Skip to main content
Version: 1.468.0

Inbox Previews

Inbox Previews show your users how an email renders in real email clients before they send it. In the editor, open Preview → Inbox and select Generate Previews. Each email client in a run costs one credit.

Generated Inbox Previews displayed across multiple email clients in the email builderGenerated Inbox Previews displayed across multiple email clients in the email builder
Using an editor version before 1.479.0?

Those editors keep the previous Inbox Previews experience until September 7, 2026 (00:00 UTC): the account's default email clients and one credit per run. On that date they switch to the experience described here on their own, with no version change on your side. Previews generated before the switch stay available.

Choose the default email clients

In Console, open the project and go to Builder Settings → Inbox Previews. Pick the email clients your users start with and the region where previews are processed. Filters show how many clients are selected per platform, for example 15/104.

Inbox Previews email-client and data-region settings in Unlayer ConsoleInbox Previews email-client and data-region settings in Unlayer Console

These are project defaults. Any editor can override them with init config, and editors opened from Console show a short Manage email clients link back to this page. Embedded editors never show it.

Override the project defaults

Use features.inboxPreviews to give one editor its own clients or region:

unlayer.init({
id: 'editor-container',
displayMode: 'email',
projectId: 1234,
features: {
inboxPreviews: {
enabled: true,
clients: [
'gmailcom-lm_chrcurrent_win10',
'iphone16gmail_26',
'outlook19',
],
dataRegion: 'eu',
usageTemplateId: 456,
},
},
});
  • clients replaces the Console selection for this editor. The whole list runs or the request is rejected; no client is silently dropped. Omit it to keep the project default.
  • dataRegion is us or eu. Omit it to keep the project default.
  • usageTemplateId tags this editor's runs with a template ID in the usage report. It doesn't load anything.
  • inboxPreviews: true keeps the project defaults; inboxPreviews: false hides the feature.

Email client IDs come from the Inbox Previews API, which also lets you change the project defaults from your backend.

Usage

Every email client in a run costs one credit. Three clients, three credits.

With credit enforcement on, the editor shows the cost and your balance before generating. It never runs a partial selection.

  • Retrying a failed preview is free.
  • Generate new previews starts a new paid run.
  • At zero balance, the Inbox tab turns read-only.

See your usage in Console

Open the project's Usage page in Console. It lists every generation and its credits, with breakdowns by email client and by end user, and a CSV export.

Inbox Previews usage report with generation, device-credit, email-client, and end-user details in Unlayer ConsoleInbox Previews usage report with generation, device-credit, email-client, and end-user details in Unlayer Console

Click a generation's client count to see which clients were in the run and which ones your users actually looked at. Viewed clients come first with an eye icon; a crossed eye means nobody opened that one. A click marker means someone picked that thumbnail on purpose, a skip marker means they reached it by navigating the gallery, and no marker means the editor showed it by default.

Email clients of one Inbox Previews generation in the Unlayer Console usage report, viewed clients listed first with search and an All or Viewed filterEmail clients of one Inbox Previews generation in the Unlayer Console usage report, viewed clients listed first with search and an All or Viewed filter

Long runs are searchable.

Searching the email clients of a 24-client Inbox Previews generation in the Unlayer Console usage report, with the number of matches shownSearching the email clients of a 24-client Inbox Previews generation in the Unlayer Console usage report, with the number of matches shown

To attribute usage to your users, pass a stable user.id in unlayer.init.

Know what your users look at

The editor fires inboxPreview:viewed whenever a generated screenshot is shown to the user.

unlayer.addEventListener('inboxPreview:viewed', function (data) {
console.info(data.clientId, data.viewSource); // 'outlook19', 'gallery_click'
});
FieldWhat it is
runIdShared by every screenshot of the same run
clientIdEmail client ID, plus displayName, category, browser, operatingSystem
viewSourceautomatic, gallery_click, or navigation
autoSelectedtrue when the editor picked the screenshot itself
endUserIdThe user.id from unlayer.init, or null

A client fires once per view source, so count unique runId and clientId pairs. The screenshot and the email HTML are never included.

Good to know

  • Paid plans allow up to 20 email clients in one run, Free plans up to three when Inbox Previews is enabled. Customer Success can set an account-specific exception, never above 20. A selection over the limit is rejected before anything is generated.
  • Extra credit packs need a current paid plan that includes Inbox Previews. If a plan change removes the feature, pack credits wait until it comes back.
  • If the preview service doesn't confirm a generation, no previews come back and the reserved credits return to your allowance. Wait a few minutes before starting another run.
  • View data exists only for recent editor versions. Older generations show views as unavailable, not zero. Views are analytics, not billing records.
  • The CSV adds viewed_email_client_ids, automatically_viewed_email_client_ids, interactively_viewed_email_client_ids, click_viewed_email_client_ids, navigation_viewed_email_client_ids, and view_tracking_available.
  • Retrying a failed preview doesn't cost credits, since that client was already paid for in the run. It does render again on our side, so retries count toward the project's monthly safety allowance.
  • End-user attribution is kept for 13 months. Remove one user's attribution earlier through the Inbox Previews API.
  • Email HTML is never stored in the usage report or shared with provider support.

Limits

Each project has short request limits and a monthly safety allowance for device renders. When a limit is reached, the editor says which one and what to do: wait, reduce the selection, upgrade, or ask your account administrator to contact Customer Success.

Blocked requests are stopped before anything is generated, so they use neither credits nor renders. When the service knows when a limit resets, the response carries a Retry-After header.