Skip to main content
Helo gives you full visibility into every email you send. From the moment a message is accepted to the moment it’s delivered, opened, or bounced, every event is captured and queryable — in real time. Activity comes in two forms:
  • Events — an ordered log of every delivery lifecycle event for every message
  • Messages — a view of each distinct message along with its full delivery history

Events

Every message goes through a series of lifecycle events as it moves through Helo’s infrastructure.
EventDescription
acceptedHelo has accepted the message for processing
processedThe message has been processed and handed off to the receiving mail server
deliveredThe receiving server confirmed delivery
openedThe recipient opened the email (requires open tracking to be enabled)
clickedThe recipient clicked a tracked link (requires link tracking to be enabled)
bouncedThe message could not be delivered — see Bounces
complainedThe recipient marked the message as spam
unsubscribedThe recipient unsubscribed
resubscribedA previously unsubscribed recipient opted back in

Querying events

You can retrieve events via the API with a wide range of filters:
FilterDescription
channelIdScope results to a specific channel
messageIdRetrieve all events for a specific message
startDate / endDateFilter by event timestamp
recipientFilter by recipient email address
subjectFilter by message subject
mailTypetransactional or broadcast
eventTypesOne or more event types (e.g., bounced, delivered)
tagsFilter by tags attached to the message
Results are paginated using a cursor. Pass the after value from a response to fetch the next page. Each page returns up to 500 events.

Messages

The messages view gives you a higher-level perspective — one record per distinct message sent, each with a summary of its delivery status and recipient list. Each message has:
  • A unique messageId
  • The channelId it was sent through
  • mailType (transactional or broadcast)
  • mailSource (api or smtp)
  • deliveryType (live or sandbox)
  • status (queued or sent)
  • Subject, recipients, and tags

Message details

Fetching a single message by ID returns the full picture:
  • Headers — from, to, cc, bcc, reply-to addresses
  • Content — plain text body, HTML body
  • Attachments — filename, disposition (inline or attachment), and size
  • Tracking settings — whether open tracking and link tracking were enabled
  • Events — the complete ordered history of events for that message

Querying messages

Messages support the same filters as events: channelId, startDate/endDate, recipient, subject, tags, mailType, and status. Results are paginated up to 100 per page.

Statistics

Helo aggregates your sending data into statistics so you can understand trends and monitor the health of your sending over time. Stats are always broken down by mail type — transactional and broadcast — so you can see how each sending stream is performing independently. The following metrics are tracked:
MetricDescription
sentMessages handed off for delivery
deliveredMessages confirmed delivered by the receiving server
openedMessages opened by at least one recipient
clickedMessages where at least one link was clicked
bouncedMessages that could not be delivered (hard + soft)
unsubscribedMessages that resulted in an unsubscribe
complainedMessages that resulted in a spam complaint

Time-based aggregations

Stats are available at three granularities:
  • Hourly — one data point per hour, for a given from/to range
  • Daily — one data point per day, for a given from/to range (pass a timezone to align days to your local time)
  • Totals — a single aggregated summary for the entire from/to range
All three endpoints support filtering by channelId and by tags.

Channel deliverability

Helo monitors the deliverability health of each channel and will alert you when metrics approach problematic thresholds. Each channel receives a health score:
HealthDelivery rate
excellentAbove 98%
good97–98%
ok95–97%
poorBelow 95%
Health is calculated as (sent - bounced) / sent, separately assessed across both mail types and then combined.

Deliverability alerts

When bounce rates or spam complaint rates exceed safe thresholds, Helo generates an alert. Alerts have two severity levels: Bounce rate alerts:
SeverityThreshold
warningBounce rate exceeds 3%
criticalBounce rate exceeds 5%
Spam rate alerts:
SeverityThreshold
warningSpam complaint rate exceeds 0.08%
criticalSpam complaint rate exceeds 0.1%
These thresholds reflect industry standards set by major inbox providers (Gmail, Yahoo) for acceptable sending behavior. Consistently exceeding them risks inbox placement, domain/IP reputation damage, and may trigger account suspension.

Bounces

A bounce means an email could not be delivered. Helo tracks two types of bounces, which behave differently and require different responses.

Hard bounces

A hard bounce is a permanent delivery failure. The receiving server has definitively rejected the message. Common causes include:
  • The recipient email address does not exist
  • The domain does not exist or has no mail server
  • The receiving server has explicitly blocked your sender
Hard bounces should be treated as permanent. You should immediately remove hard-bounced addresses from your sending lists. Continuing to send to known-bad addresses is one of the fastest ways to damage your sender reputation.

Soft bounces

A soft bounce is a temporary delivery failure. The address is valid, but delivery failed at the time of sending. Common causes include:
  • The recipient’s mailbox is full
  • The receiving mail server is temporarily unavailable or throttling inbound mail
  • The message was too large to be accepted
Soft bounces may resolve on their own. However, if an address soft bounces repeatedly over time, treat it the same as a hard bounce and stop sending to it.

How to minimize bounces

Keeping your bounce rate low is critical to maintaining deliverability. Here are the most effective practices: Keep your list clean
  • Remove hard-bounced addresses immediately after a bounce event
  • Regularly prune addresses that have not engaged in a long time
  • Use double opt-in for new subscribers to verify addresses before adding them to your list
Validate addresses before sending
  • Use an email validation service at the point of address capture to catch obvious typos and fake addresses
  • Avoid purchasing third-party email lists — they tend to be full of stale and invalid addresses
Warm up new sending infrastructure gradually
  • If you’re starting to send from a new domain or IP, ramp up volume slowly
  • Sudden spikes in volume from a cold sender look suspicious to receiving servers and can result in temporary rejections (soft bounces)
Monitor and act on alerts
  • Helo will surface bounce rate warnings before they become critical — check your channel health regularly and investigate spikes as soon as they appear
  • Use the Webhooks feature to receive real-time bounced events so you can update your list immediately without polling
Use a Sandbox Channel during development
  • Test your integration with a Sandbox Channel to avoid accidentally sending to real addresses during development, which can contaminate your bounce metrics from day one

Simulating bounces

TODO