Developer guideEvents
Open and click tracking
How Couryo measures opens and clicks with its own pixel and redirect, why opens are estimated, how to turn it off per project and what is stored (privacy).
Couryo measures opens and clicks with its own tracking, on the t.couryo.com domain. The opened and clicked events show in the timeline, in campaign stats and sequence metrics, and in webhooks.
When it is on#
| Stream | Default |
|---|---|
marketing (campaigns, sequences, sends with stream: "marketing") |
on |
transactional (password, login, billing) |
off |
Tracking transactional email does not help the recipient and can hurt delivery, so it stays off. You can change it per project in the dashboard (Settings > Projects > Open and click tracking) or through the API:
curl -X PATCH https://api.couryo.com/v1/tracking \
-H "Authorization: Bearer $COURYO_ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "opens": false }'GET /v1/tracking returns { "opens": true, "clicks": true, "transactional": false }. opens and clicks apply to marketing; transactional: true also turns it on for transactional. The change applies to emails accepted from then on (admin scope).
How it works#
- Open: a transparent 1x1 pixel (
https://t.couryo.com/o/<token>.gif) goes at the end of the HTML part. When the mail program loads images, the open is recorded. - Click: each
httporhttpslink of the HTML part becomeshttps://t.couryo.com/c/<token>, which answers with a 302 redirect to the original address, right away. - Left as they are:
mailto:,tel:, anchors (#top), relative links, the unsubscribe link andList-Unsubscribe, and links with thedata-couryo-track="off"attribute. - The token is signed and carries the email id, the link position and the original address. A changed token redirects nowhere: Couryo never becomes an open redirector. Links keep working even after the email record leaves your plan's retention.
- The text part is not changed.
Opens are estimated#
An open is a weak signal, with any provider:
- Privacy protections open on their own. Apple Mail (Mail Privacy Protection) downloads the images of every email before the person opens it. When it can be recognized, Couryo marks the open as automatic (
machine: trueon the event and the webhook,opened_machinein campaign stats). It counts as an estimated open, but it does not count in the sequences' "opened" condition. - Image proxies (like Gmail's) fetch the image when the person opens: they count as a normal open.
- People who block images open without being counted.
For a firm decision (in a sequence, for example), prefer the click.
What does not count#
- Robots and link checkers (chat previews, corporate email antivirus, crawlers,
curl) andHEADrequests do not become events. The redirect works the same for them. - Clicks in the first 2 seconds after sending come from security filters that follow links when the email arrives: they do not count. Opens in that window count as automatic.
- The same open or click repeated within a few seconds counts once.
Events and webhooks#
opened: one event per email (automatic opens in another one), withcountadding the repeats.clicked: one event per link, withurl(the original address) andcount.- The webhook goes on the first open and the first click of each link; repeats only increase
count. - When the email has a single recipient, the event carries
recipient.
{ "type": "clicked", "timestamp": "2026-10-08T18:40:00Z",
"data": { "email_id": "msg_...", "event_id": "evt_...", "recipient": "ana@gmail.com", "provider": "gmail",
"url": "https://shop.com/collection", "tags": { "campaign": "cmp_..." }, "metadata": {} } }Privacy#
- Couryo stores only the fact (opened, clicked, which link, when, how many times) tied to the email. It does not store the IP address, browser or location of whoever opened it.
- Events follow your plan's log retention and are deleted with the email.
- Under privacy laws such as the LGPD and GDPR, mention tracking in your privacy policy. For people who prefer not to be measured, turn off opens, clicks or both in the project.