Skip to main content
The Courier Message Logs provide a timeline and insights into the status of your notifications, recipients, lists, and automations. Each step in the send status has a visual representation.
Courier Message Logs
The message logs display key information in the summary view:
  • The Status of each message send request
  • The Notification and Recipient associated with each send
  • The Provider channels for the notification

Message Statuses

Every message in Courier progresses through a series of statuses. The following statuses are tracked:

Delivery Statuses

StatusDescription
QueuedCourier has received a valid Send API request and is processing the notification.
RoutedChannel routing is complete; the message is ready for delivery.
SentCourier sent the request to the downstream provider. A 200 response from Courier does not guarantee delivery; the provider may still reject the message.
DeliveredThe provider confirmed the message was accepted. For email, this means it reached the inbox. For SMS, not all providers return delivery confirmation.
OpenedThe recipient opened the notification (email with open tracking enabled, or inbox/push via SDK events).
ClickedThe recipient clicked a link in the notification (requires link tracking enabled).

Processing Statuses

StatusDescription
DelayedThe message is scheduled for future delivery.
DigestedThe message was added to a digest queue and will be sent as part of a batched notification.
FilteredThe message was filtered out by routing rules, preferences, or send conditions.
ThrottledThe message is being rate-limited due to send limits or workspace quota.
SimulatedThe message was sent with a mock key, simulating the lifecycle without delivery to the provider.

Error Statuses

StatusDescription
UndeliverableThe provider rejected the message or delivery failed.
UnmappedThe Notification ID does not exist or the Event ID is not mapped to a notification.
UnroutableNo valid delivery route was found (e.g., missing recipient address or no configured channels).
CanceledThe message delivery was canceled before being sent.
Has Errors is not a status but a filter indicator showing that the message timeline includes an error response.

Channel-Specific Behavior

EventEmailPush (APNS/FCM)InboxSMSChat
DeliveredProvider confirms inbox deliveryDelivery Rate = 100% - Error RateDelivery Rate = 100% - Error RateNot all providers return delivery statusProvider confirms delivery
OpenedRequires open trackingNot supportedSDK push eventsn/an/a
ClickedRequires link trackingSDK click eventsSDK click eventsn/aRequires link tracking

Inbox and Channel Sync

Notification event states are synchronized between the inbox and other channels within a notification template. For example, if a notification was sent with both inbox and email channels, opening the email will mark the inbox notification as read.
This sync only works one way. Reading an inbox message will not mark an email as opened.

Viewing Logs

Histogram

The logs histogram breaks down delivery metrics for specific days, grouping events in color-coordinated graphs.
Logs Histogram
You can drag-select within the histogram to filter to a custom date range.
Drag Select View

Log Detail View

Click any notification in the list view to open the log details, which includes:
  • Summary - Message and Recipient IDs, timestamps for each stage (Enqueued, Sent, First Delivery, etc.)
  • Timeline - Detailed timeline of every step; click any event to view additional details
Detailed View
To investigate errors, click the Error Encountered event in the timeline to review the error message.
Error Tab

Filtering Logs

Filter your message logs to find specific notifications:
  • Date - Filter by date range (limited by your account’s log retention period)
  • Recipient - Filter by email address or Recipient ID
  • Notification - Filter by specific notification template
  • Status - Filter by one or more statuses: Queued, Sent, Delivered, Opened, Clicked, Undeliverable, Unmapped
  • Errors - Show only notifications with errors in their timeline
  • Provider - Filter by one or more integrated providers
Unmapped means the Event ID does not map to a notification or the Notification ID is invalid.

Rendered Content

The Courier Messages API lets you retrieve the rendered output of any notification in your send history. This is useful for debugging and verifying what was actually sent to providers. To fetch the rendered content for a message:
  1. Fetch message history - Use GET /messages/:message_id/history with the message ID from your send response. You can use the history endpoint or the getMessageHistory SDK function.
  2. Fetch message content - Use the root-relative URL from the RENDERED event in the history response, appended to the Courier API host: https://api.courier.com
Example of a Rendered Event
Example of a Rendered Push Event

Rendered Content for Emails

HTML content is returned with content-type: text/html as raw HTML:
content-type: text/html
content-length: 32015
date: Tue, 26 Oct 2021 17:10:10 GMT
x-amzn-requestid: e9d54717-3cb0-4f1e-a47a-b64317738596
access-control-allow-origin: *
strict-transport-security: max-age=31536000;includeSubDomains;preload
Example of an Email Response

Log Retention

Courier retains message logs for different periods depending on your account type:
  • Free and Pro accounts: Logs are retained for 30 days
  • Contracted accounts: Logs are retained for 1 year
The Log date filter in the Message Logs interface will only allow you to filter and view logs within your account’s retention period. Logs older than the retention period are automatically deleted and cannot be recovered.
Enterprise Customers: If you need longer log retention periods, contact Courier Support to discuss extended retention options.

Troubleshooting Delivery Issues

If a message shows Sent but the recipient hasn’t received it, use the timeline in the log detail view to identify where the problem is:
  1. Check the provider response. Click the Sent event to see the raw response. If the provider returned an error, the details will be here.
  2. Check your provider’s dashboard. Cross-reference the message ID with your provider’s activity feed (SendGrid Activity, Postmark Activity, SES console, etc.) for bounce, block, or deferral events.
  3. Verify sender authentication. Confirm that SPF, DKIM, and DMARC records are correctly configured for your sending domain.
If the message shows Delivered but the recipient still hasn’t received it, the issue is on the recipient’s side; their mail server accepted the email, but an internal filter or email security gateway may be quarantining it. For a full walkthrough, see How to Debug Email Delivery Issues.

Automation Logs

The Automation logs provide detailed insights into the status of an automation run as well as step details.

Automation Run List

Automation Logs
Clicking into one of the automation in log opens the run summary, providing details on each of the steps in the automation.
Automation Run Summary