What the numbers count
Every analytics view uses the same metrics:
Opened and Clicked only fill in on channels Courier can track, so a
0 in Opened on SMS means “not measured”, not “nobody read it”. lists what each channel reports.
Set up delivery tracking
Delivered comes from your provider, not from Courier. Each provider reports delivery once you set it up, and until then its messages stay atSENT. How you set it up depends on the provider:
Slack, Microsoft Teams, and other chat providers confirm delivery when they accept the message, so they need no setup. Messages sent after you turn tracking on start filling in the Delivered column. has the full provider list.
Templates
The page shows the whole workspace:- Send volume: messages sent over time.
- Template performance: sends and error rates for each template.


Journeys
Open a journey and select its Metrics tab, next to Editor and Logs. Choose Last 7 days, Last 30 days, or Last 90 days to change the chart and the table together.
- Total sent: a stacked bar chart with one bar per day and one color per journey template, so you can see which send node carries the volume.
- Template table: one row per template in the journey.
A column shows
-- when there isn’t enough data yet.
Select a row to open that template’s detail panel. It has five charts (total sent, delivery rate, open rate, click rate, and error rate), a table of the same numbers per provider, and its own time range.
Templates removed in a later version of the journey stay in the table with an Inactive prefix, so their history doesn’t disappear.
For a journey with an A/B test, per-variant results are on the experiment’s Results tab. See .
Broadcasts
Every sent broadcast has a Performance tab.
Below it, the per-recipient log lists every recipient with a timestamp and status. Filter by All, Delivered, Opened, Clicked, or Errors, or search for one recipient. Select View in logs on a row to open that message in .
To send something similar again, open a past broadcast and select Duplicate broadcast. Courier copies its content and setup into a new draft.
Get the numbers by API
The returns one template’s numbers as a time series, split by provider and channel, so you can chart them in your own dashboard or alert on them.Limits & behavior
- Time ranges are in UTC. “Last 7 days” covers 7 UTC days, which can differ from your local reporting day.
- Analytics are per environment. A message sent with a Test key appears only in Test.
- Messages without a template don’t appear in template analytics. A message sent with inline content has no template to count it under.
- There’s no roll-up by tenant, list, or audience. Template analytics are per template, and broadcast analytics are per broadcast.
- Numbers start with the first send. A draft or scheduled broadcast has no Performance data.
FAQ
Why is my delivery rate lower than expected?
Why is my delivery rate lower than expected?
Delivery rate counts messages a provider confirmed. Most providers need delivery tracking set up first, and some never confirm, so messages sit at
SENT. for each provider you send with.Why is my open rate lower or higher than expected?
Why is my open rate lower or higher than expected?
Open tracking depends on a pixel that some email clients block and some security scanners load automatically. Read open rates as a trend across sends. covers why.
Why don't my Test messages show up?
Why don't my Test messages show up?
Analytics are scoped to the environment of the key that sent the message. Switch the dashboard to the Test environment.
Can I pull these numbers into my own dashboard?
Can I pull these numbers into my own dashboard?
The returns a template’s numbers as a time series. For a workspace-wide view, list your templates and call it for each one.