email.opened
Fires when the recipient opens the email. Requires open tracking on the sending domain.
The email.opened event fires whenever the recipient opens the email. It requires open tracking to be enabled on the sending domain.
Open rates are not always accurate — image-blocking, prefetching, and privacy proxies can both suppress and inflate opens. Treat opens as a directional signal, not an exact count.
{
"type": "email.opened",
"created_at": "2026-06-22T23:41:12.126Z",
"data": {
"campaign_id": "8b146471-e88e-4322-86af-016cd36fd216",
"created_at": "2026-06-22T23:41:11.894719+00:00",
"email_id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794",
"message_id": "<111-222-333@email.example.com>",
"from": "Acme <onboarding@example.com>",
"to": ["recipient@example.com"],
"subject": "Sending this example",
"template_id": "43f68331-0622-4e15-8202-246a0388854b",
"tags": {
"category": "confirm_email"
}
}
}typestringoptionalThe event type that triggered the webhook.
created_atstringoptionalISO 8601 timestamp when the webhook event was created.
dataobjectoptionalEvent-specific data. The fields below live inside this object.
data.campaign_idstringoptionalIdentifier for the campaign, if applicable.
data.created_atstringoptionalISO 8601 timestamp when the email was created.
data.email_idstringoptionalUnique identifier for this email.
data.message_idstringoptionalRFC Message-ID header value for the email.
data.fromstringoptionalSender address; may include a display name.
data.tostring[]optionalRecipient email address(es).
data.subjectstringoptionalEmail subject line.
data.template_idstringoptionalIdentifier of the template used, if applicable.
data.tagsobjectoptionalObject of tag key-value pairs associated with the email.