Webhook events
email.clicked
A tracked link in the email was followed.
When it fires
email.clicked fires each time a tracked link in the email is requested, so it needs click tracking enabled on the sending domain. Repeated clicks produce repeated events. Link scanners can trigger clicks without a person following the link. Clicks are recorded for the email, not per recipient: data.to lists the email's recipients as sent.
Payload
json
{
"type": "email.clicked",
"created_at": "2026-09-29T10:00:00.000Z",
"data": {
"created_at": "2026-09-29T09:59:59.000Z",
"email_id": "YOUR_EMAIL_ID",
"message_id": "SES_MESSAGE_ID",
"from": "hello@example.com",
"to": ["you@example.net"],
"subject": "Welcome",
"tags": {},
"click": {
"link": "https://example.com/account",
"ipAddress": "203.0.113.10",
"userAgent": "Mozilla/5.0",
"timestamp": "2026-09-29T10:00:00.000Z"
}
}
}click.link is the destination URL as written in the email. click.ipAddress and click.userAgent come from the request that followed the link, cut at 128 and 1024 characters. click.timestamp is when Opensend recorded the click. The other data fields are the common email fields described in email.sent.
Handle the event
Verify the signature and deduplicate by svix-id.