Tracking
Monitor email engagement with open tracking, click tracking, and per-contact metrics.
Kraiter provides built-in tracking for email opens and link clicks. Tracking data is recorded automatically for every email sent through the platform, giving you visibility into how contacts engage with your emails.
Open tracking
Open tracking works by embedding a tiny invisible image (a tracking pixel) in the HTML body of each email. When the recipient's email client loads the image, Kraiter records an open event.
How it works
- Kraiter inserts a 1x1 transparent pixel into the email HTML during rendering
- The pixel URL is unique to each send, encoding the send ID and contact
- When the email client loads the pixel, Kraiter logs an
email.openedevent - The event includes a timestamp, the send ID, and the contact's email
Limitations
Open tracking is not 100% accurate:
- Image blocking — Some email clients block images by default (notably Outlook). If the recipient does not load images, the open is not recorded.
- Pre-fetching — Some clients (Apple Mail Privacy Protection) pre-fetch images automatically, which can register an open even if the recipient has not viewed the email.
- Plain text — If a recipient views the plain text version of the email, no open is recorded.
Open tracking provides a useful signal for engagement trends, but should not be treated as exact metrics.
Click tracking
Click tracking works by wrapping links in your email with a Kraiter redirect URL. When the recipient clicks a link, the request passes through Kraiter's tracking server, which records the click and redirects the user to the original destination.
How it works
- During rendering, Kraiter replaces each link in the email body with a tracking URL
- The tracking URL encodes the original destination, send ID, and contact
- When the recipient clicks the link, Kraiter logs an
email.clickedevent - The recipient is immediately redirected to the original URL
What gets tracked
- The original URL that was clicked
- The timestamp of the click
- The send ID and contact email
- Multiple clicks on the same link are recorded individually
Links that are not tracked
Kraiter does not wrap certain links:
- Unsubscribe links (these use the platform's built-in unsubscribe mechanism)
mailto:links- Links explicitly marked as no-track in the template
Per-contact engagement metrics
Kraiter maintains engagement metrics for each contact based on tracking data. These are available as derived properties on the contact:
| Metric | Description |
|---|---|
emailsSentCount | Total emails sent to this contact |
emailsOpenedCount | Total recorded opens |
emailsClickedCount | Total recorded clicks |
lastEmailSentAt | Timestamp of the last email sent |
lastEmailOpenedAt | Timestamp of the last recorded open |
lastEmailClickedAt | Timestamp of the last recorded click |
Access these via the contact:
const contact = await kraiter.contacts.get('alice@example.com');
console.log(`Sent: ${contact.emailsSentCount}`);
console.log(`Opened: ${contact.emailsOpenedCount}`);
console.log(`Clicked: ${contact.emailsClickedCount}`);
console.log(`Last opened: ${contact.lastEmailOpenedAt}`);These metrics can also be used in segment rules and sequence conditions:
conditions:
- property: contact.emailsOpenedCount
operator: greaterThan
value: 5Per-send tracking data
Each individual send has its own tracking record. Retrieve it using the send ID:
const send = await kraiter.sends.get('snd_abc123def456');
console.log(send.status); // 'delivered', 'bounced', etc.
console.log(send.openedAt); // First open timestamp (if opened)
console.log(send.clickedAt); // First click timestamp (if clicked)
console.log(send.clicks); // Array of all click eventscurl https://api.kraiter.com/sends/snd_abc123def456 \
-H "Authorization: Bearer YOUR_API_KEY"Privacy considerations
Email tracking involves recording recipient behaviour. Keep these points in mind:
- Compliance — Ensure your tracking practices comply with applicable regulations (GDPR, CAN-SPAM, PECR). Your privacy policy should disclose that you track email engagement.
- Unsubscribe — Always include a clear unsubscribe mechanism. Kraiter handles this automatically with one-click unsubscribe headers.
- Data retention — Tracking data is retained according to your tenant's data retention settings. Consider how long you need to keep engagement data.
- Apple Mail Privacy Protection — Since iOS 15, Apple Mail pre-fetches tracking pixels, which inflates open rates. Consider this when analysing engagement data.
- Transparency — Be straightforward with your recipients about what you track and why. Trust builds better engagement than surveillance.