RefreshDocsConsole →

Dashboard

Emails

Every message the organization sent, its status, and a per-recipient event timeline.

Emails lists messages, newest first, with a status filter and a recipient search (contains-match). Click a row to open the detail page.

Statuses

Each message has one status, shown as a coloured pill:

Status Colour Meaning
Queued amber Accepted; waiting for the worker (or for scheduled_at). Can be canceled.
Sending amber A worker has claimed it and is talking to the transport.
Sent green Handed to the transport; provider id stored.
Delivered green The receiving server accepted it.
Bounced red Hard bounce (address suppressed) or soft bounce.
Complained red Recipient marked it as spam (address suppressed).
Failed red The transport rejected it after retries; the error text is on the detail page.
Suppressed gray Every recipient was on the suppression list; nothing was sent.
Canceled gray Canceled while queued.

Detail page

The header shows the first recipient and the status. The grid shows from, subject, to, the message id, and reply-to. The Log field links to the API request when one exists (see Logs). It also shows domain, transport, API key, kind, tags, and times.

The email events strip draws one node per event type in time order. Open Event details for the per-recipient table. Bounce rows show bounce type, sub-type, and the diagnostic code from the receiving server. The event types are queued, sent, delivered, delivery_delayed, bounced, complained, rejected, opened, clicked, unsubscribed, suppressed, failed.

For bounces, the row carries the bounce type: HARD, SOFT or UNDETERMINED, from the permanent/transient classification of the provider. It also carries the sub-type (General, MailboxFull, Suppressed, …). When the provider sent one, it carries the diagnostic code from the receiving server. Delays show the delay type. Failures show the transport error. Clicks show the URL and the user agent.

The body card has five tabs:

  • Preview — HTML in a sandbox iframe. The tab shows plain text when the message has no HTML.
  • Plain Text — the text part.
  • HTML — the HTML source.
  • Raw — the stored message as JSON.
  • Insights — checks on the from address, the domain DNS, and the body.

Insights flags a root-domain From address, a missing tracking host, and a missing DMARC record. It also flags a no-reply From address, a missing text part, and a body over 100 KiB. It flags links or images off the sending domain, SVG images, and short YouTube URLs.

Bounce reasons in short

  • Hard — permanent: unknown user, bad domain, blocked. The address goes on the suppression list at once, and future sends drop it.
  • Soft — transient: mailbox full, greylisting, throttling. The platform does not suppress the address. The transport retries and reports delivery_delayed between attempts.
  • Undetermined — the platform could not classify the answer of the receiving server.

Replies that arrive on reply.<domain> and quote the Message-ID of this message appear at the bottom of the page (see Inbound). Body and event retention windows are organization settings (see Members & settings).